#ansible #ansible-facts
#ansible #ansible-факты
Вопрос:
Я новичок в Ansible, я пытаюсь использовать факт ‘Name’, который хранится в hostvars ansible, но я продолжаю получать переменную, которая не установлена.
Я выкачал все переменные хоста, чтобы подтвердить, что он есть, используя следующую задачу в моей игре:
- name: Print all variables for each remote device
debug:
var: hostvars[inventory_hostname]
run_once: true
delegate_to: "{{ groups['dir_tier'] | first }}"
Я вижу, что факт есть, усеченный вывод hostvars:
{"hostvars[inventory_hostname]":
"{'tld':'{{environment_name}}.{{mgmt_domain}}',
'download_dir':'/tmp',
'archive_file_server':
'{{
file_server
}}',
'transport':
'repositories',
'java_package':
'jdk',
'Name':
'idserver99'
}
Попробовали несколько способов настроить таргетинг на ‘Name’, но продолжают возвращаться к не определенной проблеме.
hostvars[inventory_hostname][Name]
hostvars[inventory_hostname].[Name]
{{ hostvars[inventory_hostname].[Name] }}
{{ hostvars[inventory_hostname][Name] }}
Кажется, я не могу взломать правильный синтаксический указатель приветствия.
Стремлюсь учиться.
Комментарии:
1. Просто
Name
, поскольку он находится на текущем хосте, на котором вы действуете. В противном случае:hostvars[inventory_hostname].Name
или дажеhostvars[inventory_hostname]['Name']
.2. здравствуйте, вы можете вставить сборник пьес?
3. Здравствуйте. Используя « — name: Выведите все переменные для каждого удаленного устройства debug: var: hostvars[inventory_hostname]. Назовите задачу «Все еще возвращает« [ansible-role-conf: распечатать все переменные для каждого удаленного устройства] *** Вторник, 08 сентября 2020 10:45:20 0000 (0:00:06.265) 0:00:06.367 ***** ок: [ip-0.0.0.0.eu-west-1.compute.internal] => { «hostvars[inventory_hostname].Name»: «ПЕРЕМЕННАЯ НЕ ОПРЕДЕЛЕНА!» « На данный момент сборник содержит только одну задачу.
4. Спасибо за помощь, я исправил проблему. Это была ошибка новичка. Когда я выводил полные переменные хоста, а затем использовал свой редактор для форматирования выходных данных, он был отформатирован в одну строку, поэтому было трудно увидеть отступы. Решение было таким:
hostvars[inventory_hostname]['tags']['Name']
Действительно ценю помощь людей.