Gitlab + Ansible Развернуть / администрировать несколько кластеров - PullRequest
0 голосов
/ 29 октября 2018

Я хотел бы получить несколько советов о том, как организовать свою работу в Git / Ansible.

Допустим, у меня есть проект Gitlab с Ansible ролями / сборниками игр внутри. Я использую задания gitlab-ci с ansible для развертывания моего кластера (Elastic, Kubernetes и т. Д.).

Как бы вы организовали свой проект, когда у вас есть десятки кластеров?

В папке на кластер, стиль Ansible? Но в этом случае одна модификация будет применяться ко всем кластерам, и вы не хотите обновлять / исправлять сразу все кластеры.

Одна ветвь на кластер? И ребазать с мастера на каждую ветку, когда хочешь обновить?

Или один проект на кластер, разветвленный от основного проекта?

Еще один вопрос: Как бы вы аутентифицировали своего бегуна для работы с Ansible? Поместить ключ ssh в секретную переменную в Gitlab, и установить его в Docker Runner? Но любой, кто имеет доступ к проекту через dev, может напечатать переменную в задании и получить ключ ssh.

Спасибо.

1 Ответ

0 голосов
/ 30 октября 2018
  • Отдельный репозиторий для каждого проекта (k8s, эластичный, ...) для кластера
  • Отдельная ветка для каждой среды, тест, продукт
  • Использовать защищенные секретные переменные в защищенных банках
  • Защита всех веток, чтобы никто не мог нажать напрямую, и вместо этого создать запрос на слияние
  • Принимайте изменения от разработчиков как запрос на слияние, чтобы вы просматривали изменения, что они делают перед слиянием, чтобы вы никому не позволяли изменять файлы ci для вывода секретов
  • Вы также можете использовать функцию блокировки файлов в версии EE, но подход с защищенными ветвями лучше
  • Вместо этого вы можете получить секреты из хранилища hashicorp на бегуне
...