Ton*_*ffe 5 ansible ansible-inventory
我正在尝试使它仅适用于我的dev和hydra服务器。我有2个主机文件,其中有主机。dev-all主机组是
[dev-all:children]
dev-group1
dev-group2
hydra组仅包含一台服务器,但位于不同的主机文件中。当我运行ansible时,我使用hydra group这样的命令,ansible-playbook -i environments/hydra site.yml而对于dev组则使用此命令ansible-playbook -i environments/dev site.yml。
我的问题是,当条件仅在调用hydra时适用于hydra或在调用dev时仅适用于dev-all时,如何获得此信息?这将帮助我避免将此组添加到另一个主机文件中的prod服务器中。dev-all组在dev文件中包含许多dev服务器组,而我基本上是试图从主机文件中包含所有这些服务器组,因此我将dev-all:children组包含在内。
我似乎无法让它们匹配when OR条件。也许有更好的方式编写when语句。
- name: add dev environment sudo user group
group: name=dev_sudo state=present gid=8002
tags:
- groups
- sudo-group
when: (inventory_hostname in groups["dev-all"]) or (inventory_hostname in groups['hydra'])
您可以使用group_nameswhich作为当前主机所在的所有组的列表(数组)。请参阅魔术变量。
喜欢:
when: ('dev-all' in group_names) or ('hydra' in group_names)
Run Code Online (Sandbox Code Playgroud)
要么:
when: ['dev-all', 'hydra'] | intersect(group_names) | count > 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6018 次 |
| 最近记录: |