GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

by Anton Chernousov aka GITA-DEV


Опубликовано: 25 Сен 2018 (последние правки 3 недели, 2 дня)


GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

GitLab, это отличный GIT-репозитарий для использования внутри компании с богатым функционалом и простой установкой, как его устанавливать я уже рассказывал и вы наверное обратили внимание, что этот продукт рекомендуется использовать на отдельном хосте и он поставляется полностью со своей инфраструктурой программ окружения. Как отвязать его от использования встроенного Nginx я вам уже рассказал и сегодня мы будем отвязывать его от встроенного сервера Postgresql.

Если сервер на котором установлен GitLab используется не только как хранилище GIT-репозитариев и у вас уже есть "системный сервер Postgresql". то вы наверняка захотите перенести базу данных GITLAB на системный сервер СУБД. Это упростит мониторинг базы, высвободит часть системных ресурсов и упростит резервное копирование.

Итак, приступим и первым делом надо снять дамп базы данных Postgresl (встроенной в GitLab) и лучше всего использовать встроенные механизмы резервного копирования GitLab:

# gitlab-rake gitlab:backup:create

Созданный архив по умолчанию копируется в каталог /var/opt/gitlab/backups/ и если распаковать этот архив, то вы можете найти в нем файл db/database.sql.gz в котором как вы наверное понимаете находится сжатый дамп базы данных который тоже надо распаковать.

На системном сервере Postgresql мы создаем базу данных, пользовалеля базы данных и пароль, совершенно типовая операция администрирования СУБД Postgresql:

# su postgres
$ psql
# CREATE USER gitlab WITH CREATEDB PASSWORD 'SecretPassword';
# CREATE DATABASE gitlabhq_production OWNER gitlab;
# \q
# exit

Импортируем дамп базы данных:

# cat ./database.sql | psql -U gitlab -h 127.0.0.1 gitlabhq_production

Для переключения на использование системной базы данных отредактируйте конфигурационный файл /etc/gitlab/gitlab.rb:

postgresql['enable'] = false

gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = 5432
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = 'SecretPassword'

Простого изменения конфигурационного файла недостаточно и вам надо выполнить команду переконфигурирования GitLab:

# gitlab-ctl reconfigure

Есть одна маленькая деталь на которую стоит обратить внимание, реконфигурирование может мигрировать базу некорректно и вам придется залить дамп повторно:

Recipe: postgresql::disable
 * link[/opt/gitlab/service/postgresql] action delete
   - delete link to file at /opt/gitlab/service/postgresql
 * directory[/opt/gitlab/sv/postgresql] action delete
   - delete existing directory /opt/gitlab/sv/postgresql
Recipe: gitlab::database_migrations
 * bash[migrate gitlab-rails database] action run

Вот собственно и все. Нам остается лишь убедиться, что встроенный в GitLab сервер Postgresql более не работает и мы можем авторизоваться в web-интерфейсе GitLab.



Обратите внимание на статьи:


Настройка RhodeCode на сервере под управлением ISPmanager

Настройка RhodeCode на сервере под управлением ISPmanager

Как я ненавижу разного рода панели управления наподобие ISP, это просто словами не описать, мало того. что они ограничивают системного администратора набором шаблонных функций, так еще и ломаются на раз по самым необъяснимым причинам. Я по возможности стараюсь отказываться от проектов где меня просят сделать из сервера с панелью управления нечто нестандартное, но сегодня рассмотрим именно такой кейс.


HTTPS-защита подключений к GITLAB

HTTPS-защита подключений к GITLAB

Как я уже говорил в заметке про установку GITLAB, этот комбайн тащит за собой набор софта включающий в себя Nginx, Postgresql и т.п., а сегодня мы будет отключать использование встроенного в GITLAB Nginx и будем использовать наш центральный Front Nginx, что позволит установить параллельно с GITLAB на одном сервере еще ряд приложений. Одной из побочных задач такого решения служит настройка HTTPS-защиты подключений к нашему внутреннему GIT-репозитарию.


Как установить GITLAB (пошаговое руководство)

Как установить GITLAB (пошаговое руководство)

И еще одна небольшая инструкция по установке web-приложения на Linux-сервер (точнее на Ubuntu Server 16.04). В рамках одного из текущих проектов мне потребовалось развернуть GITLAB на сервер заказчика и естественно мне на этот шаг работы (как в принципе и на весь проект) необходимо подготовить документацию, а так как инструкция по установке внутреннего git-репозитария GITLAB особой коммерческой тайны не представляет, я могу поделиться с вами этим пошаговым руководством.


Установка GITLAB на ARM-платформу (BananaPI M2)

Установка GITLAB на ARM-платформу (BananaPI M2)

В процессе эксплуатации GIT-хранилища RhodeCode я пришел к мнению, что надо с него мигрировать и благо, что я на него не сильно пока залез. Главная причина по которой я решил с него мигрировать, это его прожорливость и если на одной из клиентских платформ с выделенным сервером он вполне себе прижился, то на моем небольшом VPS он потребляет катастрофически много ресурсов и периодически по этому поводу залезает в swap, после чего скорость его работы падает на столько, что остается только материться. Сегодня будем пробовать не менее прожорливого монстрика GITLAB, но устанавливать его будем на наше файловое хранилище которое как наверное помните по моим предыдущим заметкам построено на ARM-платформе BabanaPI M2.


Обновление RhodeCode

Обновление RhodeCode

Процесс обновления RhodeCode максимально простой и в большинстве случаев проходит штатно. Я подготовил небольшую видео-инструкцию с подробным описанием всех выполненных операций. Надеюсь, что этот небольшой видео-урок будет вам полезен.


Как включить доступ к репозитариям по ключу в RhodeCode

Как включить доступ к репозитариям по ключу в RhodeCode

RhodeCode поддерживает доступ к репозитариям с использованием публичного ключа, но по умолчанию этот режим отключен и используется доступ к репозитариям с использованием пары логин-пароль. Я предпочитаю использовать именно авторизацию по ключу и сегодня будем разбираться как этот режим включить в RhodeCode


RhodeCode интеграция с Active Directory

RhodeCode интеграция с Active Directory

При работе с множеством внутренних корпоративных сервисов всегда возникает желание как-то унифицировать логины и пароли пользователей и упростить создание новых пользователей. Не сказать, что у нас большая текучка, но болшьшое число внутренних сервисов создает некоторые проблемы с заведением новых пользователей, так как даже следуя плану предоставления доступа можно что-то забыть. Я предпочитаю привязывать все сервисы в ActiveDirectory компании и повозможности интегрировать пользователей и группы различных сервисов с пользователями и группами в ActiveDirectory.


Установка Hg/Git/Svn хранилища репозитария Rhodecode

Установка Hg/Git/Svn хранилища репозитария Rhodecode

И хотя стандартном де-факто для построения внутренних GIT-хранилищ на данный момент является GitLab есть компании где еше не все мигрировали на Git и требуется поддержка нескольких типов репозитариев. Сегодня мы рассмотрим один из проектов корпоративных хранилищ исходных кодов с поддержкой нескольких типов репозитариев, а речь пойдет о RhodeCode. И в первом обзоре мы рассмотрим как установить, хранилище репозитариев.


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.