如何根据角色和位置组织 Ansible 的主机文件?

如何根据角色和位置组织 Ansible 的主机文件?

我的项目是使用 Ansible 管理三个服务器集群,每个集群位于不同的城市和州,波士顿、芝加哥和洛杉矶。因此,在每个数据中心我都有两个 httpd 服务器、三个 tomcat 服务器和两个数据库服务器。

在我的 /etc/ansible/hosts 文件中,我已经根据机器的角色 http、tomcat 和 db 设置了组。

我的问题是,我现在是否应该在 /etc/ansible/hosts 中创建第二组(地理)组,其中相同的机器列在数据中心的名称下,还是应该在 group_vars 文件中完成此操作? 或者我应该在 /etc/ansible/hosts 中设置父:子组?

答案1

我猜你需要一种方法来限制播放到特定的数据中心。因此,在清单文件中为数据中心创建组是必不可少的。

如果您有“角色”(http、tomcat 和 db)以及位置(波士顿、芝加哥和洛杉矶)的组,您可以在剧本中定位这些机器的任意组合,例如hosts: boston&db将剧本限制为波士顿和 db 组中包含的所有主机。

相关内容