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

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

Gitalb представляет собой web приложение, состоящее из нескольких компонентов:

  • Ruby
  • Go
  • Nodejs
  • База данных (PostgreSQL или MySQL)
  • Redis
  • Nginx

Конфиг: /etc/gitlab/gitlab.rb

Создание резервной копии

Бекапы хранятся по адресу /var/opt/gitlab/backups

Можно назначить в крон:

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

В конфиге можно указать время жизни копий: gitlab_rails['backup_keep_time'] = 604800

sudo gitlab-rake gitlab:backup:create STRATEGY=copy

Таким образом созданные бэкапы не включают в себя сам файл конфигурации gitlab и ключей ssh, которые хранятся в /etc/gitlab. Эту директорию нужно бэкапить отдельно!

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

Для восстановления из бэкапа, необходимо установить чистую gitlab той же версии, что есть в архивной копии. Убедиться в том, что она работает. Затем восстановить вручную файл /etc/gitlab/gitlab-secrets.json. Далее копируем файл с бэкапом в директорию /var/opt/gitlab/backups и назначаем пользователя git владельцем файла. Дальше выполняем команды:

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

После этого нужно восстановить конфиг /etc/gitlab/gitlab.rb. Перезапустить gitlab и выполнитт проверку.

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 apt-get remove gitlab-ce

# обновление конфигурации (чтобы новая вступила в силу)
sudo gitlab-ctl reconfigure

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

# текущее состояние и время безотказной работы каждого компонента
gitlab-ctl status

Раннеры

sudo gitlab-runner stop
sudo gitlab-runner list
sudo gitlab-runner verify --delete -t glrt-sETNgquzJ24x6b8vUY7r -u [https://gitlab.2dapp.ru](https://gitlab.2dapp.ru/)
sudo gitlab-runner run

Ошибки

  • ошибка initial-branch: не работает с старой версией гита. нужна > 2.28 - (git --version)
  • ошибка could not resolve host: не настроен DNS и нужно стучаться по IP
  • ошибка server certificate verification failed: не настроен сертификат Letsencrypt при установке