Thank you for reading this post, don't forget to subscribe!
Рассмотрен случай синхронизации из условного основного gitlab сервера на условный дополнительный.
Синхронизация односторонняя и работает только по проекту, синхронизировать группу нельзя.
Настройка дополнительного gitlab
Для начала на дополнительном gitlab, при необходимости отключите ci/cd для всех новых проектов.
Отредактируйте конфигурационный файл
1 2 |
vi /etc/gitlab/gitlab.rb gitlab_rails['gitlab_default_projects_features_builds'] = false |
сохраните изменения
1 |
gitlab-ctl reconfigure |
Для отдельно взятого проекта CI/CD можно разрешить в веб-интерфейсе gitlab.
Далее в веб-интерфейсе дополнительного gitlab, необходимо:
создать группу проектов, для предотвращения путаницы используются те же имена групп и проектов, что и в основном gitlab;
создать все проекты, которые планируется синхронизировать, без их инициализации;
создать пользователя push-user, будет использоваться для синхронизации всех проектов;
назначить роль Maintainer для push-user в созданной группе.
Настройка основного gitlab
Открыть настройки проекта, который должен быть синхронизирован "Settings" - "Repository" - "Mirroring repositories".
Указать Git repository URL, пользователя push-user и пароль
https://push-user@second-gitlab.domain.ru/group/project.git
Password: пароль
А также обязательно ставим галку зеркалировать только защищенные ветки
"Only mirror protected branches"
Сохранить изменения, нажав кнопку "Mirror repository"
В этом же меню отслеживается статус синхронизации.