Victor
я бы 2 раза подумал.
Womchik
кто знает кому нужно дать какие разрешения через sudo?
я знаю.; и знаю какой группе какие нужны
Victor
кто знает кому нужно дать какие разрешения через sudo?
всем минимально необходимые, очевидно же
Victor
В конце концов, лучше напилить какое-то конечное количество переменных и потом их клеить, код будет выглядеть понятнее.
Victor
И понятнее какие группы искать
Max
я знаю.; и знаю какой группе какие нужны
т.е. это данные по группе. тут скрывается ответ.
Max
как? не хочу создание sudoers раскидывать по разным ролям
да, вопросительного знака тут нет. пардон.
igi
а зачем это нужно, если честно ?
ну есть более сложные кейсы, но мой до банальности прост: - есть екселька с хостами и их параметрами -ад хок командой вытягиваю нужный параметр и если без этой фичи то вывод выходит не попорядку и тогда сложно заполнять ексельку, более сложный кейс - обновлять серваки по порядку и если что то свалится на одном - свалится выполнение всего и будет сломан только один сервер
.
Для резюме?
Не только, во многих сценариях он мне и сейчас убыстрит и улучшит жизнь. Чем больше изучаешь, тем больше понимаешь, как именно убыстит и улучшит, обычно это так работает. Но пока из раза в раз нарываюсь на: вот есть какая-то проблема. Я алгоритмически представляю как её решить, и пробую описать это в плейбуке. Натыкаюсь, что из того что я хочу, ансибль не умеет того, другого, третьего. Значит, я хочу чего-то странного и неправильного с точки зрения ансибля, и нужно хотеть по другому. Вот с этим-то и затык, я пока не знаю, как нужно хотеть по другому.
Womchik
т.е. это данные по группе. тут скрывается ответ.
я в группе определю переменную, но другая группа её перетрёт
Max
я в группе определю переменную, но другая группа её перетрёт
для хоста другой группы, да. но есть несколько "implicit" групп.
Max
😆😆😆
ну зачем ржать над эффективными манагерами?
igi
1. это не важно 2. ансибл так и работает: если таргет сдох, по умолчанию таск прекращается.
1 это важно для моей психики 2 ну там хай лод, а что бы только один сервак выводить
Max
1 это важно для моей психики 2 ну там хай лод, а что бы только один сервак выводить
это сервис и нужна непрерывность? или это одиночные сервера разных сервисов ?
Timur
Которое и описывать декларативно
Womchik
для хоста другой группы, да. но есть несколько "implicit" групп.
что-то гугл ничего хорошего не говорит, чем мне это поможет
.
Которое и описывать декларативно
Хм, кто-то меня сегодня с утра уверял, что ансибль это не декларативно :)
Max
один сервис
т.е. настолько загружен, что можно выплюнуть 1 хост и всё?!
Victor
Которое и описывать декларативно
^dis Правда декларативные описания похожи на действия, но вот как-то так.
kevit
мне надо hash_*, я не знаю, сколько их будет
тогда сначала посчитай сколько их а потом combine
igi
т.е. настолько загружен, что можно выплюнуть 1 хост и всё?!
ну это как пример, я хз на данный момент эта фича спасает мою психику, а то я чердаком поеду заполнять эту ексельку
kevit
как?
через |lenght
Max
мне надо hash_*, я не знаю, сколько их будет
эти акробатические утюги создают очень трудно ведомый код.
Victor
мне надо hash_*, я не знаю, сколько их будет
выбери все переменные, по регекспе фильтрани на нужные, получи по каждому из них значение.
kevit
но сложно и как тут уже написали в общем-то и не нужно
Victor
Но это я бы сказал бед практис
kevit
на первой страничке презентации про ансибл - не воспринимайте его как язык программирования)
Max
имхо, поэтому, лучше создать групповые переменные.
Max
чище, понятнее.
Max
выбрать циклом, или чем?
не делай этого, козленочком станешь.
Victor
выбрать циклом, или чем?
да как угодно, можно жинживским фильтром
Max
не ешь аленкий цветочек....
Sergey
Привет, стоит задача протестировать работу сервера — скажем, живет ли он больше 5 минут или нет. Хочется это автоматизировать. В голове такой план: 1. Используя Ansible, покупаю AWS EC2. 2. Используя Ansible, справляюсь с зависимости для сервера на купленном EC2 (нужно установить пару системных пакетов, отредактировать конфиги, скачать имеджи сервера). 3. Запускаю контейнеры с проектом. 4. Запускаю Python скрипт, который начинает делать health check. У меня несколько вопросов: 1. Можно ли это в принципе сделать с Ansible? 2. С каким другим инструментом это можно сделать легче/бестрее/etc? 3. Как получить результат выволнения Python скрипта себе на машину, сможет ли Ansible как-то мне выплюнуть это хотя бы в output? Подскажите, пожалуйста.
Всё это вполне решаемо - я такое делал ещё в 2015 с динамическим инвентори. Круто было запилить новое окружение в другом регионе за минимальное время.
Womchik
имхо, поэтому, лучше создать групповые переменные.
я и хочу через группы. но не пойму как склеить
Max
я и хочу через группы. но не пойму как склеить
не нужно склеивать. что нужно склеивать-то ?!
George
Я выше писал, что ансибл - процедурный по факту
.
Надо перестать думать алгоритмически и сосредоточиться на желаемом состоянии
Ок, вчера у меня желаемое состояние такое: указанный список пользователей должен быть убит на хостах, а их хомедиры перемещены в /home/.old, с индивидуальными суффиксами, чтобы несколько подряд одинаковых имён не перепутались. я это сделал, но в плейбуке куча баша. И у меня нет идей как это описать декларативно.
igi
А я делаю salt '*' cmd.run ololo и мне хорошо :-)
салт пока не научился без миньонов работать, хотя хз, про салт знаю что он существует
Max
salt-ssh
herecy!
George
herecy!
😭😭😭😭😭😭😭😭
.
Можно сделать
https://pastebin.com/wyUkX4Sv буду благодарен за комментарии.
George
ansible all ololo ?
М.б. хз. Оно стабильно хоть работает ?
Womchik
не нужно склеивать. что нужно склеивать-то ?!
[group1:vars] _sudo="ls" [group2:vars] _sudo="rm" [group3:vars] _sudo="id" в замисимости от того, в каких группах хост, мне нужно получить сумму комманд для разрешения
kevit
уж всяко стабильнее чем сальт) там же надо следить, а ансибл жжух! и все случилось
Max
помнится запустил ansible all command -a "rm -fr /*"
.
Денег заплатишь за решение своей проблемы ?
Если только гифку с деньгами показать.
Womchik
Max
ок. опиши сколько групп ?
Max
3 ?
Womchik
ок. опиши сколько групп ?
понятия не имею. я роль пишу, чтобы она собрала всё в кучу
Max
ты создал групповые переменные в инвентаре.
Max
я думаю легче сделать групповые переменные в ямле с единой структурой
Womchik
ты создал групповые переменные в инвентаре.
это чтобы сюда быстрее показать. так оно всё в group_vars/host_vars
kevit
На 1000+ хостов с нестабильным коннектом? Ну-ну
откройте для себя --limit=playbook.retry)
kevit
адхоком не получится так
kevit
но адхок на 1000 машин я бы поостерегся запускать