Alexander
Коммутатор сложнее настраивать, чем компутатор
Алексей
всем привет, не работает такая конструкция {% for i in groups.keys() if i not in ['all','ungrouped'] %} {% for j in groups[i] if j != 'localhost' %} {{ hostvars[j]['ansible_host'] }} {{ j }} {% endfor %} {% endfor %} раньше все работало цель записать из инвентори в /etc/hosts
Алексей
Ошибка типо {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_host'"}
Алексей
Причем дебагом спокойно получаю hostvars.group.ansible_host
Lamobot
всем привет, не работает такая конструкция {% for i in groups.keys() if i not in ['all','ungrouped'] %} {% for j in groups[i] if j != 'localhost' %} {{ hostvars[j]['ansible_host'] }} {{ j }} {% endfor %} {% endfor %} раньше все работало цель записать из инвентори в /etc/hosts
1. ansible_host - это не то, что хранится в инвентаре ansible_host The ip/name of the target host to use instead of inventory_hostname. 2. Можно использовать inventory_hostname - тогда будет с инвентаря браться хост. 3. Или собрать факты со всех этих машин и использовать ansible_hostname и любые другие переменные из фактов
Алексей
Попробую, но походу дело в Jinja2 потому что на другом хосте это же сработало
Lamobot
Попробую, но походу дело в Jinja2 потому что на другом хосте это же сработало
Посмотрите с локалхоста hostvars['какой-либо другой хост'] что там будет
Антон
Добрый вечер всем. Возникла проблема с чтением каталогов group_vars схема каталогов - выше
Антон
вот параметры запуска ansible-playbook deploy_rds_farm.yml -i inventories/dev/dev-rds-farm.ini
Антон
проблема в том что groups_vars/all - все читается, а из rds_gateway - нет
Алексей
Посмотрите с локалхоста hostvars['какой-либо другой хост'] что там будет
ansible -i inventory -m debug -a var=hostvars.BLADE65.ansible_host monitoring monitoring | SUCCESS => { "hostvars.BLADE65.ansible_host": "10.168.22.65" }
Антон
при этом группа в инвентари есть
Антон
[all:vars] ansible_ssh_host="{{ host_ip }}" ansible_connection=ssh ansible_user=ansible ansible_shell_type=powershell ansible_become_user="lab\\administrator" [ad] ad01 [ad:vars] ansible_ssh_host="172.25.170.10" [rds_gateway] rdp_gw01 [rds_node] rdp_node_01 rdp_node_02 rdp_node_03 rdp_node_04 [rds_hosts:children] rds_gateway rds_node
Lamobot
ansible -i inventory -m debug -a var=hostvars.BLADE65.ansible_host monitoring monitoring | SUCCESS => { "hostvars.BLADE65.ansible_host": "10.168.22.65" }
ansible -m debug -a var=hostvars.localhost.ansible_host localhost localhost | SUCCESS => { "hostvars.localhost.ansible_host": "VARIABLE IS NOT DEFINED!" }
Алексей
Что именно записать?
Из файла инвентори айпи имя
Антон
Нет связи группы all с чем-либо ещё
[all:children] ad rds_gateway rds_node добавил вот это
Антон
эффект тот же
Sergey
эффект тот же
А почему у тебя inventory каталог внезапно а ты передаешь file
Sergey
Ну то есть загрузчик работает Не консистентно но и ты ему на вход что попало подаёшь
Антон
ansible-playbook deploy_rds_farm.yml -i inventories/dev - когда запускаю вот так он говорит что не может распарсить инвентори сорс
inqfen
Мне кажется за ini инвентори в 2020 пора банить)
Sergey
Ну во-первых уточни Какая у тебя версия ansible а во-вторых там по очереди Если я правильно помню будут пробоваться несколько плагинов и вот кто сможет тот и распарсит
Sergey
Прошу извинить за отсутствие знаков препинания, использую голосовой ввод.
Антон
Мне кажется за ini инвентори в 2020 пора банить)
я попытался жить с yml - оказалось ооочень не удобно
inqfen
Мне норм, наоборот гораздо удобнее, особенно когда вложенность групп больше 1
Антон
Прошу извинить за отсутствие знаков препинания, использую голосовой ввод.
=)))) тот факт, что ты вообще помогает окупает любые косяки с пунктуацией =)))
Антон
Мне норм, наоборот гораздо удобнее, особенно когда вложенность групп больше 1
ну как сказать. из-за вложенностей как раз и были проблемы
Sergey
я попытался жить с yml - оказалось ооочень не удобно
Формат inventory ини умер вместе с Windows 3.1.
Антон
Формат inventory ини умер вместе с Windows 3.1.
мне кажется тут проблема не в формате инвентори
Антон
у меня там была проблема - как сделать общие vars на all. из-за этого вернулся к ini
Sergey
ну как сказать. из-за вложенностей как раз и были проблемы
Со Вложенностью есть одна шутка юмора, которая плохо освещена в документации: если у тебя группы вложенные друг в друга, то тебе достаточно просто указать имя группы. Не надо ничего повторять.
Антон
group_vars/all.yml?
нет, с основным, где группы хостов описываются
inqfen
Надеюсь ты переменные не в hosts фигачил
Alexander
Подскажите пожалуйста, голова уже не хочет работать, как stdout после запуска скрипта сделать нормальным, то есть без escape characters?
inqfen
нет, с основным, где группы хостов описываются
Вот и не надо там переменные описывать
Алексей
Формат inventory ини умер вместе с Windows 3.1.
А какой сейчас формат в моде?
Alexander
Чтобы \n интерпретировалось как перевод строки
Антон
Вот и не надо там переменные описывать
переменные подключения к хостам
Sergey
переменные подключения к хостам
Ты же это можешь положить в хвост подчёркивание wars.
Sergey
Sergey
Иногда хочется поменьше пользоваться голосовым вводом...
inqfen
переменные подключения к хостам
Ну это тоже кривой метод, но что мешает vars: ansible_host Заюзать?
Alexander
stdout_lines
Можно полный пример? Читаю, и не могу сообразить
inqfen
Хост варс кстати вообще зло
inqfen
https://t.me/pro_ansible/132599
Ну, в ямле это все равно читаемее
Антон
Ну, в ямле это все равно читаемее
да что в ямле, что не в ямле - проблема то в другом
Антон
проблема в том что из group_vars не берется ничего кроме all
inqfen
Все оттуда берется
inqfen
У меня в десятках плейбуков берется, а у тебя не берется
Антон
У меня в десятках плейбуков берется, а у тебя не берется
да в других у меня то же это работает. не работает в конкретном этом случае. я его описал
Антон
ты хоть десять раз напишешь что у тебя работает - мне это не поможет =))) тем более что я знаю что так должно работать, но не могу понять в чем затыка
inqfen
Не вижу в нем причин почему не заработает
Sergey
1. Сделай в YaML. 2. Нормально вызови инвентори с -vv хотя бы. 3. Логи в студию.
inqfen
The error was: 'test2' is undefined
Alexander
- debug: msg: "{{ var.stdout_lines }}"
А вот без дебага никак? Чтобы сразу stdout шел корректный
inqfen
А где она определена?
inqfen
Антон
The error was: 'test2' is undefined
в груп_варсах которые rds_gateway
Alexander
А где она определена?
Этот вопрос не понял
Alexander
А, это не мне
inqfen
fatal: [ad01]: FAILED! =>
inqfen
А почему тогда этот таск на ad выполняется?
inqfen
ad: hosts: ad01: rds_gateway: hosts: rdp_gw01:
inqfen
ad и rds_gateway разные хосты
Антон
..........................................
Антон
я в стыде ушел в закат =(
Антон
все читается, я еблан