Перенос GitLab на другой сервер и обновление GitLab

Thank you for reading this post, don't forget to subscribe!

Оригинал статьи:

Пере­нос GitLab на дру­гой сер­вер и обнов­ле­ние GitLab

Име­ет­ся GitLab вер­сии 7.4.1, уста­нов­лен­ную из исход­ни­ков. Необ­хо­ди­мо обно­вить его до акту­аль­ной вер­сии с пере­но­сом всех данных.

План дей­ствия следующий:

  • Уста­но­вить на новый сер­вер GitLab той же вер­сии, что сто­ит на ста­ром сервере
  • На ста­ром сер­ве­ре сде­лать бэкап дан­ных сред­ства­ми GitLab
  • Раз­вер­нуть бэкап на новом сервере
  • Обно­вить GitLab до акту­аль­ной версии

Установить на новый сервер GitLab той же версии, что стоит на старом сервере

Добав­ля­ем репо­зи­то­рий EPEL и обновляемся

Ста­вим софт

Отклю­ча­ем SeLinux

На новом сер­ве­ре ста­вим gitlab той же вер­сии, что и на ста­ром сервере

Архи­вы ста­рых вер­сий: https://about.gitlab.com/downloads/archives/

Ска­чи­ва­ем дис­три­бу­тив и уста­нав­ли­ва­ем его

  • i — Уста­но­вить пакет
  • v — пока­зать отла­доч­ную информацию
  • h — выво­дить хэш-меток при установке

Добав­ля­ем пра­ви­ла в firewall

Редак­ти­ру­ем файл gitlab.rb для после­ду­ю­щей гене­ра­ции кон­фи­га gitlab

При­мер фай­ла gitlab.rb, в кото­ром под­клю­че­на LDAP-авто­ри­за­ция и настро­е­но под­клю­че­ние к поч­то­во­му серверу

[codesyntax lang="php"]

[/codesyntax]

Гене­ри­ру­ем конфиг

Запус­ка­ем gitlab

Откры­ва­ем браузер:

Авто­ри­зу­ем­ся, меня­ем пароль

На старом сервере сделать бэкап данных средствами GitLab

У меня не делал­ся бэкап, т.к. скрип­ту не нра­ви­лась вер­сия psql, дела­ем линк на вер­сию посве­жее, кото­рая была уже уста­нов­ле­на на сервере

Дела­ем бэкап

  • Фай­лы бэка­па на ста­ром сер­ве­ре: /home/git/gitlab/tmp/backups

Пере­но­сим файл бэка­па со ста­ро­го сер­ве­ра на новый

  • Фай­лы бэка­па на новом сер­ве­ре: /var/opt/gitlab/backups

Развернуть бэкап на новом сервере

Оста­нав­ли­ва­ем службы

Раз­вер­ты­ва­ние резерв­ной копии на новом сервере

или

Запус­ка­ем службы

В про­цес­се раз­вер­ты­ва­ния про­изо­шла ошиб­ка. Из бэка­па не раз­вер­ну­лись пустые про­ек­ты, по-это­му вна­ча­ле их надо уда­лить, потом делать бэкап.

Так же мож­но пере­не­сти вруч­ную все то, что не пере­нес­лось после:

Меня­ем вла­дель­ца директории

Пробуем сделать бэкап на новом сервере и развернуть его

Дела­ем бэкап

Оста­нав­ли­ва­ем службы

Раз­во­ра­чи­ва­ем бэкап

Запус­ка­ем службы

Обновить GitLab до актуальной версии

Т.к. у нас вер­сия доволь­но ста­рая, обнов­лять­ся будем по сле­ду­ю­щей цепочке:
7.4.1 -> 7.14.x -> 8.0.x -> 8.17.x -> 9.0 -> 9.5 -> 10.0 -> 10.7 -> 10.8.3

Ска­чи­ва­ем дис­три­бу­тив вер­сии 7.14.2

Обнов­ля­ем

  • U — обно­вить пакет
  • v — пока­зать отла­доч­ную информацию
  • h — выво­дить хэш-меток при установке

Пере­за­пус­ка­ем

И так далее

Открываем доступ к GitLab снаружи

Т.к. у нас огра­ни­чен­ное коли­че­ство внеш­них IP-адре­сов, и т.к. наш GitLab кру­тит­ся на отдель­ном вир­ту­аль­ном сер­ве­ре, настра­и­ва­ем про­брос пор­тов, что бы у нас был доступ к GitLab снаружи

На сер­ве­ре, где про­пи­сан внеш­ний IP, надо пере­на­стро­ить ssh, iptables, apache

Настра­и­ва­ем ssh

теперь доступ к это­му сер­ве­ру по ssh толь­ко внут­ри сети

Настра­и­ва­ем Настра­и­ва­ем iptables, про­бра­сы­ва­ем порт 22

Еще надо заком­мен­ти­ро­вать одно пра­ви­ло, ина­че про­брос не сработает

Настра­и­ва­ем apache, про­бра­сы­ва­ем 80 и 443 порт:

[codesyntax lang="php"]

[/codesyntax]

Пере­за­пус­ка­ем apache