Итак, вот установка.
Я передаю список FQDN через дополнительные переменные в playbook, но ключ управляющей машины копируется с соответствующими IP-адресами. Также в инвентаре нет их конкретной группы.
Хост для этой playbook - это сервер, который может быть или не быть частью этого списка, который я передаю через дополнительные vars. Итак, в playbook вообще нет фактов об этих узлах.
Итак, мой вопрос заключается в том, как мне получить IP-адреса соответствующих хостов на лету, чтобы я мог перебрать их, чтобы выполнить некоторые проверки некоторых свойств, которые я установил с использованием их FQDN через другую книгу / роль ранее. (Примечание: мне строго нужно полное доменное имя для установки этих свойств)
Я использовал модуль delegate_to и передавал полное доменное имя, и он работает, но он спрашивает, хочу ли я продолжить подключение (да / нет), и ждет ввода пользователя для первоначального запуска (если дано да, он работает, как ожидалось). Есть ли у них какой-либо другой более простой и понятный способ решить эту проблему?
(Примечание: помните, что я не могу изменять содержимое инвентаря, например ставить псевдоним и т. д.)
Вот фрагмент кода:
- name: Checks
become_user: hdfs
shell: hdfs dfsadmin –report
delegate_to: "{{ item.host_name }}"
with_items:
- "{{rackDetails}}"
Вот фрагмент главного файла yml, в котором вызывается указанная выше роль:
- name: Checks for the property
hosts: servernode
roles:
- Checks
Фрагмент кода инвентаря выглядит следующим образом:
[servernode]
10.0.2.15 ansible_ssh_user = grant ansible_ssh_pass = grant
[все]
10.0.2.15 ansible_ssh_user = grant ansible_ssh_pass = grant
10.0.2.16 ansible_ssh_user = grant ansible_ssh_pass = grant
10.0. 2.17 ansible_ssh_user = grant ansible_ssh_pass = grant
10.0.2.18 ansible_ssh_user = grant ansible_ssh_pass = grant
10.0.2.19 ansible_ssh_user = grant ansible_ssh_pass = grant
И, наконец, вот что я передаю через дополнительные вары:
{"rackDetails":[{"host_name":"prod_node1.paas.com","rack_name":"/rack1"},{"host_name":"prod_node2.paas.com","rack_name":"/rack2"},{"host_name":"prod_node3.paas.com","rack_name":"/rack3"}]}
dig
плагин поиска. К сожалению, ваш вопрос мне непонятен. - person techraf   schedule 09.06.2017