Andor
и это нормально
Andor
имхо
Andor
ща сделаю почти-хиеру и даже будет почти удобно
Anonymous
Подскажите кто чем в автоматическом режиме тестит плейбуки ?
Andor
molecule
Timur
Молекула + Gitlab CI + Travis CI
Anonymous
Слыхал о ней. Тоже к ней склоняю
George
для структурирования
George
типа ооп
George
инкапсуляция. абстракция и прочая фигота
Timur
а нахрен они тогда вообще нужны-то? %)
Переменные в vars? Там служебные переменные, как правило. Которые используются внутренней логикой роли, но которые не должны переопределяться юзером. Переменные, которые являются кастомизируемыми параметрами, должны лежать в defaults
Timur
Тогда сразу исчезают вопросы вроде вашего - а какое значение переменной у меня подтянется - из vars роли или из group_vars инвентаря
Timur
Правильный ответ: эти переменные просто не должны пересекаться
George
поддержу Тимура. Это примерно как сравнивать публичные и приватные переменные класса.
George
Приватные - это его личное дело и сделаны просто для удобства дальнешей разработки роли
George
да, в ООП если нужна такая ботва - ты наследуешься от базового класса и переопределяешь что тебе нужно
George
в принципе здесь та же история - форкни роль и делай что душе угодно )
Timur
Приватные - это его личное дело и сделаны просто для удобства дальнешей разработки роли
Не совсем. Там может быть довольно сложная логика. В варсах могут быть переменные и их наборы, которые подключаются ролью динамически в зависимости от фактов
George
я согласен
Timur
И которые просто произвольно переопределять не нужно
George
согласен
George
публичным интерфейсом роли являются переменные, которые явно определены как доступные для изменения
Timur
У нас для наших ролей в ридми всегда описаны все переменные, лежащие в defaults. Потому что именно они параметризуют роль
Andor
Про варс роли я вообще не говорил если чо.
Timur
Это ответ не на тот вопрос, который я задал.
Значит, я не совсем правильно вас понял
Andor
Но раз админ чята про ансибль считает, что говорил, значит я это делал
George
Про варс роли я вообще не говорил если чо.
ты хочешь обсуждать криво написанные роли?
Andor
ты хочешь обсуждать криво написанные роли?
Нет, я просто хочу что-то похожее на хиеру
Pavel
Речь-то о том, что роль (пусть и параметризированная) должна полностью отвечать за настройку компонента, иначе опять башсибл получается.
не всегда так получается (или может я не знаю как правильно), пример: есть роль nginx - настройка и конфигурирование (с хендлерами) мне надо обновить сертификат ссл - роль для этого по-идее должна быть отдельная, но мне же нужен хендлер из nginx....
George
даже хиера возможна только для определенных переменных, кмк
George
не для всех
Timur
Но раз админ чята про ансибль считает, что говорил, значит я это делал
Ещё раз: я понял, как описал. Возможно, понял неправильно. Если вы уточните свой вопрос - то понять вас будет значительно легче
Andor
даже хиера возможна только для определенных переменных, кмк
Для тех которые заданы как переменные классов, аналогично переменным (те которые defaults) ролей
George
но не приватным переменным? которые типа не предназначены для переопределения юзером ?
Andor
В ансибле даже есть опция мёржить дикты, но написано что не рекомендуется
Владимир
Привет. Есть способ в плейбуке выполнять только задачи с определёнными тегами из включённых в него ролей? Через командную строку как-то не удобно.
Andor
что ты хочешь конкретно?
Я еду домой и хочу покушать
Андрей
Всем привет! Такой вопрос - у меня есть ПО которое устанавливается своим инсталлятором (binary file). Процесс установки состоит из непосредственно установки самого ПО и апдейта на него. Установка выполняется от рута, а апдейт от юзера-овнера ПО.. Проблема в том что при запуске таски от рута фейлится установка апдейта shell: "{{ temp_files_path }}/RHEL/installer/install -silent {{ temp_files_path }}/silent/response-file" args: executable: /usr/bin/ksh- но когда я запускаю ту же команду на таргет машине # ksh # ./install -silent ../../silent/response-fileюзер переключается (это хендлится самим инсталятором). И весь процесс проходит успешно. Подозреваю, что проблема в том что Ансибл то ли не может переключить юзера в контексте одной таски то ли переключая не устанавливает необходимые переменные. Есть ли какой-то вариант решить этот вопрос?
Андрей
это уже хорошо) но у меня нет идей
George
проверяй под каким юзером запускается ансибл
George
проверяй какие переменные окружения (там шелл может быть не совсем "честный")
George
но это общие слова, а так - да, надо отлаживать
Damir
Парни, в чем может быть проблема? Есть такой скрипт на баше:
Damir
#!/bin/bash base_port=7000 num_servers=$1 shift report_base=$1 shift iperf_options="$*" # Run iperf multiple times for i in `seq 1 $num_servers`; do # Set server port server_port=$(($base_port)); # Run iperf iperf3 -s -p $server_port $iperf_options & done
SM
я бы делал по нубски ) то есть создаешь баш файлик в котором производишь запуск той команды, а паралельно ещё и команду whoami и » в лог.
Damir
Пытаюсь его засунуть в такс: --- - name: Task Run IPERF server - Default-1 - port on user-1-site-1 script: /root/phase2/Default_1/site-1-default-1.sh
Damir
Но на сервере iperf служба, как серввис не запускается
Damir
Да, могу, но времени дольше уйдет
Damir
Мне нужно быстро проверить одну фичу, здесь и сейчас как говорится
Damir
Почему то он амперсант & не воспринимает должным образом
Damir
Ага, как в фоне
Sergey
Напиши нормальный юнит systemd и стартуй его как положено
Damir
Да, уже понял. Получается только напрямую запускать shell команды, без цикл оберток
Sergey
ну или циклообёрку перепиши в однострочную форму - и всё получится
Sergey
Только это вот прям вообще точно стопудово не про Ansible
Damir
Ага, самому страшно становится, когда смотрю на bash oneline и все это в ансибл (
Damir
Понимаю что за это по рукам надо бить
Damir
До этого просто тестировал на баше трафик флоу и тут нужно быстро распаралелить эту процедуру
Damir
В лоб не получилось сделать, надо нормальный такс пилить
Damir
Этим и займусь