Возможность перебора инвентарных переменных - PullRequest
1 голос
/ 11 июля 2019

У меня есть инвентарь, в котором я определяю некоторые переменные, такие как ip сервера:

all:
  children:
    my_servers:
      children:
        data:
          hosts:
            data01.mydomain:
              ansible_host: 10.0.0.1
              es_name: "data01"
            data02.mydomain:
              ansible_host: 10.0.0.2
              es_name: "data02"

Я знаю, что для доступа к именам хостов я могу использовать что-то вроде "{{groups ['data']}}", и это будет повторять имена хостов.

Что я хотел бы сделать, так это перебирать переменную "ansible_host" в каждом имени хоста (чтобы открыть правила на брандмауэре). У меня может быть значение единицы с "{{hostvars ['data01'] ['ansible_host']}}", но я не могу найти способ перебора всех хостов в инвентаре.

1 Ответ

1 голос
/ 11 июля 2019

Вот, пожалуйста.Не забудьте запустить игру с -i hosts

play.yml

---
- name: Play
  hosts: localhost
  tasks:
    - name: iterate
      debug:
         msg: "{{ item }}:{{ hostvars[item].ansible_ssh_host }}"
      with_items:
        - "{{ groups['all'] }}"

Запустите playbook, как показано ниже

ansible-playbook -i hosts play.yml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...