Aleksey
Может динамически формируете?
Aleksey
надо динамически, делаем динамически, если окружение в гугле то gcp_compute
Aleksey
если 5 серверов то в репе
Aleksey
если в авс то в авс
Aleksey
А если часть серверов в гугле, часть серверов в авс, а часть вообще dedicated на каком-нибудь хостинге без апи?
Aleksey
то часть инвентори будет там, часть там, а часть вообще в текстовом редакторе и всё это будет в репе с описанием методик подключения
Aleksey
нет общего решения. каждое индивидуально под проект
Aleksey
ок, спасибо!
Aleksey
если запускать плейбуки будете из ci то оный должен знать как подключиться к каждому серверу
Aleksey
а если с локалхоста то пофиг.
Aleksey
из ci
Aleksey
ну у вас же скорее всего все три локации это разные окружения
Aleksey
если inventory будет статичный, как-то не хочется его помещать в основной репозиторий
Aleksey
так запускайте их в трех разных джобах и деплойте отдельно
Aleksey
Aleksey
ну это же настройки
Aleksey
можно так сказать
Aleksey
настройки окружения, они же разные бывают, prod, stage, dev...
Aleksey
чего им делать в репозитории?
Aleksey
ну например версионироваться..
Vlad
Aleksey
Aleksey
Aleksey
это да
а куда бы вы хотели положить ? в какую то вебморду ?
Aleksey
дак положите роли в одну репу. по одной репе на каждую роль.
плейбуки в вторую репу.
инвентори в вторую репу
Aleksey
и код у вас будет отдельно а конфигурация отдельно
Aleksey
и морду можно взять
Aleksey
хитрую рыжую
Aleksey
под названием gitlab
Aleksey
роли храните как код и тестируйте как код
Aleksey
молекулой
Aleksey
а плейбуки и инвеонтори тестируйте как конфиги.
Aleksey
тоесть на стейдж окружениях
Aleksey
Я вижу смысл выделять в отдельный репозиторий полезные роли, которые могут быть повторно использованы. В рамках другого проекта.
Aleksey
никогда не угадаете какие будут полезны
Aleksey
но я не geerlingguy, я пока так не умею
Aleksey
смотрите это просто.
mkdir ansible-role-herya
cd ansible-role-herya
git init .
git commit -a -m "Initial"
git push origin master
Aleksey
или сразу лучше
molecule init role ansible-role-hernya
Aleksey
и погнали
Aleksey
Я мало использую свои роли, в основном пишу таски прям в плейбуке, мне так удобнее.
Aleksey
аа.
Aleksey
Неправильно выразился, свои роли я использую, но только когда они не проектоориентированные
Aleksey
забудте всё что я вам выше говорил.
Aleksey
когда я могу их вынести отдельно и использовать повторно
Aleksey
я слышал яндекс постоянно набирает водителей
Aleksey
🙂 смешно
Aleksey
хорошо приведите пример роли ansible-role-*
Aleksey
кроме hernya
Aleksey
ansible-role-fix-chrony.
Aleksey
роль из одного таска.
Aleksey
потом тасков стало 3
Aleksey
fix-chrony это что?
Aleksey
ansible-role-common-sre
Aleksey
ansible-role-victoria-metrics
Aleksey
ansible-role-init-disk
Aleksey
остановимся на одной
Aleksey
добавляет оному авторестарт и делает его сервером для 127.0.0.1
Aleksey
один вызов blockinfile, один на создание диры, один на copy c контент
Aleksey
я с этим не согласен. Роль - это не задача. То что вы назвали это задача
Aleksey
хорошо. не задача так не задача
Aleksey
однако её легко прицепить к проекту. к любому
Aleksey
ansible-role-nginx
Aleksey
легко протестровать
Aleksey
вот это например роль
Aleksey
а это не роль а какой то адок.
Aleksey
ничего не мешает для создания роли webserver использовать 2 десятка ролей более мелких
Aleksey
вот вообще
Aleksey
просто будет play у которого будет
hosts: webservers
roles:
-
-
-
Андрей
а еще можно роли с vars
Андрей
hosts: webservers
roles:
- {role_1: var }
-
-
Aleksey
Aleksey
Aleksey
Андрей
Aleksey
если нужно поставить nginx, можно заюзать соответствующую роль, они уже есть
Aleksey
вообще многословность это не то что бы болезнь
Aleksey