LINUX.ORG.RU
ФорумAdmin

Организация папок для переиспользования плэйбуков в Ansible

 ,


0

2

Всем привет!

У меня есть несколько ролей в ансибл, описывающих установку 2 приложений, на каждое приложение по папке, например:

app1/roles/common/main.yml
app2/roles/common/main.yml

Но приложения имеют между собой похожие задания которые описывают в main.yml Типа как установка ntp, мониторинга и т.д.

Хотелось бы иметь одно место, для таких одинаковых тасков, а не плодить их от роли к роли. Как мне это видится, это отдельная папка с такими повторяющимися задачами:

playbooks/common_tasks.yml

И оттуда таски импортировать в нужные роли.

app1/roles/common/main.yml
app2/roles/common/main.yml

Но может кто-то ещё что подскажет?

P.S. Импортировать роль из папок с уровня app1 не подходит, потому что импорт роли смотрит только в папку app1/roles. Или в стандартную которая задана в конфигурации ansible: «/etc/ansible/roles». Но это в принципе подойдёт... Но всё же хочу услышать кто как делает. Наверняка каждый сталкивался с тем что от роли к роли задания есть повторяющиеся.

А сам ansible в своём репозитории дублирует например установку ntp от проекта к проекту например:

Установка ntp в проекте «lamp_simple»: https://github.com/ansible/ansible-examples/blob/master/lamp_simple/roles/com...

Опять установка ntp в другом проекте «lamp_haproxy»: https://github.com/ansible/ansible-examples/blob/master/lamp_haproxy/roles/co...

Надо такие действия выносить в отдельную атомарную роль

anonymous ()

Анон дело говорит, создай отдельную роль prerequisites и запихай все необходимое туда. По нужде (которую можно понять собирая facts) дергай перед накатом.

phoen ★★ ()

Лишь бы NixOS не юзать.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.