Ansible:在组之间共享变量

Ansible:在组之间共享变量

我的部分库存如下所示

prod
  group_vars
    all
    rabbit_master
    rabbit_slave
    web_children
    web_master
staging
  group_vars
    all
    rabbit_master
    rabbit_slave
    web_children
    web_master 

我的问题出在我的产品库存中,例如,web_master 和 web_children 具有几乎相同的变量。

web_children/vars.yml

web_master_host: 10.1.1.1
environment: test
key: 123

web_master/vars.yml

environment: test
key: 123

有没有办法让 web_children 继承 web_master 的所有变量以节省重复?

答案1

您可以创建一个居住公共变量的超级组。

  • 将变量放在一个文件中,例如名为web_hosts
  • 在您的hosts文件中定义组web_masterweb_children是该web_hosts组的子组:
[web_master]

[web_children]

[web_hosts:children]
web_master
web_children

欲了解更多信息,请参阅:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#inheriting-variable-values-group-variables-for-groups-of-groups

相关内容