Ansible, проверка инвентарных групп и хостов - PullRequest
0 голосов
/ 19 сентября 2019

Есть ли какие-либо возможные способы проверить, есть ли зарегистрированные переменные (имена хостов) с циклом в инвентаризации, и распечатать их группы?

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

Внутри этой роли я создал отдельные файлы и поместил в них конфигурацию для каждого хоста.Но мне нужно добавить несколько полей, чтобы узнать, к какой группе они принадлежат (нам это нужно в Кибане).

Я использовал шаблоны Jinja, но он вставляет группу, которой принадлежит хост, в котором я играю роль.

{% for group in group_names %}
    group: {{ group }}
{% endfor %}

, поэтому я начал искать, есть ли способ в самом ansible сделать это.Я

- name: list of hosts
  debug:
    msg: "{{ item }}"
  with_items:
    - "{{ groups['all'] }}"

вернул хосты, и я хотел бы сравнить этот список со списком в нашем инвентаре и получить имена групп, чтобы вставить их в конфиги icmp.yml heartbeat

1 Ответ

0 голосов
/ 19 сентября 2019

Q; Есть ли какие-либо возможные способы проверить, находятся ли зарегистрированные переменные (имена хостов) с циклом в инвентаризации и , распечатать их группы ?

A: Да.Можно использовать Специальные переменные

ansible_play_hosts_all : список всех хостов, на которые была нацелена игра

group_names: список групп, в которые входит текущий хост

- debug:
    msg: "{{ hostvars[item].group_names }}"
  loop: "{{ hostnames }}"
  when: item in ansible_play_hosts_all
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...