Я обновил свою настройку ansible с ansible 2.10 до ansible 2.12 (с ansible 5), используя доморощенное пиво в Mac OS.
С тех пор playbook перестал давать рабочие результаты.
- название: Собрать консульский кластер
стать истинным
хосты: consul_nodes
роли:
- роль: консул
вары:
консул_версия: "1.11.1"
consul_install_upgrade: правда
consul_group_name: "consul_nodes"
консул_адреса:
DNS: !unsafe '169.254.1.1 127.0.0.1 {{ GetPrivateIP }} {{ GetInterfaceIP \"docker0\" }}'
http: !unsafe '169.254.1.1 {{ GetPrivateIP }} {{ GetInterfaceIP \"docker0\" }}'
https: !unsafe '127.0.0.1 {{ GetPrivateIP }}'
группа: "127.0.0.1"
consul_client_address: "169.254.1.1"
consul_node_role: сервер
consul_bootstrap_expect_value: 3
consul_bootstrap_expect: правда
Playbook содержит небезопасные значения переменных, которые не должны быть шаблонными, поскольку их значение должно быть передано в файл конфигурации JSON, записанный на диск.
Он работал нормально до обновления до ansible 2.12.
доступный [ядро 2.12.1]
конфигурационный файл = Нет
сконфигурированный путь поиска модуля = ['/Users/martin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
Расположение модуля ansible python = /usr/local/Cellar/ansible/5.1.0/libexec/lib/python3.10/site-packages/ansible
расположение коллекции ansible = /Users/martin/.ansible/collections:/usr/share/ansible/collections
местоположение исполняемого файла = /usr/local/bin/ansible
версия python = 3.10.1 (основная, 6 декабря 2021 г., 23:20:29) [Clang 13.0.0 (clang-1300.0.29.3)]
версия джиндзя = 3.0.3
libyaml = Истина
Теперь весь JSON, который создает playbook, недействителен. Кавычки ("") экранируются как (").
Я подозреваю, что проблема связана с небезопасными переменными, так как с рабочей версией 2.10 я получил тот же плохой результат, когда не использовал !небезопасно
.
Это может быть просто совпадением.