Ansible 使用在多个组中拥有同一主机,但在运行 playbooy 时,即使在指定组名后,它也会采用另一个组变量

Ansible 使用在多个组中拥有同一主机,但在运行 playbooy 时,即使在指定组名后,它也会采用另一个组变量

我们已经将 Apache 设置成 chrooted,因此我们可以在单个目录中为多个 httpd 实例设置多个 apache。我已在清单中添加了所有具有实例名称的不同组,但它们的主机相同。

当我在一个 httpd 实例上运行任务时,即使所有组中的主机都相同,它也会采用不同组的组变量。

答案1

这个答案可以帮助: 使用 group_vars 在不同的组上使用 Ansible 同一主机

尝试在每次需要时使用“vars_files”覆盖主机变量:

hosts: {{ group_name }}
vars_files:
 - group_vars/{{ group_name }}.yml
tasks:

答案2

我已经采取了另一种解决方法。

我添加了/etc/hosts具有不同主机名但具有相同 IP 的条目,如下所示。

10.0.0.2 apache1
10.0.0.3 apache2
10.0.0.2 newapache1
10.0.0.3 newapache2

我还添加了如下所示的库存

[apache]
apache1
apache2

[newapache]
newapache1
newapache2

使用相同的名称,您可以为同一台服务器创建具有不同详细信息的 groupvars。

这不是正确的解决方案,但对于小型设置来说,它的效果很好。

相关内容