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


Администрирование операционных систем на базе Linux (Debian/Ubuntu и Centos/RedHat) Администрирование серверов баз данных Postgresql Резервное копирование и восстановление информации (Backup & Recovery)
database gitlab postgresql копирование резервное сервер сервера
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 2 месяца)

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.

 

Моя официальная страница на FaceBook
Мой микроблог в твиттер

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

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

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


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

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

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


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

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

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


Обновление RhodeCode

Обновление RhodeCode

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


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

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

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


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

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

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


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

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

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


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

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

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


Как вы наверное понимаете, бесплатно сейчас работать никто не будет и если ответ на ваш вопрос потребует больше трех минут времени и вам требуется полноценная консультация, то расценки на мои услуги представленны ниже.


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

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