Aleksandr
разработчики должны иметь возможность прочитать в репе темплейт конфига и переменные для него. что-то нужно добавить или изменить, пусть делают pr
Aleksey
ой не это не было предложением о работе вовсе. только ругань
Aleksey
если у вас разные шаблоны и вы не можете сделать их близкими разделите на более мелкие шаблоны
Aleksey
собирайте основной шаблон из более мелких
Vladislav 👻
Подскажите, можно ли для модуля user сделать так, что при добавлении в группу, если пользователя нет, он падает с ошибкой?
Vladislav 👻
Т.е. суть в том, чтобы модуль не создавал пользователя в системе, если его нет, когда делается добавление в другую группу
Alex
Они могут быть силинками или чем ещё похуже - например, каталогами со сбитыми правами.
по ходу проблема таки была в симлинке, хотя в доке об этом явно не говорится. Смутило то, что с локальной машины все отрабатывало нормально, а вот при запуске с дженкинса - возникала эта проблема
Alex
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#how-to-differentiate-staging-vs-production читали?
Alex
Подскажите, можно ли для модуля user сделать так, что при добавлении в группу, если пользователя нет, он падает с ошибкой?
вызывайте перед этим таском проверку существования пользователя - name: Check user check_mode: true user: name: "{{ curr_user }}" register: check_user
Alex
Ну видишь, чуда не случилось. Симлинки тупо пропускались, судя по всему.
тут два момента: 1. Почему они не отражаются в missing 2. Почему при запуске локально они же копируются без проблем
Sergey
Вангую, что там вопрос прав и отображение пользователей.
Alex
плейбук одby и тот же, запускается от одного пользователя - ansible
Alex
отличие только в ОС - у меня MacOS, на Jenkins - Ubuntu 16 и версия питона у меня 3.8 (хотя проверял и на 2.7), на Jenkins 2.7.12
Alex
к тому же у таска стоит become: yes
Alex
так что врядли дело в правах
Alex
в обоих случаях был CentOS 8
Sergey
Я же про версию питона
Alex
Python 3.6.8
Sergey
так что врядли дело в правах
https://github.com/ansible/ansible/issues/24427
Alex
классика
Alex
но каким чудом оно тогда архивирует при запуске локально - загадка
Sergey
Исполняется на Python3?...
Alex
в случае локального запуска - да, на обоих машинах 3й питон
Alex
но я локально запускал и на 2м питоне через pyenv, все равно копировало симлинки
Sergey
А анисблы сами, может, различаются?
Dan
Я тут начал смотреть на gcp_compute_instance, и как оказалось у него нету count, то есть оно создает одну машину. Если мне надо несколько одинаковых то есть другой модуль, или гонять эту дрянь через loop? Может есть пример у кого-нибудь?
Sergey
но я локально запускал и на 2м питоне через pyenv, все равно копировало симлинки
Ну я помню, что ты горел как-то на тему 3->2 или там 2->3 - в общем, мсье такой затейник :-)))
Alex
поэтому и использую 3й - где это возможно
Alex
просто не совсем понятно - причем тут версия питона к функционалу самого модуля
Alex
если он не поддерживает симлинки - так он их должен не поддерживать хоть на 2м хоть на 3м питоне
Alex
нее?
Dan
нее?
подозреваю что локально он выполняет tar или что-то в этом роде, а tar уже и сам ходит по симлинкам. А удаленно хз, может он тянет файлы на локалхост и уже там их архивирует, и эта функция не понимает симлинки. Надо в код смотреть на самом деле
Alex
в смысле локально
Alex
архивация логов выполняется на CentOS8
Dan
в смысле локально
архивировать кучку файлов ансиблом (то есть с какого-то хоста через ssh) можно пакуя на удаленном хосте или сначала притащив рспакованное к себе и упаковав локально
Alex
архивировать кучку файлов ансиблом (то есть с какого-то хоста через ssh) можно пакуя на удаленном хосте или сначала притащив рспакованное к себе и упаковав локально
т.е ты хочешься сказать при запуске локально он копирует файлы на хост, а потом пакует их, а при запуске на дженкинсе он сразу пакует их на centos 8?
Alex
что то какая то фантастика
Dan
и просто привожу пример с потолка, я не говорю что именно так он все и делает
Alex
еще раз - в обоих случаях файлы удаленные и находятся они на машине под управлением CentOS8
Alex
меняется только управляющий хост с ансиблом
Dan
# python3 tarfile module allows xz format but for python2 we have to create the tarfile # in memory and then compress it with lzma. одна разница нарисовалась
Dan
какой формат архива?
Alex
zip
Andrey
Гайз, подскажите, может кто сталкивался, хочу ансиблом скопировать template , который содержит {{ }} фигурные скобки, как это можно сделать не больно?
Dan
да, это я видел
https://bugs.python.org/issue27318
Aleksandr
https://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#unsafe-or-raw-strings
Vladislav 👻
Но в темплейте я лично использую {% raw %} ... {% endraw %}
Dan
повторюсь :) Я тут начал смотреть на gcp_compute_instance, и как оказалось у него нету count, то есть оно создает одну машину. Если мне надо несколько одинаковых то есть другой модуль, или гонять эту дрянь через loop? Может есть пример у кого-нибудь?
Alex
https://bugs.python.org/issue27318
ну его вроде как не приняли, ради интереса проверю с другим типом архива
Dan
terraform
нет спасибо
citius
нет спасибо
ну тогда страдать )
Alex
что там без слез смотреть нельзя было
Dan
уууу, gcp модули настолько сырые были, по крайней мере год назад
сейчас есть новые, от самого гугля, не просто gce а gcp_*
Alex
угу
Alex
я про них и говорю
Alex
более того я общался с самими ребятами из гугла. кто занимался написанием новых модулей
Alex
в итоге плюнул на них (на модули, не ребят) и перешел на тераформ ))
Dan
блин...
Dan
это хреново. Не хочется начинать сначала
Alex
простой tar для начала
да, проверю. Но вот такие баги начинают жутко бесить. В тераформе такого нет 😉
Dan
да, проверю. Но вот такие баги начинают жутко бесить. В тераформе такого нет 😉
зависимости они всегда такие, и чем больше модулей тем сложнее. в жабе вообще ппц полное.
Dan
в итоге плюнул на них (на модули, не ребят) и перешел на тераформ ))
а есть готовые примеры, чтоб я не слишком мудохался? :)
Oleg
https://github.com/mig1984/bashible
класс, я вот только что тоже нашел это решил было поделиться, но сперва проверить былоли..
Aleksandr
Tadeusz
😊
Aleksey
Стоит ознакомится с jinja2
Aleksey
Ну или с приложением Яндекс.таксист
Aleksey
В шаблонах есть и if и for