Max
Эм...
Max
Systemd и init это таки разные вещи
Alex
поэтом я и сгруппировал их отдельно ;)
Max
а сделать то ты чего хочешь?
Full
Народ, а подскажите, плз., простой способ рендерить jinja-темплейты. Чтоб локально, подсунуть файл переменных, и поглядеть, что вышло.
Full
Уууу. :) Ладно, питон - так питон. Я надеялся есть способ еще проще. Типа такого: $ jinja2 template.j2 vars.yml
Grek 🇺🇦
Уууу. :) Ладно, питон - так питон. Я надеялся есть способ еще проще. Типа такого: $ jinja2 template.j2 vars.yml
напиши примитивный плейбук для этого и запускай его делегируя на локалхост
Full
Alex
а сделать то ты чего хочешь?
надо проверить корректность работы скриптов. Максимально приблизив их к боевым условиям. Если можно так выразиться эмулировать сисадмина/человека, который их запускает из консоли
Sergey
Куда проще?
Full
https://github.com/kolypto/j2cli
Интересный вариант, спасибо.
Full
Куда проще?
Уже некуда, это точно.
Aleksey
рендеринг же должен быть по каким-то переменным? смысл просто темплейт пустой получить?
Full
Один уточняющий вопрос - ансибл-специфичные фильтры. Я не очень понимаю, как это работает. В ямле выглядит одинаково, не отличить, где jinja, а где ansible. Вот наткнулся: no filter named 'password_hash'
Alex
я же говорю - меня интересует поведение относительно самой ОС. Т.е. для нее это будут равнозначные команды?
Aleksey
j2cli может переменные из окружения брать
цель проверить механим передачи в самом ансибле. не буду спорить, но тут только имеет смысл сделать таску с нужным дампом или локальной генерацией
Aleksey
и после неё просто метой завершить скрипт. отладить данный фрагмент и пойти дальше
Full
Вобщем, template запускается как ad-hoc только в путь, не могу только сообразить, как ему хост-специфичные переменные передать.
Full
Вот так, похоже, работает: ansible all -i 'host,' -c local -m template -a 'src=/tmp/template.cfg.j2 dest=/tmp/template.cfg' -e @/tmp/vars.yml
Sergey
👍
Full
:)
Отделение Bereke Bank
Full
Подтверждаю, кстати, работает.
Alex
а в списке порядок всегда сохраняется?
Full
Не одно, так другое. cdrom не извлекается из vm. Есть PR: https://github.com/ansible/ansible/pull/48284 Я так понимаю, оно никуда не принято? В глазах рябит от лейблов. P.S. Воркэраунд есть на vmware: https://kb.vmware.com/s/article/2144053 Реализуемо, но неприятно.
Full
Дело в том, что я хочу это сам решать - извлекать его, или нет. В конкретном случае, это инсталляционный диск, без репо. После ребута он никому не нужен. На кой гостевая ось его лочит - не понято. Дорог он ей, видимо. force: true ничего не меняет. В вицентре всплывает вопрос - а вы точно хотите диск насильно отобрать? Видимо, придется через vmware_vm_shell таки размонтировать.
Roman
Всем привет! Посоветуйте как правильно реализовать в ансибле генерацию списка из словаря. Мне нужно в итоге получить только список путей и отсортировать его в будущем. Могу напитонить отдельный скрипт, но хотелось бы средствами ансибла. питон версии 2.7
Igor
подскажите, а как называется переменная которой я временно могу задать путь до ролей? вместо указания roles_path
Roman
Какой список и из какого словаря?
из возвращяемого словаря из модуля find получить список путей
inqfen
можно через ansible.cfg, переменную окружения
Dmytro
а в курсе кто - name: Make sure a service is running systemd: state: started name: httpd - name: Make sure a service is running shell: systemctl start httpd и - name: Make sure a service is running service: state: started name: httpd - name: Make sure a service is running shell: service httpd start это все равнозначные таски/команды?
Мне нравится через systemd. Ток я делаю так: - name: "Start some_service" systemd: name: "some_service" state: started register: some_service until: some_service.status.ActiveState == "active" retries: 5 delay: 3 Until будет гарантировать что сервис запущен до конца. Я заметил что просто start может как бы стартонуть сервис, а тот упадет через 1-2 сек, не круто. А ansible уже поехал дальше по pipeline. Плюс если это restart я разделяю на stop&start с вот таким until, и stop вызывает notify start и ложу их в handlers.
Grek 🇺🇦
ну вот стартанули вы сервис 5 раз, а он упал 6 - и? если сервис падает - надо разбираться почему, а не теребить его
Dmytro
Systemd start service как и stop не дожидается фактического старта/стопа
Grek 🇺🇦
ничего не понял - вы запустили сервис, зарегистрировали его статус - он актив, все - ансибл ничего не проверяет дальше. а сервис упал через секунду
Dmytro
В моем кейсе без until и чека он вообще не чекал актив он или нет
Dmytro
А без delay retry он зарегает сервис мгновенно раз и получит inactive
Grek 🇺🇦
выглядит так что у вас не работает модуль
Dmytro
Таймеры разные в зависимости от сервиса.
Dmytro
Я гуглил на гитхабе у людей было такое же поведение
Dmytro
Сам systemd себя так ведет
Dmytro
Тут не в ансибл модуле дело
Grek 🇺🇦
а, ну может быть...
Dmytro
К примеру powershell start-service ждет до конца старта и падает если че не так
Dmytro
А systemd команду послал
Dmytro
А что дальше ему плевать
Dmytro
А мне как бы нужны гарантии, как и многим ;)
Lamobot
А мне как бы нужны гарантии, как и многим ;)
А если сервис через 5 секунд упадёт?
Dmytro
А если сервис через 5 секунд упадёт?
Это уже вписание щей девам а не мне)
Dmytro
Lamobot
Это к тому, что эта лишняя проверка не даёт гарантий :)
Dmytro
"я зделаЛ все что мог"
Oleg Y.
мониторить сервис в рантайме - это не ансибловая задача. Если он стартанул и прошел health check - значит все ок, можно двигаться дальше
Dmytro
Это к тому, что эта лишняя проверка не даёт гарантий :)
В мом кейсе ее отсутствие приводит к трешу
Dmytro
Для меня она не бесполезная
Dmytro
Для рантайма есть prom + node_exporter + alertmanager + grafana
Dmytro
Ansible ток на деплое
Oleg Y.
а какие показатели живости сервиса для деплоя? systemd active/running?
Dmytro
Active
Oleg Y.
а что за сервис? Бэкенд?
Dmytro
+
Dmytro
Dotnetcore
Oleg Y.
а почему вы не хотите проверять его работоспособность через uri модуль ?)
Oleg Y.
я могу привести десяток кейсов, когда systemd active, а сервис лежит
Dmytro
Ибо не все сервисы веб, как минимум есть воркеры
Dmytro
Без веба вообще
Dmytro
Не aspnet