2 мин.

Обновление GitLab на DigitalOcean

Давно мой GitLab не подвергался обновлению, и вот я сподобился. До этого я воде бы обновлял его, но не факт, давно это было. Тем более и ОСь у меня устарела морально. Но всё оказалось очень даже просто. Кстати, GitLab у был поднят давно в один клик на DigitalOcean.

В моём случае обновление может быть разделено на два независимых этапа, но так или иначе перед обновлением всегда нужно сделать точку для отката, а на DO сделать это очень просто.

0. Бэкап

Заходим в аккаунт DO, делаем снапшот для сервера с GitLab и только после этого можно приступать к обновлению. В случае неуспешного обновления этот снапшот нужно накатить обратно на этот же сервер.

Соответственно, лучше всё это делать в нерабочее время, когда GitLab никому не нужен или заранее предупредить, чтобы его никто не трогал до момента окончания обновления. Ну или как-то так.

1. Обновление ОС

В том случае, если с даты последнего обновления ОС прошло много времени и уже даже вышла новая LTS-версия текущей ОС (мой случай), то желательно обновится.

GitLab бегал на Ubuntu 14.04, и надо обновить до 16.04. Определённые рекомендации можно подчерпнуть из статьи на DO, вкратце, достаточно выполнить только следующие команды:

$ apt-get update
$ apt-get upgrade
$ apt-get dist-upgrade
$ do-release-upgrade

Ни в коем случае не используйте флаг -d для команды do-release-upgrade т.к. это загрузит нестабильную девелоперскую версию.

На самом деле, если GitLab установлен с помощью Omnibus, то в процессе этого обновления будет зацеплен и обновлён ещё и GitLab, так что следующий шаг частично будет выполнен. И насколько я понял во время do-release-upgrade происходит и apt-get upgrade, но иногда первое без второго в самом начале не запустить т.к. пакеты могут сильно устареть.

И на всякий случай, я нашёл ветку на форуме GitLab, где как раз про это обсуждение.

2. Обновление GitLab

Основные инструкции по обновлению GitLab находятся тут. Там можно увидеть как от какой-либо предыдущей версии перейти к следующей по очереди. Т.к. мой GitLab установлен с помощью Omnibus, то его обновление относительно простое и описано тут.

В самом простом случае нужно сделать следующее:

$ apt-get update
$ apt-get install gitlab-ce

После этого GitLab будет обновлен, переконфигурирован и перезапущен. Можно сразу зайти в GUI и проверить, что пришло новенького.

Если перед этим обновлялась ОС, то стоит исполнить следующие команды:

$ gitlab-ctl reconfigure
$ gitlab-ctl restart

После этого через некоторое время заработает GitLab т.к. он запускается долго, то первое время может отдаваться 502 ошибка.