134 слов | 1 минута

Обслуживание GitLab

Справочник команд для резервного копирования, восстановления и обновления GitLab.

GitLab — веб-приложение, состоящее из компонентов: Ruby, Go, Node.js, PostgreSQL, Redis, Nginx.

Конфигурационный файл: /etc/gitlab/gitlab.rb

Резервное копирование

Бэкапы хранятся в /var/opt/gitlab/backups.

# Создать бэкап
sudo gitlab-rake gitlab:backup:create STRATEGY=copy

Настройка в cron (ежедневно в 02:00):

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

Срок хранения копий задаётся в /etc/gitlab/gitlab.rb:

gitlab_rails['backup_keep_time'] = 604800  # 7 дней в секундах

Важно: бэкап не включает файл конфигурации и SSH-ключи из /etc/gitlab. Эту директорию необходимо бэкапить отдельно.

Восстановление

  1. Установите чистый GitLab той же версии, что и в архиве.
  2. Убедитесь, что GitLab работает.
  3. Восстановите файл /etc/gitlab/gitlab-secrets.json.
  4. Скопируйте файл бэкапа в /var/opt/gitlab/backups и назначьте владельца:
chown git:git /var/opt/gitlab/backups/1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar
  1. Остановите зависимые сервисы и запустите восстановление:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl status

gitlab-rake gitlab:backup:restore BACKUP=1493107454_2018_04_25_10.6.4-ce
  1. Перезапустите и проверьте:
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true

Обновление

Перед обновлением всегда создавайте резервную копию.

sudo apt update && sudo apt install gitlab-ce

Управление сервисами

sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl restart

# Применить изменения в конфигурации
sudo gitlab-ctl reconfigure

# Проверка работоспособности компонентов
sudo gitlab-rake gitlab:check

# Статус и uptime каждого компонента
gitlab-ctl status

# Удаление GitLab
sudo apt-get remove gitlab-ce

Управление Runner

sudo gitlab-runner stop
sudo gitlab-runner list
sudo gitlab-runner run

Частые ошибки

Ошибка Причина Решение
initial-branch Устаревшая версия Git Обновить Git до версии ≥ 2.28 (git --version)
could not resolve host Не настроен DNS Указать IP-адрес вместо домена
server certificate verification failed Сертификат Let's Encrypt не был получен при установке Перенастроить HTTPS или использовать HTTP