Как пройтись по группам инвентаризации и выполнить задачу для определенной группы? - PullRequest
0 голосов
/ 02 ноября 2019

Эксперты,

Я новичок в Ansible и учусь писать пьесы. Наткнулся на упражнение и нуждаюсь в некоторой справочной петле через группы хостов инвентаря и заменим любой существующий контент в / home / student / text1 текстом в зависимости от группы хостов: - если хост находится в группе хостов, текст должен быть: добро пожаловать в группу A- если хост находится в группе хостов B, текст должен быть: добро пожаловать в группу B - если хост находится в группе хостов C, текст должен быть: добро пожаловать в группу C

Я мог бы пройти через инвентаризацию через цикл: "{{groups ['all']}} "но как мне поставить другое условие, что если хост находится в группе A, то это делается, а хост находится в другой группе B, и циклично проходит весь инвентарь?

Спасибо!

1 Ответ

0 голосов
/ 02 ноября 2019

Q: "заменить любой существующий контент в / home / student / text1 текстом в зависимости от группы хостов: - если хост находится в группе хостов, текст должен быть: добро пожаловать в группу A - если хост естьв группе хостов B текст должен быть: добро пожаловать в группу B - если хост находится в группе хостов C, текст должен быть: добро пожаловать в группу C "

A: Я ожидаю, что если хостявляется членом нескольких групп, например, B и C, файл / home / student / text1 должен выглядеть так:

welcome to group B
welcome to group C

Можно использовать специальную переменную 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 %}

(не проверено)

...