Gitlab - AutoSync / репликация локального сервера с / на облачный сервер

У меня 2 сервера Gitlab:

Сервер А, который работает в облаке и доступен из https://git.example.com

и

Сервер B, который работает в локальной сети и доступен только через локальные компьютеры по IP-адресу или поддельному домену, который перенаправляет локально http: //local.git (подмена DNS)

Как я могу сделать оба сервера git А и B зеркальными / синхронизированными / реплицированными, где:

  • Server B would automatically push any local work/changes to server A

After that (or before)

  • Server B will check server A for any differences in any repo and make sure both are 100% synced - in another meaning, server B would pull the changes from server A because some people might push changes directly to server A from outside this local network.

Я не думаю, что приоритет имеет значение, потому что оба сервера в конце будут на 100% одинаковыми - извините, я не разработчик (или часто использую git), а скорее айтишник.


192
1

Ответ:

Решено

Самым стабильным решением будет зеркалирование ваших серверов на уровне репозитория.

В GitLab есть внутренний механизм для этого (см .: https://gitlab.com/help/workflow/repository_mirroring).

Альтернативой (поскольку у вас не будет доступа к файловой системе на вашем размещенном экземпляре GitLab) будет создание сценария для итеративного «зеркалирования» ваших репозиториев с помощью git push --mirror ...