Grek 🇺🇦
или, если хотите чтоб всегда работало - попробуйте указать playbook_dir, тогда все темпы будут относительно плейбука
Lamobot
Ну походу придется действительно просто точку монтирования менять и потом cd делать
Может просто монтировать не туда, где ансибл пытается создать tmp? В образе создать юзера для ансибла, и все эти файлы будут в его домашней директории. А монтировать нужные файлы уже в другое место
Sebor▂▅▇█▓▒░
Sebor▂▅▇█▓▒░
Не умеете готовить :)
Та я и не готовлю, у меня доступа нет к этому всему) Только пайпы писать могу
Полина
Привет. Для того что бы запустить playbook от имени другой учетки (чтоб перекрывал написанное в all_vars или hosts) для сетевого устройства (cisco) можно указать в плайбуке так: - name: AAA - host: A - ansible_user: user - ansible_password: pass Так можно, работать будет?
Николай
да и вообще, надо смотреть, что в приоритете
Полина
Кажется, по дефолту, учетки в плайбуке более приоритетны
Николай
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#understanding-variable-precedence
Valiy
echo "remote_user = useruser" >> ansible.cfg
Полина
Я хочу управлять коммутаторами, поэтому reomote_user не подходит. На сколько мне помниться
Полина
Vars и vars-prompt можно вместе использовать?
Anonymous
была версия 2.5
Jungo
Коллеги может кто подскажет как создать директории вытащив их названия из вложенного списка path с условием что type==mysql и burp_client_custom_plan существует? https://pastebin.com/ST9hzPKb без вложенного списка все просто получается а тут надо как-то перебрать их
Отделение Bereke Bank
Ну и дефолт у тебя [] а не {}
Jungo
subelements вроде. Погугли так
msg: 'subelements lookup expects a list of two or three items, у меня одна(
Отделение Bereke Bank
msg: 'subelements lookup expects a list of two or three items, у меня одна(
Я как-то делал похожую еботу. Часа через два буду у компа) если не найдешь решение гляну
Jungo
Я как-то делал похожую еботу. Часа через два буду у компа) если не найдешь решение гляну
ок! спасибо напишу это генератор скриптов для дампа баз допиливаю
Ruslan
Всем привет. Подскажите пожалуйста, как правильно использовать role в tasks ? Хочу использовать роль из galaxy https://galaxy.ansible.com/broadsoftware/hdfs_modules Точнее эта роль по сути набор модулей. Если делать как в readme - подключать роль в плейбук через - roles, то все работает. Если подключить роль к таск через include_role, то получаю: fatal: reason: |- couldn't resolve module/action 'hdfs_file'. This often indicates a misspelling, missing collection, or incorrect module path.
Sergey
Мерзопакость: https://github.com/nginxinc/ansible-role-nginx-config/blob/main/tasks/config/template-config.yml.
Sergey
Каждый таск обвешан when'ами, при этом все представляют из себя циклы. Разве трудно было это всё унести в defaults, чтобы при отсутствии "включалок" словари/списки были пустыми? Нет, не трудно, но это же надо думать #декларативно.
Отделение Bereke Bank
У меня больше горит с их ямлов на 10000 строк. Хочешь описать один виртхост - пиши 100 строк
Lamobot
Мерзопакость: https://github.com/nginxinc/ansible-role-nginx-config/blob/main/tasks/config/template-config.yml.
Всегда было интересно, как люди используют такие роли. Помимо доки nginx, нужна ещё дока к роли приправленная докой от ансибла 😂😂😂
George
Больше доков богу доков
Sebor▂▅▇█▓▒░
Поэтому я часто свои велосипедыроли пишу)
Ivan
Привет! Есть у меня такое: include_role: name: grafana tasks_from: datasources apply: delegate_to: "{{ item }}" проблема в том, что таски внутри datasources.yml получают инвентори хоста, откуда были делегированы, а не кому. delegate_facts я пробовал, но насколько понял, это относится только к новособранным фактам. я могу извернуться через hostvars[groups..], но есть ли вещи лучше?
Grek 🇺🇦
што за дич?! что вам надо сделать и зачем вызывать таски на делегированом хосте
Ivan
цель подложить графане датасорсы тех сервисов, которые выполняются в текущей роли. Если сервис есть — он зовёт роль и она подкладывает файл с варсами текущего сервиса, если нет — не подкладывает
Ivan
Grek 🇺🇦
а не проще запускать этот плей на нужной группе хостов?
Aleksey
Он был сделан под влиянием @amarao 2017 года выпуска
Aleksey
С тех пор много воды утекло и вся вода плохая
George
У меня есть убийственный аргумент - include_role - preview и для продакшена не годится.
Aleksey
Ну он может работать но для поддержания требует больших усилий
Alex
А что вместо include_role надо юзать?
Ivan
roles:
а можно подробнее развернуть мысль, пожалуйста?
Отделение Bereke Bank
roles и пишешь роли которые тебе нужны в нужном порядке
Alex
roles:
Это в пределах плея, а если мне надо в тасках?
Lamobot
а можно подробнее развернуть мысль, пожалуйста?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#using-roles-at-the-play-level
Ivan
А что делать, если мне надо в определённый момент это делать?
Ivan
Более того, по вашей ссылке ниже два вполне себе кейса с include_role, в той же документации
Lamobot
Более того, по вашей ссылке ниже два вполне себе кейса с include_role, в той же документации
Два? Один чтобы можно было из роли использовать таски с тэгами? А второй? Через when? :)
Lamobot
А что делать, если мне надо в определённый момент это делать?
Просто на мой взгляд, тэги - странный способ реюзать плейбуки :) Недавно писали о том, что случится, если забыть тэг поставить как-нибудь :) А второй, запускать роли с условием - тоже странно, всё это делается через группы хостов. В итоге, функционал не особо нужный. Если есть примеры реальных кейсов, где это нужно - скажите.
Grek 🇺🇦
Вот у меня кейс: Несколько ролей для настройки системы. В тестовом окружении можно деплоить на ВМки и на железные хосты. И вот я использую when, где через переменную окружения определяю надо ли выполнять роль деплоя ВМ, или надо сразу на указанные хосты пойти и настроить.
Ivan
Просто на мой взгляд, тэги - странный способ реюзать плейбуки :) Недавно писали о том, что случится, если забыть тэг поставить как-нибудь :) А второй, запускать роли с условием - тоже странно, всё это делается через группы хостов. В итоге, функционал не особо нужный. Если есть примеры реальных кейсов, где это нужно - скажите.
Вот у меня есть роль консул-темплейта и роль кликхауса. Я зову из роли КХ роль к-темплейта, чтобы он мне наделал файлов с переменными, о которых знает лишь роль кх. Пока опустим кейсы инициализации вообще, пусть всё статично
Grek 🇺🇦
Хороший, я просто ленивый и сделал все в одном плейбуке.
Elenhil
Ну дык "лень" - не юзкейс
Elenhil
Что мешает сделать плейбук "поставить сервисы" и плейбук "создать машину" и импортнуть первый плейбук во второй?
Elenhil
Там одна строчка
Отделение Bereke Bank
Ivan
То есть у вас роль зависит от другой? :)
да, роли попилены и каждая отвечает за свой сервис, но иногда необходимо сделать так
Alex
pre_tasks/post_tasks ?
Нее, я роль вызываю десятки раз в пределах плея
Lamobot
да, роли попилены и каждая отвечает за свой сервис, но иногда необходимо сделать так
Одна роль, видимо, слишком большая получается? :) Если у вас в роли КХ есть переменные, так используйте их там же чтобы создать нужные вам файлы.
Lamobot
Нее, я роль вызываю десятки раз в пределах плея
А зачем? Стейт на сервере первый запуск роли выставит
Bessonov
Товарищи, привет! Подскажите, пожалуйста, существуюет ли ansible модуль для копирования файлов на шару azure (интересует именно шара, а не blob storage - azure_rm_storageblob)? есть ощущение что искалка сломалась
Ivan
но я вас понял
Sergey
Непринципиально. Хоть одну, хоть сто одну - какая разница? Роль по определению должна быть герметична. Максимум, на который я бы пошёл в такой ситуации - вызов из плейбука в роли КХ спец. таски, которая вернёт словарь, который уже можно использовать в следующем вызове роли К-Т.
Sergey
Иначе появляется абсолютно не нужная в ролях связность, когда они друг про друга что-то знают.
Ivan
> который уже можно использовать в следующем вызове роли К-Т. а если эта роль уже прошла до этого момента? опять выходит звать роль из роли
Sergey
Кстати, подход, когда всё необходимое роли получают из параметров своих вызовов либо из defaults/, реально упрощает жизнь, хотя поначалу кажется чем-то тупым и неудобным. Рекомендую, в общем. Explicit is better than implicit.
Aleksey
Иначе появляется абсолютно не нужная в ролях связность, когда они друг про друга что-то знают.
там так надо что бы они друг про друга знали. они не независимые