Ya
Lamobot
Ya
Да, конечно
Судя по всему пора оживлять свой бложег этой инфы просто нет в интернете
Lamobot
Ya
Alex
Ya
Спасибо, господа, был приятно удивлен сразу двум решениям )
Sergey
Использование set_fact моментально должно наводить на мысль, что ты делаешь что-то странное.
Aleksey
Aleksey
тред не читал но осуждаю
Sergey
Потому что правильный способ указанной задачи - использование фильтра map: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#extracting-values-from-containers
Sergey
тред не читал но осуждаю
А ты почитай, как тут коллеги императивный цикл гоняют пытались гонять, чтобы получить на выходе список IP-адресов конкретной группы.
Sergey
А дока - ну что дока, зачем её читать....
Lamobot
Aleksey
Aleksey
буквы всякие понаписали, чо делают не понятно.
Aleksey
а я всё равно скажу что это ваша функциональщина отстой. :)
Sergey
Положим, раз работает, в отличие от собирания списка в set_facts - значит, достаточно хороша.
Vlad
для любителей императивщины можно вместо map написать на jinja цикл for
Alex
Alex
А так никто не мешает в vars запихнуть или template
Alex
На любителя
Logan
коллеги, а кто-то решал задачу распаковки bz2 файла? Просто архив, нет tar (потому unarchive не подойдет). Не хочется использовать cmd
Aleksey
unarchive много чо жрет. уверен что не распакует ?
Vlad
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
Ivan
Не вижу такого в документации, сорян
Sergey
Я тоже не видел, чтобы здравый смысл пытались документировать.
Womchik
а есть много примеров с этим map? что-то я его не особо понимаю
Sergey
map тупо преобразовывает один список в другой с помощью действия, которое ты указываешь в качестве параметра
⤙ Иван
Добрый день! Подскажите, пожалуйста, для бага https://github.com/ansible/ansible/issues/42090
Может кто-то знает решение?
⤙ Иван
Не работает с симлинками вообще, не хочется использовать shell
Aleksey
@tnt4brain есть хорошая статья с чего начать писать свой модуль ?
Aleksey
ко мне чот пришли а я толком объяснить не могу
Sergey
С этого можно начать.
Aleksey
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
Lex
так работает )) сам себе обманул
Anonymous
коллеги подскажите, как обратится к элементу своего же массива? в таком примере apps:
- {name: "apps21", path: "/opt/{{name-static", ver_file: "{{version_file}}" } хотелось бы чтобы путь был /opt/apps21-static
Sergey
Anonymous
понял, буду тогда явно задавать
Sebor▂▅▇█▓▒░
а зачем вообще в этом примере path указывать?
Anonymous
если кратко, то на основе массвиа формируються джобы для крона в которых на основе частично из эттого массива частично из других перменных формируються пути
Sebor▂▅▇█▓▒░
просто если у path префикс всегда один и тоже, то можно его не дефайнить,
а сразу обращаться как /opt/{{ item.name }}
Anonymous
там два разных массива в разных местах один отвечает за пути в кроне другой за пути что генериуються для скрипта из шаблона, а так то понятно что можно. Причем кроновская роль универсальная используется в куче плейбуков и от массива скрипта завиить не должна
Lex
А есть в чате пользователи tower/awx? И плагина для dynamic_inventory из tower? не вижу функционала для использования токена при авторизации через него...Может он где спрятался )) этот функционал ))
NM
NM
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
Pavel
упс, тогда видимо у меня неправильно оформлен плагин lookup