Из-за политики GITS Indonesia мы должны перенести сервер GitLab на другой сервер. В этом случае мы использовали вычислительный движок Google Cloud Platform для нового сервера.

При переносе GitLab на новый сервер мы можем столкнуться с множеством проблем несовместимых версий; другая операционная система (поэтому нужна другая последняя версия GitLab); и т.д. Есть два способа перенести GitLab. Первый способ - обновить старую версию до той же последней версии GitLab, сделать резервную копию GitLab, и мы можем перейти на новый сервер. Второй способ - установить GitLab на новый сервер с той же версией, что и на старом сервере. Мы выбрали второй путь безопасности.

Итак, вот как это сделать.

Сначала мы создаем новый сервер на GCP с Ubuntu Server 18.04, в то время как старый сервер по-прежнему использует Ubuntu Server 14.04. А версия GitLab, которую мы используем, - 11.4.5.

На старом сервере

На старом сервере выполните следующие действия.

  1. Выключите GitLab service
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
  2. Сделайте резервную копию GitLab на старом сервере
    sudo gitlab-rake gitlab:backup:create
  3. Создайте на сервере папку с именем gitlab-old
    mkdir gitlab-old
  4. Скопируйте конфигурацию файла GitLab в папку / etc / gitlab (gitlab.rb и gitlab-secrets.json) и папку / etc. / gitlab / ssl на ~ / gitlab-old
    sudo cp /etc/gitlab/gitlab.rb ~/gitlab-old
    sudo cp /etc/gitlab/gitlab-secrets.json ~/gitlab-old
    sudo cp -R /etc/gitlab/ssl ~/gitlab-old
  5. Скопируйте файл резервной копии в папку ~ / gitlab-old
    sudo cp /var/opt/gitlab/backups/XXXXXXXXXX_gitlab_backup.tar
  6. Измените разрешение и право собственности на ~ / gitlab-old
    sudo chown user:user -R ~/gitlab-old
  7. Перенести папку gitlab-old на новый сервер
    scp -r ~/gitlab-old user@<new_server_ip>:~

На новом сервере

На новом сервере выполните следующие действия.

  1. Установите новый сервер с GitLab 11.4.5.
    Добавьте исходный код GitLab с помощью:
    curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    Update и установите GitLab 11.4.5 с помощью:
    sudo apt-get install gitlab-ce=11.4.5-ce.0
  2. Скопируйте файл конфигурации в папку / etc / gitlab
    sudo cp gitlab-old/gitlab* /etc/GitLab
  3. Скопируйте папку ssl в папку / etc / gitlab
    sudo cp -R gitlab-old/ssl /etc/GitLab
  4. Первый запуск службы GitLab
    sudo gitlab-ctl reconfigure
  5. Завершите работу службы GitLab
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
  6. Скопируйте файл резервной копии в / var / opt / gitlab / backups, затем измените владельца и разрешения на пользователя git
    sudo cp gitlab-old/XXXXXXXXXX_gitlab_backup.tar /var/opt/gitlab/backups
    sudo chown git:git /var/opt/gitlab/backups/XXXXXXXXXX_gitlab_backup.tar
  7. Запустите процесс восстановления GitLab
    sudo gitlab-rake gitlab:backup:restore BACKUP=XXXXXXXXX
  8. Перезапустите GitLab и проверьте
    sudo gitlab-ctl start
    sudo gitlab-rake gitlab:check SANITIZE=true

Вот и все! Он должен работать хорошо. Если у вас есть дополнительные вопросы, вы можете оставить свой комментарий ниже.

Дидиет А. Памбудионо - облачный исследователь, энтузиаст FOSS и участник, а также инженер DevOps в GITS Indonesia.