Damir
По сути я тот же баш вынесу в модуль написанный на питоне, или воспользуюсь нативным средством питона, что бы проверять пароль для mysql
Damir
Тогда в чем принципиальная разница, если команда баша появится в самой роли
Алексей
я думаю это как раз те 20% башсибла про которые Сергей указывал в докладе
Damir
Согласен, при oneline баше, выносить в отдельный модуль нет смысла
Алексей
тут просто нужно проверить, зарегистрировать вывод и на его основе запускать таски. Я тоже не вижу смысла выносить это всё в модуль.
Sergey
Sergey
Damir
Ну в модули можно засунуть любую логику, но когда нужно проверить только один конкретный вывод команды, нужнен ли модуль в этом случаи
Sergey
Нужна декларативность. Разработка на YaML - путь в ад.
Sergey
Причём в персональный :-D
𝚔𝚟𝚊𝚙𝚜
Anonymous
Подскажите пожалуйста такой момент. Что-то я не понимаю - как можно выставить limit выполнения Workflow template в AWX по хостам/группам хостов? Или я концептуально что-то не понял?
Anonymous
Andrey
Привет всем, подскажите что я не правильно оформил?
https://gist.github.com/panov-andy/7396b6d028b866574db8c1910db01e09
там 5 строк буквально
Timur
Timur
Только я бы become в роль перенес
Timur
А, не
Timur
Там же роль
Timur
tasks не нужны тогда
Timur
---
- hosts: dexx2
roles:
- role: geerlingguy.docker
become: yes
Oleksandr
убрать таскс, да
Timur
Я выше исправил как правильно
Andrey
спасибо, работет
А есть какая-то фиксированная схема, что и где должно быть? Или как это вообще работает?
ℭ𝔞𝔯𝔯𝔬𝔩
Timur
Timur
Роли и таски - это два отдельных списка
Timur
В одном плее их совмещать нельзя
Timur
Есть исключения вроде pre_tasks и post_tasks, но это специфические кейсы
Timur
А так - на один плей в плейбуке вешается либо набор тасков, либо набор ролей
Timur
Если нужно и то, и другое, то роли выносятся в таски посредством import_role или include_role
Oleksandr
Andrey
так... а вот так нельзя? (но работает)
https://gist.github.com/panov-andy/e17157bcc8c4b6eb802d7498b48b3f49
Timur
Timur
Если нужно таски после роли выполнить, лучше делать post_tasks
Timur
Ну и выполнять все таски и роли с become: yes - это плохой фэншуй
Andrey
Есть
А где посмотреть? Или как отвалидировать?
ℭ𝔞𝔯𝔯𝔬𝔩
Timur
the order of execution for your playbook is as follows:
- Any pre_tasks defined in the play.
- Any handlers triggered so far will be run.
- Each role listed in roles will execute in turn. Any role dependencies defined in the roles meta/main.yml will be run first, subject to tag filtering and conditionals.
- Any tasks defined in the play.
- Any handlers triggered so far will be run.
- Any post_tasks defined in the play.
- Any handlers triggered so far will be run.
Oleg
коллеги, подскажите:
есть джоба кторая отробатывает на ура, когда все переменные имеются, в разных ситуациях переменныхх может быть меньше или больше, ставлю ignore_errors: true что бы пропустить отсутствующие, ансибл пишет ...ignoring и останавливается, как сделать так что бы он игнорил отсутствующие данные и продолжал работать со стальными?
Damir
Timur
Timur
О каких отсутствующих данных идет речь?
Timur
Timur
Какой парой?
Anton
да все понятно, он подставляет в цикл переменные в виде хостов которые не всегда статичны
Timur
Зачем группа хостов в with_items?
Oleg
Парой=иногда)
Oleg
Нуда) сорян
Timur
Код дайте просто
Oleg
Anton
именно!)
ну раз у тебя хосты как перменные идут, то видимо ты их поделил уже на items, и если ты жестко задал список items то может быть есть смысл передавать словарь с нужными хостами, тогда не важно будет сколько у тебя в нем записей и ругани на отсутствующую переменную не будет
Oleg
Anton
ты можешь тогда завязать вообще на 1. пустая переменная или нет (если группы нет), 2. на значение переменной.
nett00n
привет чат.
Я сломал весь мозг и угуглился уже, потому пришёл к вам
[app_app1]
host1
[app_new_app2]
host2
...
[something_else]
host3
как сделать, чтоб инклюдящаяся таска запускалась, только если host входит в любую из групп app_* - таких групп много и их список растёт.
in и is superset требуют полное соответствие, в маску не умеют.
Timur
Timur
И на нее натравливайте таск
Timur
Все просто
Oleksandr
Oleksandr
Oleksandr
подозреваю что с --limit сработает
nett00n
внутри плэйбука вместе с when не помогло.
похоже, единственное для этого плейбука гуманное решение, это ansible-playbook site.yml -e is_app=true
если есть ещё какие-то идеи - буду рад выслушать
Oleksandr
не
Oleksandr
я про --limit
Bird
Всем привет!
Если можно, начну с дурацкого вопроса.
Как плейбуком обработать строку с командой, содержащей решётку '#'?
nett00n
shell -a "echo \# "
shell -a "echo '#'"
гугл://экранирование
Павел П.
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
пара примеров
Oleg
есть группа хостов в переменной, как можно фильтронуть кол-во серваков в группе?
Eugene
Timur
Timur
Timur
И не нужно лохматить бабушку
Timur
AlexK
привет, может подскажете, как мне вынести с модуля script параметры для скрипта (ip address, etc) куда-то отдельно или использовать при запуске плейбука. Заранее спасибо script: /path/install_auto.sh -d 192.168.102.186 -i 192.168.102.186 -p 443