сервер ансибла и сервер гитлаба это две разные ноды, не связанные никак друг с другом. Ансибл сейчас не задействован в процессе CI/CD, и используется в основном для конфигурации инфраструктуры. Сейчас плейбуки ансибла лежат на самом ансибле-мастере и выполняются оттуда вручную. Возникла необходимость часть плейбуков закинуть в гитлаб в отдельный репозиторий, чтобы разработчики могли сами какими-то определёнными действиями в гитлабе (коммит в ветку с плейбуком или ещё как) запускать некоторые плейбуки ансибла. Как я понял из статей и документаций, вариантов несколько может быть. Основные вижу такие пока:
1) На мастер-ноде ансибла настроить Gitlab-Runner (shell), и прописать его на ветки с плейбуками, ну и указывать в Gitlab-ci выполнение плейбуков через него;
2) Сделать отдельный Gitlab-Runner (shell), с которого будет доступ на мастер-ноду ансибла, и указывать в Gitlab-ci выполнение плейбуков через этот отдельный раннер;
3) В Gitlab-ci в ямл-файле напрямую прописывать выполнение плейбуков удалённо по ssh на мастер-ноде ансибла (но потребуется прямой доступ по ssh с гитлаб-сервера на мастер-ноду ансибла);
4) На сервере гитлаба развернуть ещё один ансибл-мастер, чтобы плейбуки там и выполнялись локальным ансиблом;
5) Использовать что-то типа AWX и т.п.
Как будет лучше и безопаснее сделать?
а что такое "сервер ансибла" в вашем контексте, если AWX у вас нет?
Обсуждают сегодня