Lamobot
именно это [ ] и формируют список ?
Задай этот вопрос профессионалам ansible и jinja :)
Ya
Задай этот вопрос профессионалам ansible и jinja :)
Позвольте я это решение размещу в бложеке с сылкой на вас ?
Ya
Да, конечно
Судя по всему пора оживлять свой бложег этой инфы просто нет в интернете
Lamobot
Ya
Хмм, а мне кажется я это где-то на stackoverflow видел :)
Это уже втрой подход, пол дня бился отложил, думал решение позже придет, опять часы чтения доки и гугла, хер там )
Ya
Спасибо, господа, был приятно удивлен сразу двум решениям )
Sergey
Использование set_fact моментально должно наводить на мысль, что ты делаешь что-то странное.
Aleksey
тред не читал но осуждаю
Sergey
Потому что правильный способ указанной задачи - использование фильтра map: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#extracting-values-from-containers
Sergey
тред не читал но осуждаю
А ты почитай, как тут коллеги императивный цикл гоняют пытались гонять, чтобы получить на выходе список IP-адресов конкретной группы.
Sergey
А дока - ну что дока, зачем её читать....
Aleksey
буквы всякие понаписали, чо делают не понятно.
Sergey
буквы всякие понаписали, чо делают не понятно.
https://jinja.palletsprojects.com/en/2.11.x/templates/#map Как я и говорил - зачем читать доку......
Aleksey
а я всё равно скажу что это ваша функциональщина отстой. :)
Sergey
Положим, раз работает, в отличие от собирания списка в set_facts - значит, достаточно хороша.
Vlad
для любителей императивщины можно вместо map написать на jinja цикл for
Alex
А так никто не мешает в vars запихнуть или template
Alex
На любителя
Отделение Bereke Bank
Использование set_fact моментально должно наводить на мысль, что ты делаешь что-то странное.
Ну не. Вон я выше кидал ссылку где set_facts требовался для получения нужного subject_alt_name сертификата
Logan
коллеги, а кто-то решал задачу распаковки bz2 файла? Просто архив, нет tar (потому unarchive не подойдет). Не хочется использовать cmd
Aleksey
unarchive много чо жрет. уверен что не распакует ?
Logan
нет, он не будет распаковывать одиночные файлы - внутри обязательно должен быть тар
Logan
это написано у них в доках кстати
Logan
Can handle .zip files using unzip as well as .tar, .tar.gz, .tar.bz2 and .tar.xz files using gtar. Does not handle .gz files, .bz2 files or .xz files that do not contain a .tar archive.
Ivan
Не вижу такого в документации, сорян
Sergey
Я тоже не видел, чтобы здравый смысл пытались документировать.
Womchik
а есть много примеров с этим map? что-то я его не особо понимаю
Sergey
map тупо преобразовывает один список в другой с помощью действия, которое ты указываешь в качестве параметра
⤙ Иван
Добрый день! Подскажите, пожалуйста, для бага https://github.com/ansible/ansible/issues/42090 Может кто-то знает решение?
⤙ Иван
Не работает с симлинками вообще, не хочется использовать shell
Aleksey
@tnt4brain есть хорошая статья с чего начать писать свой модуль ?
Aleksey
ко мне чот пришли а я толком объяснить не могу
Sergey
@tnt4brain есть хорошая статья с чего начать писать свой модуль ?
Дай мой доклад. Там есть минимальный модуль (вообще нулевой), который не делает ничего, но может вернуть ошибку или успех.
Sergey
С этого можно начать.
Sergey
Там ссылка на гитхаб есть ,чтобы не перебивать с экрана.
Sergey
https://habr.com/ru/post/494738/
Aleksey
спасибо
Lex
Ребят, привет. Родилась идея, но никак не рождается реализация...можно вообще так, или может как по другому надо... есть роль в ней в цикле тэмплейтом создается файл по loop. dc1,dc2,dc3 и я хочу в переменную из loop (dc1,dc2,dc3) передать в варсы для использования при создании шаблона пробую делать так: loop: {{dc}} loop_control: loop_var: {{dc_var}} в варс лежит следующее dc: - dc1 - dc2 - dc3 vars - var1: {{dc_var}}a - var2: {{dc_var}}b в темплейте for по переменной vars на выходе хочу получить файл-dc1 в котором dc1a dc1b файл dc2 в котором dc2a dc2b
Dmitry
А о чем говорит обычно "ERROR! A worker was found in a dead state"? что-то с предыдщушей джобой не так завершилось?
Lex
так работает )) сам себе обманул
Anonymous
коллеги подскажите, как обратится к элементу своего же массива? в таком примере apps: - {name: "apps21", path: "/opt/{{name-static", ver_file: "{{version_file}}" } хотелось бы чтобы путь был /opt/apps21-static
Anonymous
понял, буду тогда явно задавать
Sebor▂▅▇█▓▒░
а зачем вообще в этом примере path указывать?
Anonymous
если кратко, то на основе массвиа формируються джобы для крона в которых на основе частично из эттого массива частично из других перменных формируються пути
Sebor▂▅▇█▓▒░
просто если у path префикс всегда один и тоже, то можно его не дефайнить, а сразу обращаться как /opt/{{ item.name }}
Anonymous
там два разных массива в разных местах один отвечает за пути в кроне другой за пути что генериуються для скрипта из шаблона, а так то понятно что можно. Причем кроновская роль универсальная используется в куче плейбуков и от массива скрипта завиить не должна
Lex
А есть в чате пользователи tower/awx? И плагина для dynamic_inventory из tower? не вижу функционала для использования токена при авторизации через него...Может он где спрятался )) этот функционал ))
Lex
прямо свежак )
NM
ага - а в awx_task смотришь ?
Lex
вопрос не в awx-е...а судя по всему в особенностях работы плагина..я в него заглянул...в силу моих знаний - там нельзя заюзать токен
NM
OAuth2 token ?
NM
awx-manage create_oauth2_token --user lev_dolgov ?
NM
и вот для примера тыкать в API
NM
https://stackoverflow.com/questions/50215862/ansible-tower-api-not-accepting-token
NM
Authorization: Bearer <oauth2-token-value>
NM
у тябя же ансибл ! 😉 https://www.ansible.com/blog/summary-of-authentication-methods-in-red-hat-ansible-tower
Lex
хм..а вот по последней ссылочки хорошие примеры ) можно попробовать
Lex
спасибо буду тыкать, но и issue оставил ) может в базовый плагин добавят функционал
NM
делается просто 😉 берешь tower.rpm и оттуда добавляешь - API то одинаковый 😉
NM
у тебя же AWX как и у нас всех - кризис поджимает - мы тоже за 5000$ в год не стали покупать tower
Lex
да неее там надо проавить plugin tower в ansible ) я вроде нашел что и где и почти заработало )
Pavel
Коллеги добрый день, я правильно понимаю что задачи uri исполняются с хоста ansible? а исполнение на другой машине это delegate_to или неправильно?
Sergey
Коллеги добрый день, я правильно понимаю что задачи uri исполняются с хоста ansible? а исполнение на другой машине это delegate_to или неправильно?
Неправильно понимаешь. Это обычный модуль; соответственно, запрос полетит с того хоста, где выполняются модули.
Pavel
упс, тогда видимо у меня неправильно оформлен плагин lookup