Рейтинг:1

Ansible include_vars: включение переменных словаря из файла

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

Вот пример рабочего кода:

---
  задачи:
  - название: Дикт тест
    вары:
      пользователи:
        Алиса:
          Имя: Элис Эпплворт
          телефон: 123-456-7890
        Боб:
          Имя: Боб Бананарама
          телефон: 987-654-3210
    отлаживать:
      msg: "Пользователь {{ item.key }} – {{ item.value.name }} ({{ item.value.telephone }})"
    цикл: "{{ lookup('dict', users) }}"

Но когда я добавляю словарь в файл и использую include_vars для его загрузки, приведенный выше код не работает.

Файл: test1.yml

пользователи:
  Алиса:
    Имя: Элис Эпплворт
    телефон: 123-456-7890
  Боб:
    Имя: Боб Бананарама
    телефон: 987-654-3210

Следующий код не работает

  задачи:
  - название: Дикт тест
    include_vars: test1.yml
    отлаживать:
      msg: "Пользователь {{ item.key }} – {{ item.value.name }} ({{ item.value.telephone }})"
    цикл: "{{ lookup('dict', users) }}"

Но ansible dubuging -vvv показывает

хорошо: [локальный хост] => {
    "необходимые_факты": {
        "пользователи": [
            {
                "Алиса": ноль,
                "name": "Элис Эпплворт",
                "телефон": "123-456-7890"
            },
            {
                "боб": ноль,
                "name": "Боб Бананарама",
                "телефон": "987-654-3210"
            }
        ]
    },
флаг cn
Как правило, «не работает» само по себе бессмысленно - вы должны указать сообщения об ошибках, которые вы получаете...
Рейтинг:2
флаг th

«Не работает» — это очень расплывчатое описание вашей проблемы, но это недопустимое определение задачи:

  - название: Дикт тест
    include_vars: test1.yml
    отлаживать:
      msg: "Пользователь {{ item.key }} – {{ item.value.name }} ({{ item.value.telephone }})"
    цикл: "{{ lookup('dict', users) }}"

include_vars и отлаживать это отдельные действия, поэтому они должны быть отдельными задачами; как у вас это должно дать вам полезную ошибку ОШИБКА! конфликтующие операторы действий: include_vars, debug

  - include_vars: test1.yml

  - название: Дикт тест
    отлаживать:
      msg: "Пользователь {{ item.key }} – {{ item.value.name }} ({{ item.value.telephone }})"
    цикл: "{{ пользователи | dict2items }}"

Ответить или комментировать

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