如何遍历清单主机组并执行特定组的任务?

时间:2019-11-01 22:24:25

标签: ansible ansible-inventory

专家

我是Ansible的新手,正在学习编写剧本。偶然发现一种运动,需要一些帮助- 遍历清单主机组,并根据主机组将/ home / student / text1中的任何现有内容替换为文本: -如果主持人在主持人组中,则文本应为:欢迎加入主持人A -如果主持人在B主持人组中,则文本应为:欢迎来到B组 -如果主机在C主机组中,则文本应为:欢迎使用C组

我可以通过以下循环遍历库存:“ {{groups ['all']}}”,但我又要如何设置另一个条件,即如果主机在A组中,而主机在其他B组中,那么遍历整个库存?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

Q:“根据主机组用文本替换/ home / student / text1中的任何现有内容:-如果主机在A主机组中,则文本应为:欢迎使用A组-如果主机在B主机中组,文本应为:欢迎来到B组-如果主持人在C主机组中,文本应为:欢迎来到C组”

A:我希望如果host是更多组的成员,例如B和C,文件/ home / student / text1应该看起来像

welcome to group B
welcome to group C

可以使用特殊变量group_names

  

group_names:当前主机所属的组的列表

例如

- hosts: all
  tasks:
    - template:
        src: text1.j2
        dest: /home/student/text1

$ cat text1.j2
{% for group in group_names %}
welcome to group {{ group }}
{% endfor %}

(未经测试)