Обновление происходит только в рамках текущей мажорной версии, то есть устанавливаются только минорные версии. Мажорная версия автоматически НЕ СТАВИТСЯ.
GITLAB_URL- адрес сервера GitLabGITLAB_API_TOKEN- токен для доступа к API. Достаточно выставить scoperead_apiGITLAB_BACKUP_DIR- указывается каталог, в котором хранятся бэкапы на ВМ с самим GitLab'омRATE_SIZE- указывается множитель запаса свободного места на диске от размера последнего бэкапа. Например, если последний бэкап весит 25GB, то при значение2свободно должно быть 50GBGITLAB_PROBES_TOKEN- токен для проверкиprobes. Берётся по путиAdmin -> Moitoring -> Healt CheckSLACK_AUTH_TOKEN- указываем auth tokenSLACK_CHANNEL_ID- указываем ID каналаPROJECT_NAME- имя проекта, в котором находится GitLabTIME_UPDATE_CHECK- время проверки наличия обновления (по времени сервера, где установлен GitLab. Обычно это UTC) в формате crontab.TIME_UPDATE_INSTALL- время установки обновления (по времени сервера, где установлен GitLab. Обычно это UTC) в формате crontab.
- Добавляем бота (Gitlab Update Bot) в клиентский канал.
- В GitLab создаём технического пользователя (можно использовать текущего, если такой уже есть).
- Создаём ему токен со scope
read_api. - Копируем
gitlab-updaterна cервер GitLab в каталог/opt/gitlab-updater. - Копируем
check-timeна cервер GitLab (любой каталог) и выполняем. Вы увидите в каком виде/формате нужно заполнить переменныеTIME_UPDATE_CHECKиTIME_UPDATE_INSTALL. - Создаём файл .env в
/opt/gitlab-updaterи заполняем его по примеру. ВНИМАНИЕ!!! Это только пример. Подставляйте свои значения. Расшифровка переменных выше.
GITLAB_URL=URL
GITLAB_API_TOKEN=XXX88hk89798YXY-sfds
GITLAB_BACKUP_DIR=/var/opt/gitlab/backups
RATE_SIZE=2
GITLAB_PROBES_TOKEN=z_gt678TFvgtg34afa
SLACK_AUTH_TOKEN=xoxb-....PzBG
SLACK_CHANNEL_ID=C...31
PROJECT_NAME=my_project
TIME_UPDATE_CHECK="0 9 * * *"
TIME_UPDATE_INSTALL="0 3 * * *"- Создаём systemd unit
/etc/systemd/system/gitlab-update.serviceс содержимым:
[Unit]
Description=Gitlab Updater
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/gitlab-updater
ExecStart=/opt/gitlab-updater/gitlab-updater
SyslogIdentifier=gitlab-updater
Restart=always
[Install]
WantedBy=multi-user.target- Включаем автозагрузку и запускаем утилиту:
systemctl enable gitlab-update.service
systemctl start gitlab-update.service- Посмотреть логи можно так
journalctl -xe -u gitlab-update