Aleksandr
вот конкретно. со ссылкой на документацию, что так делать нельзя. или сам балабол
Sergei
Какие вы злые, уу
Gleb
да никто тебе не запрещает любую дичь делать, ансиболь все стерпит.
Aleksandr
Sergei
А баш скрипты внутри таска стерпит?
Aleksandr
Какие вы злые, уу
да не, просто я хочу юзать обвычную проверку со стандартным when, но тут приходят люди и начинают без конкретики говорить что оказывается я криво ансибл использую
Aleksandr
в моей задаче есть плейбук, который настраивает сервера. есть условно 10 клиентов, 10 соответствующих групп, в каждой из них N серверов. У нескольких клиентов есть единственное, специфичное для клиента отличие, настройка которого это 2 лишних таска. так в чем проблема если я хочу при раскатке плейбука проверять принадлежит ли хост одной из нескольких групп(заранее известных), чтобы на них сделать дополнительное действие? Разбивать плейбук на несколько и выполнять таски специфичные для хоста - вот это как раз оверхед. так вот скажи мне, почему по твоему мнению я вдруг не прав и потом буду говорить что ансибл тормозит?
Sergei
Этот when не сделает ансиболь более тормознутым. Ваш спор исчерпан, лол
Gleb
во-первых эта фраза была полу-шуточной, во-вторых в целом когда начинаешь использовать так как кажется удобным тебе, а не так как было запланировано в какой то момент это критической массы достигнет.
Почему вы за when зацзацепились я не понял
Dok
Отделение Bereke Bank
Ты прав. Для каждого клиента должна быть своя репа с плейбуками и ролями.
В таком случае
1) не надо разбивать один плейбук на несколько плеев
2) не будешь использовать каку с when
Отделение Bereke Bank
Andrey
Универсализация везде приводит к трудноподдерживаемой лапше из when, jinja etc
Aleksandr
Andrey
Или гелекси с реквайрементс
Dok
Aleksandr
Что тебе мешает сделать pre post tasks для такого клиента?
в этом конкретном случае - ничего. а что если эти таски были бы зависимы от предыдущих действий? разбивать вот так я не хочу..
- hosts # 1 part
- hosts # специфичные таски
- hosts # 2 part
типа мне как раз это кажется дичью в этлм случае
Dok
Блин, Буква
Отделение Bereke Bank
Dok
Д Е Л И Г Е Й Т _ Т У
Aleksandr
Блин, Буква
тщщщ, в интернете кто-то не прав)
Andrey
Aleksandr
Aleksandr
еще раз, я тут услышал кучу советов как сделать по-другому, но ни одного по делу почему делать как я хочу - не правильно
Sergei
Вырубил selinux и не надо ничего настраивать %]
Aleksandr
и? это не решает мою проблему. мне надо настраивать селинукс только у нескольких клиентов
Aleksandr
я бы вырубил селинукс переводом серверов на дебиан, но увы и ах, не получится)
Sergei
А чем группы отличаются? Ос с селинукс и без?
Aleksandr
нет. группы по клиентам. [клиент1]-сервер1, сервер2, серверН,...
Отделение Bereke Bank
если селинукс включен везде - в чем проблема прогнать его настройку везде?
если вкл только на некоторых хостах - пример выше
Aleksandr
на самом деле нет проблемы вообще никакой сделать еще 10ком разных способом. мне тупо было интересно как правилно сформировать when и я пришел с этим вопросом в комьюнити. Но вместо того чтобы ответить меня начали учить жизни, ну как всегда короче.
Dok
- block:
- name: Make dirs in tratata-api container
# [!] check owners and groups
file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner }}"
group: "{{ item.group }}"
with_items:
- path: "/etc/tratata-inspector/dhcp-hostsdir/"
owner: tratata
group: tratata
- path: "/etc/tratata-inspector/rootwrap.d/"
owner: root
group: root
- meta: flush_handlers
when: "ansible_hostname == tratata_api_container"
# UTILITY_ALL[0]
- block:
- name: Make dirs in utility_all container
# [!] check owners and groups
file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner }}"
group: "{{ item.group }}"
with_items:
- path: "/tftpboot/pxelinux.cfg/"
owner: tratata
group: tratata
- path: "/var/log/tratata-inspector/ramdisk/"
owner: tratata
group: tratata
delegate_to: "{{ hostvars[groups['utility_all'][0]]['ansible_host'] }}"
Как пример
Aleksandr
т.е. меня интересует именно решение с when чтобы знать как делать эту конструкцию. для знаний, для опыта.
Sergey
Anton
Коллеги, как список вернувшийся из jinja явно указать что значения integer? Или каскадно обрабатывать внутри jinja можно?
Aleksandr
Lamobot
Отделение Bereke Bank
добавит имя группы в условие конечно же. а если будет в отпуске - второй админ точно не забудет этого сделать 👍🏽
Andrey
Отделение Bereke Bank
у кого нибудь есть рабочий пример как из testinfra получить доступ к hostvars хоста во время выполнения molecule test ?
в интернете ничего нормального не нашел
Aleksandr
Окей, а теперь если вы закончили терзать одну и ту же проблему, что если я вам скажу что это решение - на период перехода, пока всех клиентов до селинукса не дотяну? Почему вы упорно считаете что знаете инфраструктуру и обстоятельства человека лучше него?
Aleksandr
Aleksandr
Господа как бы то ни было я свой вопрос уже решил, всем спасибо, пойду смывать все те ощущения от прекрасного общения с людьми
Alesha
Lamobot
спасибо, ты был первый с адекватным ответом
По-моему, это обсуждалось здесь, и не раз.
Решается через group_vars, где ты нужным группам задаешь переменную, к примеру selinux_config: True
И используешь эту переменную в роли/плейбуке
Sergey
@Bykva ну хотя бы вот так ^^^
Отделение Bereke Bank
Andrey
Отделение Bereke Bank
пичаль...ато на каратине делать нечего, решил молекулу к своим ролям прикрутить. шоб по феншую
Aleksandr
Aleksandr
Так никто не против, расставляй грабель сколько считаешь нужным
я уже объяснил же
1) это временное решение
2) мне было интересно разобраться как сделать именно так как я придумал - это мой субботний ресерч
3) я принципиально в данном вопросе не слушаю людей которые не обосновывают свои ответы. За весь этот диалог я услышал всего пару доводов и да я с ними согласен, и нет они были не от тебя
4) не надо превращать комьюнити в лор. по моему мнению все были бы в выйгрыше если бы ответ строился в виде "чувак, вот ответ на твой вопрос, вот так сделать то что ты хочешь, но делать как ты хочешь не рекомендуется, потому что а,б,в, используй мой ответ на свой страх и риск". Но нам же всем западло писать такие красивые ответы, проще же гуаном полить, верно?
Andrey
я уже объяснил же
1) это временное решение
2) мне было интересно разобраться как сделать именно так как я придумал - это мой субботний ресерч
3) я принципиально в данном вопросе не слушаю людей которые не обосновывают свои ответы. За весь этот диалог я услышал всего пару доводов и да я с ними согласен, и нет они были не от тебя
4) не надо превращать комьюнити в лор. по моему мнению все были бы в выйгрыше если бы ответ строился в виде "чувак, вот ответ на твой вопрос, вот так сделать то что ты хочешь, но делать как ты хочешь не рекомендуется, потому что а,б,в, используй мой ответ на свой страх и риск". Но нам же всем западло писать такие красивые ответы, проще же гуаном полить, верно?
На stackoverflow ответы на подобные вопросы есть
Alex
Sergey
Dok
В Zoom ограничения у бесплатных собраний. Например, по времени в 40 минут. Если что
Sergey
Vladimir
Темы то какие? А то может быть как интересно, так и совсем не интересно
Artem
А ссылочка в шапке будет ?
Отделение Bereke Bank
Sergey
Lev
Roman
время конечно печалит
Ivan
Ждун
Sergey
Sergey