Ansible 如何循环清点主机组并为特定组执行任务?
专家们 我对Ansible还不熟悉,正在学习写剧本。偶然发现一个练习,需要一些帮助- 循环清点主机组,并根据主机组将/home/student/text1中的任何现有内容替换为文本: -如果主机在主机组中,则文本应为:欢迎加入组A -若主机在B主机组中,则文本应为:欢迎加入B组 -若主机在C主机组中,则文本应为:欢迎来到C组 我可以通过循环遍历清单:“{{groups['all']}}”,但我如何设置另一个条件,即如果主机在一个组中,那么主机在另一个组B中,那么如何遍历整个清单 谢谢大家! Q:“将/home/student/text1中的任何现有内容替换为取决于主机组的文本:-如果主机在主机组中,文本应为:欢迎来到A组-如果主机在B主机组中,文本应为:欢迎来到B组-如果主机在C主机组中,文本应为:欢迎来到C组” 答:我希望如果主机是更多组的成员,例如B和C,那么文件/home/student/text1应该如下所示Ansible 如何循环清点主机组并为特定组执行任务?,ansible,ansible-inventory,Ansible,Ansible Inventory,专家们 我对Ansible还不熟悉,正在学习写剧本。偶然发现一个练习,需要一些帮助- 循环清点主机组,并根据主机组将/home/student/text1中的任何现有内容替换为文本: -如果主机在主机组中,则文本应为:欢迎加入组A -若主机在B主机组中,则文本应为:欢迎加入B组 -若主机在C主机组中,则文本应为:欢迎来到C组 我可以通过循环遍历清单:“{{groups['all']}}”,但我如何设置另一个条件,即如果主机在一个组中,那么主机在另一个组B中,那么如何遍历整个清单 谢谢大家! Q:
welcome to group B
welcome to group C
可以使用特殊变量
组名称:当前主机所属组的列表
比如说
- hosts: all
tasks:
- template:
src: text1.j2
dest: /home/student/text1
$ cat text1.j2
{% for group in group_names %}
welcome to group {{ group }}
{% endfor %}
(未测试)