Давно мой 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 ошибка.