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. Эту директорию необходимо бэкапить отдельно.
Восстановление
- Установите чистый GitLab той же версии, что и в архиве.
- Убедитесь, что GitLab работает.
- Восстановите файл
/etc/gitlab/gitlab-secrets.json. - Скопируйте файл бэкапа в
/var/opt/gitlab/backupsи назначьте владельца:
chown git:git /var/opt/gitlab/backups/1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar
- Остановите зависимые сервисы и запустите восстановление:
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
- Перезапустите и проверьте:
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 |