Ansible 似乎以服务器为中心。它可以以应用程序为中心吗?

dua*_*ty_ -2 ansible

Ansible 新手,正在寻找以下困境中的指导和/或代码。

Ansible 似乎是以服务器为中心的,迫使您从应用了角色的服务器的角度进行思考,例如“这是一个 Web 和一个电子邮件服务器,这是一个数据库服务器等”。我无法提出一个解决方案来说明应用程序 A 应该部署在服务器 X 上。

对我来说,从应用程序的角度思考更自然,例如“应用程序 A 是关键任务,需要在 ServerBig 上运行,而应用程序 B 和 C 可以在 ServerSmall-N 上运行”。我知道您可能会说我应该将服务器分为关键任务服务器和普通服务器,但我不想在每台普通服务器上运行应用程序 B,而只想在一台服务器上运行应用程序 B,这可能是目前使用最少的服务器。而且感觉也不自然。

Ansible 可以转向以应用程序为中心吗?如果是的话,这还有意义吗?我应该皈依并看到光明吗?

wom*_*ble 5

您所描述的用例(“应用程序 A 需要在 ServerBig 上运行”)与“这是一个 Web 和电子邮件服务器”完全相同,只是您将“web”替换为“应用程序 A” ”。如果应用程序 A、应用程序 B 和应用程序 C 有单独的“类”,就像“Web 服务器”、“电子邮件服务器”和“数据库服务器”一样,您将准确地分配它们一样的方法。

您在问题的最后部分中描述的关于仅在一台轻负载计算机上运行“应用程序 B”的内容与其说是“配置管理”问题,不如说是动态资源分配问题,这是一个完全不同问题。某些配置管理系统具有执行此操作或至少尝试执行此操作的组件,但实际上,您最好使用专为该工作设计的组件。只要你乐于接受 Docker 的帮助并一直使用全容器,Kubernetes 似乎是这个领域的“当前的主流”。否则,我没有具体的建议,因为很大程度上取决于您的应用程序部署策略。