Max
Voldemort...
Timur
Как вариант для асинхронки - можно разбить плей на разные и ту же strategy: free заюзать
Nikita
и какая разница если тебе надо HA для гита или паппета или zero-mq
в том что гит простой как рельса а мульти мастеры паппетов и zero-mq салта очень не стабильно
Max
нас счас Гандальф заколдует.
Max
🤣
Anton
помогите разобраться с кондишенами, когда применяется loop и в нем кверя. есть вот такой пример: debug: msg: "{{ task_out }}" loop: "{{ pre_tasks_output | json_query('results[].stdout_lines') }}" loop_control: loop_var: task_out when: type == "site"" этот таск выполняется всегда, незавимо от того что написано в when и ошибка такого плана: Invalid data passed to 'loop', it requires a list, got this instead: . т.е. он начинает работать c loop, хотя вроде бы не должен
Rasim
Всем привет. Подскажите, пожалуйста, есть список серверов. Мне надо, з в зависимости от их hostname, запускать task с разным значением переменной. я описал массив vars: hostname1: var1 hostname2: var2 и тд получаю через gather_facts ansible_hostname. Но как получить из ansible_hostname значение var?
Rasim
host_vars вроде
Timur
Надо просто хостам через инвентори дать разные значения одной и той же переменной
Timur
См. доку по hostvars и group_vars
Rasim
См. доку по hostvars и group_vars
да, уже. Спасибо!
Anton
А что вы хотите сделать вообще?
вывести значения stdout_lines
Timur
вывести значения stdout_lines
Зачем для этого луп?
Anton
потому что формируется выхлоп вот таким образом
Anton
win_command: "{{ pre_task.command }}" register: pre_tasks_output loop: "{{ options.pre_tasks }}" loop_control: loop_var: pre_task
Anton
Зачем для этого луп?
я не могу без loop просматривать results.stdout для элментов, которые были сформированы через loop
Timur
results общий
Anton
а stdout нет
Anton
win_command: "{{ pre_task.command }}" register: pre_tasks_output loop: "{{ options.pre_tasks }}" loop_control: loop_var: pre_task
из этой штуки я получаю results в котором айтемы = выполненным win_commands
Timur
Тогда делается loop по pre_tasks_output.results
Anton
Тогда делается loop по pre_tasks_output.results
да, так и делается, а дальше как мне забрать из этого только .stdout?
Timur
debug: msg: "{{ item.stdout }}" loop: "{{ pre_tasks_output.results }}"
Anton
не сработает
Anton
я с этого и начинал
Timur
Почему?
Anton
нет атрибута, он глубже
Anton
msg: "{{ item.0.stdout }}" - так сработает
Timur
Так, момент
Timur
pre_tasks_output.results можете вывести дебагом?
Anton
да, сейчас
Anton
pre_tasks_output.results можете вывести дебагом?
хм, сейчас сработало. единственный минус, все сообщение stdout дублируется в: ok: [hostname] => (item={'_ansible_parsed': True, '... и получается большая портянка
Artëm
Работает?
нашел я проблему - это знаменитое виндовое админ не является админом. https://docs.ansible.com/ansible/latest/modules/psexec_module.html#notes
Anton
label в loop_control
да уже нашел, спасибо!
Anton
Так, момент
и вам в очередной раз спасибо)
greydjin
подскажет кто чатик по Chef?
Timur
Ilia
Коллеги, на всякий случай, для тех, кто использует модуль win_chocolatey. С 0.10.12 в chocolatey внесены изменения в выполнение команд search/list/info (https://github.com/chocolatey/choco/wiki/ReleaseNotes#breaking-changes). Таким образом - вызываемая модулем команда <path_to_exe_choco> list --local-only --exact вместо result code 0 - возвращает result code 2. В итоге проверка наличия пакета на локальном хосте не отрабатывает корректно (в posh скрипте идет проверка на вовзрат 0 кода). Для исправления ситуации нужно вызвать: <path_to_exe_choco> feature disable --name="'useEnhancedExitCodes'", что в статье описано Проверено под ansible 2.7.9 Спасибо за внимание!
Timur
Мы специальное обновление ролей, использующих винду, делали
Timur
Там дополнительный шаг приходится делать по отключению этой фичи
Ilia
Там дополнительный шаг приходится делать по отключению этой фичи
+ <path_to_exe_choco> feature disable --name="'useEnhancedExitCodes'"
Timur
Ilia
Ооо, было бы отлично если бы поделились. Я немного не допёр - как нормально сделать в разрезе проверки версии
Ilia
Пришлось poshsible включать
Timur
- name: disable enhanced exit codes win_chocolatey_feature: name: useEnhancedExitCodes state: disabled
Timur
Версию проверять не нужно
Ilia
А проверку версии как-нибудь делаете? Или на старых версиях без ошибок проходит?
Ilia
Версию проверять не нужно
Ага, отлично! Большое спасибо!
Ilia
Правда вы только что нивелировали 2 часа костыляния =)
Sergey
Всем привет, сразу нубский вопрос, кто-нибудь делал такое, из системд нужкн оутпут в ансибл, из сислога, как это реализовать? Если есть пример, киньте)
Nikolay
из stdout чтоль чтение?
Sergey
Типа того, но при фейле тоесть when: failed
Nikolay
https://stackoverflow.com/questions/36059804/ansible-store-commands-stdout-in-new-variable вот пример
Sergey
Ооо, четко спасибо, проблема у меня в юните)) остальное все так-же)
Denis
всем привет
Denis
кто нибудь поджскажет как правильно в when засунуть jinja2 template
Denis
а именно мне if надо там
checkdiff
Через if
Andrey
а именно мне if надо там
{% if env == 'prod' %} Что-то сюда вкорячить {% endif %}
Denis
{% if env == 'prod' %} Что-то сюда вкорячить {% endif %}
when: {% if env == 'prod' %}Что-то сюда вкорячить {% endif%}
Denis
не пашет так
Andrey
when: {% if env == 'prod' %}Что-то сюда вкорячить {% endif%}
Зачем тебе when если у тебя и так условие
Denis
пояни... я новичок просто может я что то не знаю
Denis
что можно просто указать таски иф и все?
Denis
- name: Test list debug debug: var=iten_list {% if .....%}{%endif%}
Sergey
when: {% if env == 'prod' %}Что-то сюда вкорячить {% endif%}
Мля. То, что пишется в when, _уже_ находится в фигурных скобках.
Denis
и будет так рабоать!?
Sergey
Не надо там ничего писать больше
Andrey
А в конфиге оно само подтягивается
Andrey
А то что не относится, будет пустое