Sander
поэтому под каждый проект я не делаю плейбук
Igor
Симлинки на плейбуки?)
Sander
я просто пишу переменные в group_vars ``` platform__phpfpm: "wordpress" platform__webserver: "nginx" platform__database: "mariadb" ```
Igor
В разных окружениях?
Igor
Ааа
Sander
если platform__phpfpm: false, то он контейнер не поставит
Sander
я не уверен что я все хорошо делаю
Sander
но вариант, городить под каждый проект свой плейбук все токи не лучшая идея, они одинаковые будут (практически)
Igor
Мне кажется надо использовать hosts_vars и group_vars и роли
Igor
И запускать плейбук с ивентори из нужного окружения
Sander
у меня получается все в group_vars, но наверное там лучше хранить что-то общее
Sander
на host_vars, хранить если что-то индивидуальное будет
Sander
и roles тоже использую
Sander
куда без них
Igor
У меня одни плейбуки и разные переменные в host_vars/group_vars
Sander
посмотреть бы
Pavel
но вариант, городить под каждый проект свой плейбук все токи не лучшая идея, они одинаковые будут (практически)
согласен, лучше , как мне кажется параметризировать это в груп или хост -варс
Sander
я просто долго сидел, и у меня все равно вышло так, что я параметров больше делал и логику небольшую
Pavel
так параметры только те что разные
Pavel
а 100500 ролей, как по мне еще хуже
Sander
у кого-нибудь есть хороший пример ansible, с мультисайтовостью
Sander
🤔
Pavel
у кого-нибудь есть хороший пример ansible, с мультисайтовостью
я пытаюсь делать, но не знаю насколько хорошо получается
Sander
можешь показать
Sander
а я свой покажу
Sander
😊
Pavel
щас меряться начнем ))
Igor
а 100500 ролей, как по мне еще хуже
Почему хуже? Роль отрабатывает только на нужную группу хостов, т.е. специфические задачи для группы
Igor
Как по мне, разбивка задач по ролям офигенна
Pavel
скомбинировал роли в плкейбуке - получил что угодно на сервере
Igor
для меня тоже
Igor
я в main.yml указываю роли
Igor
а по inventories/enviromets/hosts решаю где выполнять и с какими переменными
Igor
пароли ip и прочее
Igor
*inventories/enviroments/{hosts,group_vars/group,hosts_vars/host}
Igor
а для меня роль - это сервис
поэтому почему 100500 ролей хуже
Igor
есть каждая роль - это сервис
Igor
а в /roles/name/tasks/main.yml указывается hosts: группа хостов
Igor
на которой роль выполнять
Igor
из inventory файла
Igor
и все
Igor
при выполнении плейбука каждая роль применяется на нужную группу хостов, каждая группа описана в нужном hosts в нужном iventories со своими переменными
Igor
т.е. делаем ansible-playbook -i inentories/enviroments/hosts main.yml
Igor
Вжух - и у тебя есть готовое окружение ))
Igor
Почему вы против этого не понятно
Igor
против ролей т.е.
Igor
100500
Pavel
Почему вы против этого не понятно
а против чего я - вроде почти так и говорил
Pavel
есть каждая роль - это сервис
а у тебя 100500 сервисов?
Pavel
ну 10, ну 20....
Pavel
у меня еще и 10 нет
Igor
а 100500 ролей, как по мне еще хуже
тогда не понятно почему 100500 ролей зло
Igor
пример из жизни можно
Pavel
например nginx-балансировщик и nginx-прокси можно сделать 2 роли, а можно 1, параметризовав в хост-варс и в зависмости что написано в перемнных накатит нужное
Pavel
я делаю 1 потому что nginx - сервис, а не прокси-сервис и балансировщик-сервис
Igor
ну конечно надо юзать переменные к группе хостов и групп
Igor
не понятно при чём тут роли
Igor
роли используют те переменные, которые есть в группе хостов или в хостах определённого окружения
Igor
не понятна проблематика
Igor
и поясните проблематику
Pavel
ну мне не нравится плодить роли на 90% одинаковые, только копи-пастить.... (те 2 роль nginx)
Igor
при выполнении прейбука укажите нужный файл хостов в нужном окружении
Igor
откуда из окружения подцепятся правильные переменные
Pavel
Igor
тогда не понимаю почему надо плодить 2 роли на nginx
Pavel
так я и говорию, что не надо 100500 ролей
Igor
если все переменные описываются в окружениях и их {host,group}_ars
Igor
ааааа
Sander
😪
Pavel
надо параметризовать их в переменных
Igor
а 100500 ролей, как по мне еще хуже
я неправильно интерпретировал данную фразу
Igor
я интерпретировал как необходимость писать 100500 ролей, но это хуже, чем их не писать
Pavel
👏 разобрались
Igor
👍