Доступ к HostVar в Ansible

#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'] Действительно ценю помощь людей.