Size: a a a

2021 February 02

AB

Alexander Balandin in Ansible
Добрый день!
Подскажите может есть пример как правильно собрать докер имадж с прокатыванием роли. То есть создаем имандж, контейнер, прокатываем роль, делаем комит в имадж.
источник

A

Anton in Ansible
Константин Самилко
Я убрал валидацию  nginx -t, так как nginx -s reload  и так её делает. А если валидация не прошла, то не делает ничего. И сыпет ошибку на  handler.
Просто исправляю ошибку в конфиге и запускаю заново
я делаю релоад через модуль service, а не через command, к тому же не нужно же каждый раз релоадить, если конфиг не изменился
источник

A

Anton in Ansible
ад какой-то. задача простая, но костыли одни
источник

КС

Константин Самилко... in Ansible
Anton
я делаю релоад через модуль service, а не через command, к тому же не нужно же каждый раз релоадить, если конфиг не изменился
если конфиг не изменился - не релоадиться у меня.
источник

A

Anton in Ansible
Константин Самилко
если конфиг не изменился - не релоадиться у меня.
если релоад в хендлере? логично. а если изменился и что-то пошло не так и прогоняю второй раз плейбук, то также не зарелоадит, потому что не видит изменений
источник

КС

Константин Самилко... in Ansible
Anton
ад какой-то. задача простая, но костыли одни
- name: add configs to nginx
     copy: src={{ item }} dest=/etc/nginx/conf.d/ owner=root mode=644
     with_fileglob:
       - /etc/ansible/files/host/nginx/vhosts/*.conf
     notify:
       - reload nginx
источник

КС

Константин Самилко... in Ansible
Вот так описал я
источник

КС

Константин Самилко... in Ansible
Соответственно он идемпотентен
источник

КС

Константин Самилко... in Ansible
Если ничего не изменилось, хендлер не трогается
источник

A

Anton in Ansible
сейчас на пастебин залью, все сложнее
источник

КС

Константин Самилко... in Ansible
$p33d_$n@i1
Здравствуйте!
Прошу подсказать, как будет корректнее, ну или как у вас опыт построен на похожем.
Нужно обновлять/настраивать межсетевой экран на блок всего, кроме разрешённого.
Вижу два пути:
1) создавать группы (http, https, ssh, http(8080) и т.п.), писать плейбук под группы и потом узлы помещать в эти группы;
2) или у каждого узла объявлять переменную с списком портов, а в плейбуке использовать эту переменную как параметр для настройки межсетевого экрана.
Может есть ещё варианты?
Чтобы управлять сетевым экраном на основе  iptables  использовал ferm
источник

$

$p33d_$n@i1 in Ansible
Anton
подскажите плиз, почему из простой задачи (пул конфиг нжинкс)—>(если конфиги изменились, то валидация через nginx -t)—>(если валидация пройдена, то релоад nginx)—>(проверка доступности nginx)—>(переход к следующему хосту) выходит свистопляска с хендлерами? что вызывать в хендлерах? как добиться идемпотентости, если, например, что-то пойдет не так после пула конфига и не зарелоадится нжинкс, то второй запуск не зарелоадит, если релоад в хендлерах. как вы решаете эту задачу?
Могу ошибаться, но nginx -t вы должны сделать сами после правки конфига на тестовом узле, а никак не отправлять не проверенный конфиг на боевые сервера
источник

$

$p33d_$n@i1 in Ansible
$p33d_$n@i1
Могу ошибаться, но nginx -t вы должны сделать сами после правки конфига на тестовом узле, а никак не отправлять не проверенный конфиг на боевые сервера
А в плейбуке, если файл изменился, то делать reload, без лишних проверок
источник

A

Anton in Ansible
источник

A

Anton in Ansible
я не файлами оперирую. точнее файлами, но не через темплейты, а через гит
источник

КС

Константин Самилко... in Ansible
Anton
я не файлами оперирую. точнее файлами, но не через темплейты, а через гит
Ну вы делаете pull, оберните результат в  debug  кажется и получите вывод
А потом conditional  через  when  и делать  notify  если изменения прилетели.
Кажется, ничего в терминах не напутал
источник

A

Anton in Ansible
допустим, изменения прилетели и выполнился нотифай, который закончился ошибкой. что даст повторный запуск плейбука? нотифай не сработает, изменений же нет
источник

КС

Константин Самилко... in Ansible
Anton
допустим, изменения прилетели и выполнился нотифай, который закончился ошибкой. что даст повторный запуск плейбука? нотифай не сработает, изменений же нет
Так, если у вас была ошибка, значи вы её потом поправите в конфигах ? Это же и будут изменения
источник

L

Lamobot in Ansible
Anton
допустим, изменения прилетели и выполнился нотифай, который закончился ошибкой. что даст повторный запуск плейбука? нотифай не сработает, изменений же нет
Нотифай не сработает из-за ошибки конфига. Зачем запускать ещё раз не исправив конфиг?
источник

A

Anton in Ansible
логично
источник