Ansible with_items l oop по группам, определенным как список - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь изменить мою книгу воспроизведения брандмауэра UFW, чтобы она принимала список групп хостов из инвентаря, которым будет разрешено подключаться. Он отлично работает для одной группы, но это не достаточно гибко для моих нужд. Но когда я пытаюсь это сделать, это просто не сработает (я не ожидал, что это сработает, но я просто не знаю, как это сделать):

- name: allow only specified groups of servers to connect to any port
  ufw:
    rule: allow
    src: "{{ hostvars[item]['ansible_default_ipv4']['address']}}"
  with_items:
    - groups.{{ ufw_allow_groups }}

Переменная определяется как список:

ufw_allow_groups:
  - group_of_hosts1
  - group_of_hosts2

Сообщение об ошибке:

FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: \"hostvars['groups.['group_of_hosts1', 'group_of_hosts']']\" is undefined

Любые идеи о том, как сделать sh что? Спасибо за любой вклад!

1 Ответ

0 голосов
/ 06 апреля 2020

Я думаю, что работа только с одной группой достаточно гибкая. Просто создайте супергруппы.

Итак, допустим, у вас есть три группы, две из которых вы хотите разрешить соединяться:

[group1]
host1_1
host1_2

[group2]
host2_1
host2_2

[group3]
host3_1
host3_2

Теперь вы хотите, чтобы хосты только group1 и group3 были возможность подключения. Добавить супергруппу:

[ufw_allow_groups]
[ufw_allow_groups:children]
group1
group3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...