Як перенести GitLab з одного сервера на інший

Останні 3 роки ми використовуємо GitLab для зберігання вихідних кодів наших проектів та в якості простої системи трекінга задач і помилок для деяких з них. Особливих проблем з цією системою ніколи не було, та сьогодні знадобилось перенести її на інший хостинг.

Далі, коротка інструкція, в першу чергу - собі для пам'яті:

1. Підготувати свіженьку резервну копію даних на оригінальному сервері

Для цього, перш за все, потрібно оновити оригінальний GitLab до тієї ж версії, що буде встановлено на новому сервері. Якщо у вас, як у мене, GitLab встановлено з офіційного джерела, то для цього достатньо зробити:

sudo apt-get update
sudo apt-get upgrade

Не ігноруйте цей крок, бо будете, як я, копіювати файл резервної копії два рази.
Після оновлення, виконайте наступну команду для створення резервної копії:

sudo gitlab-rake gitlab:backup:create

Майте на увазі, що під час оновлення GitLab також створює резервну копію, але вона нам не підходить, бо не містить файли репозитаріїв з дорогоцінним для нас кодом. Зазвичай резевна копія створюється в директорії /var/opt/gitlab/backups.

2. Проінсталювати свіженький Ubuntu 16.04 Server

Так як на оригінальному сервері використовувалась система Ubuntu, я вирішив не експериментувати і на новому сервері використовувати її ж. Правда, поставити 16.04 замість 14.04 все таки ризикнув. Інсталяційний пакет раджу брати з офіційних джерел: https://www.ubuntu.com/server

3. Проінсталювати необхідні реквізити

Для цього потрібно просто виконати кілька команд:

sudo apt-get update
sudo apt-get install curl openssh-server ca-certificates postfix

4. Проінсталлювати GitLab

Ми ж з вами любимо офіційні джерела так? Тоді все, знову ж таки, дуже просто:
curl -sS \
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh \
| sudo bash
sudo apt-get install gitlab-ce

5. Виконати переконфігурацію GitLab

sudo gitlab-ctl reconfigure
В даний момент вже можна спробувати зайти на сайт та переконатися що GitLab працює. Хоча проектів там поки що немає. Треба виправити! Але ніякого конфігурування GitLab проводити не варто - все зникне після відновлення резервної копії.

6. Завантажуємо резервну копію з старого сервера

Як правило, це можна зробити з допомогою scp. Отаку команду треба виконанти на новому сервері:
scp root@oldserver:/var/opt/gitlab/backups/XXXXXXX_gitlab_backup.tar \
/var/opt/gitlab/backups/

7. Відновити сервер з резервної копії

sudo gitlab-rake gitlab:backup:restore BACKUP=XXXXXXX
Зверніть увагу, що XXXXXXX це відповідна частина імені файлу резервної копії.

8. Перезавантажити GitLab

sudo gitlab-ctl restart
В цей момент Ви маєте побачити свої репозитарії та їх вміст. Це вже добре. Але для того, щоб все запрацювало, мені довелося ще перенести з старого сервера SSL-сертифікати, та налаштувати GitLab на їх використання.

Коментарі

Популярні дописи з цього блогу

Посчитать количество вхождений каждого слова в текстовом файле

Истинное наследование или агрегация