Size: a a a

DevOps — русскоговорящее сообщество

2021 March 11

AT

Alexandr Tumanov in DevOps — русскоговорящее сообщество
У нас команда совсем недавно решила заняться вопросами CI/CD. Раньше мы всё вручную устанавливали. Я вначале попробовал использовать Ansible и с помощью него развернул на новом чистом сервере с нуля сайт с WordPress. Но дальше встал вопрос как автоматизировать запуск самого Ansible. Сейчас изучаю GitLab CI. Он вроде как запускает команды на сервере с GitLab Runner. Вопрос. Можно ли обойтись одним GitLab CI без Ansible или так не делают?
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Я имел ввиду, где нажмется кнопка
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Конечно, awx тоже можно гитлаб-раннером запустить через апи
источник

MS

Michael Silich in DevOps — русскоговорящее сообщество
Alexandr Tumanov
У нас команда совсем недавно решила заняться вопросами CI/CD. Раньше мы всё вручную устанавливали. Я вначале попробовал использовать Ansible и с помощью него развернул на новом чистом сервере с нуля сайт с WordPress. Но дальше встал вопрос как автоматизировать запуск самого Ansible. Сейчас изучаю GitLab CI. Он вроде как запускает команды на сервере с GitLab Runner. Вопрос. Можно ли обойтись одним GitLab CI без Ansible или так не делают?
Руками не советую все делать. Если есть возможность то пишите все в ansible и тестируйте через molecule с testinfra. Все сервисы, серверы итд. Только через ansible ну или другой gitops в кубере (ArgoCD)
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Боль при запуске из awx - когда определенные фичи в разных ветках и тестируются на разных окружениях. Соответственно, если меняется конфиг приложения или логика деплоя, это тоже должно быть в той же ветке. А если теряется обратная совместимость, то ещё веселее
источник

AT

Alexandr Tumanov in DevOps — русскоговорящее сообщество
Где обычно размещают сценарии Ansible? В самом проекте или отдельном хранилище?
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Я за ту же репу где код приложения
источник

MS

Michael Silich in DevOps — русскоговорящее сообщество
Alexandr Tumanov
Где обычно размещают сценарии Ansible? В самом проекте или отдельном хранилище?
Роли обычно держать отдельно от плейбуков.
источник

AT

Alexandr Tumanov in DevOps — русскоговорящее сообщество
Про роли я смотрел. Вроде как правильно для каждой роли создавать отдельное хранилище, а потом подключать их в сценарий через Galaxy.
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Michael Silich
Роли обычно держать отдельно от плейбуков.
Верно, будет полезно при кучке однотипных проектов
источник

MS

Michael Silich in DevOps — русскоговорящее сообщество
Alexandr Tumanov
Про роли я смотрел. Вроде как правильно для каждой роли создавать отдельное хранилище, а потом подключать их в сценарий через Galaxy.
роли в плейбук подключаються через role/requirements.yml файл. И там всерогно кто их качать, что galaxy хоть ansible из шары
источник

AT

Alexandr Tumanov in DevOps — русскоговорящее сообщество
Michael Silich
роли в плейбук подключаються через role/requirements.yml файл. И там всерогно кто их качать, что galaxy хоть ansible из шары
GitLab Runner запускается под своим пользователем. Домашней директории у него нет. Ключи создавать негде. Как ему давать доступ к хранилищам с ролями на GitLab?
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Alexandr Tumanov
GitLab Runner запускается под своим пользователем. Домашней директории у него нет. Ключи создавать негде. Как ему давать доступ к хранилищам с ролями на GitLab?
Куда делась домашняя директория?
источник

MS

Michael Silich in DevOps — русскоговорящее сообщество
Хотя через gitlab-runner тоже удобно если у низ настроен кэщ через s3 например.
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Всегда была
источник

MS

Michael Silich in DevOps — русскоговорящее сообщество
Alexandr Tumanov
GitLab Runner запускается под своим пользователем. Домашней директории у него нет. Ключи создавать негде. Как ему давать доступ к хранилищам с ролями на GitLab?
gitlab-runner имеет несколько executors. SSH, shell, Docker,Kubernetes etc. и делаеться черещ ephermal containers либо через temporary direcotry
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Ключ хорошо бы тоже через плейбук раскидывать из hashi-vault или ansible-vault, к примеру
источник

AT

Alexandr Tumanov in DevOps — русскоговорящее сообщество
Aleksey Kosyrev
Всегда была
Действительно есть. Я просто подумал, что он её не создаёт при установке, так как в документации приводится такая команда:
export GITLAB_RUNNER_DISABLE_SKEL=true; sudo -E apt-get install gitlab-runner
Я увидел GITLAB_RUNNER_DISABLE_SKEL и подумал, что стандартная домашняя директория для него не создаётся. А сейчас вспомнил, что в скелете хранятся только дефолтные настройки bash и профиля. Вот их как раз GitLab Runner и не копирует.
источник

AT

Alexandr Tumanov in DevOps — русскоговорящее сообщество
Получается, что надо ему ключи создать и в свою учётку запихнуть или для Runner-а своя учётка в GitLab должна создаваться?
источник

AK

Aleksey Kosyrev in DevOps — русскоговорящее сообщество
Отдельный юзер
источник