Рейтинг:0

ссылка на переменные из defaults/main.yml в роли ansible

флаг ag

У меня есть настройка роли следующим образом

роли/тест/задача/main.yml

- имя: Генерировать файлы людей
  шаблон: src=test.j2 dest=/tmp/{{ item.name}}.cfg
  цикл: "{{люди}}"

роли/тест/шаблон/test.j2

Первая переменная: {{ item.var1 }}
Вторая переменная: {{ item.var2 }}

роли/тест/vars/main.yml

---
люди:
        - название: Симпсоны
          вар1: Гомер
          var2: Симпсон

        - название: Звездные войны
          var1: хан
          вар2: соло

роли/тест/по умолчанию/main.yml

люди:
   - var2: скайуокер

моя пьеса

 - хосты: локальный
   роли:
    - тестовое задание

Когда я запускаю свою пьесу, все работает так, как ожидалось. Я получаю два новых файла в /tmp с правильным текстом. Однако, если я удалю эту строку var2 из моего файла vars/main.yml...

          вар2: соло

Я бы ожидал, что значение var2 из моих defaults/main.yml появится в выводе, но все, что я получаю, это эта ошибка

failed: [localhost] (item={u'var1': u'han', u'name': u'StarWars'}) => {
    «изменено»: ложь,
    "предмет": {
        "имя": "Звездные войны",
        "var1": "хан"
    },
    "msg": "AnsibleUndefinedVariable: 'объект dict' не имеет атрибута 'var2'"
}

Я пробовал форматировать файл defaults/main.yml примерно 10 разными способами, но каждый раз получаю одну и ту же ошибку.

Если я настрою тест, который не зацикливается, а defaults/main.yml и vars/main.yml представляют собой плоские пары «ключ: значение», я могу заставить его очень хорошо извлекать значения из defaults/main/yml.

Что-то про зацикливание я просто не понимаю. Что я делаю не так?

U880D avatar
флаг ca
На этот вопрос ответили на https://stackoverflow.com/a/71162073/6771046.

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

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