GitLab маалымат базасын тышкы PostgreSQLге көчүрүү

Баарына салам!

Бул макалада биз GitLab маалымат базасын GitLab менен орнотулган ички PostgreSQLден башка серверде орнотулган тышкы PostgreSQLге көчүрөбүз.

GitLab маалымат базасын тышкы PostgreSQLге көчүрүү

ЭСКЕРТҮҮ
Бардык аракеттер CentOS 7.7.1908, PostgreSQL 12 жана GitLab 12.4.2-ee.0 менен иштөөгө кепилдик берилет.

алдын ала даярдоо

Келгиле, үч нерсени алдын ала жасайлы:

1. PostgreSQL серверинде 5432/TCP PostgreSQL портуна кирүүчү туташууларга уруксат берген брандмауэрге эреже кошуңуз.

Менин учурда:

firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success

2. Ошол эле жерде, бирок postgresql.conf файлында, тармак интерфейсине сырттан келген байланыштарды кабыл алууга уруксат бериңиз. Postgresql.conf файлын ачып, комментарий берилген сапты табыңыз "#угуу_даректери = 'localhost'" жана анын астына төмөндөгүдөй сызык кошуңуз. Бул жерде - 10.0.0.2, интерфейсиңиздин дареги.

Менин учурда:

vi /var/lib/pgsql/12/data/postgresql.conf
# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = 'localhost, 10.0.0.2'
                                        # comma-separated list of addresses;

3. GitLab сервери тышкы маалымат базасына туташа тургандыктан, буга pg_hba.conf файлындагы PostgreSQL серверинде уруксат берилиши керек. Менин GitLab серверимдин дареги 10.0.0.4.

pg_hba.conf файлын ачып, ошол жерге сапты кошолу:

host    all             gitlab               10.0.0.4/24             md5

Бул төмөнкүдөй болот:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             postgres                                     md5

# IPv4 local connections:
host    all             postgres             127.0.0.1/32            md5
host    all             gitlab               10.0.0.4/24             md5

Акыр-аягы, биз postgresql кызматын кайра ишке киргизебиз:

systemctl restart postgresql-12.service

GitLab маалымат базасын экспорттоо

Келгиле, GitLab серверинде маалымат базасынын резервдик көчүрмөсүн жасайлы:

sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql

Камдык көчүрмө /tmp ичинде пайда болду:

ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql

Бул көчүрмөнү PostgreSQL серверине көчүрөлү:

scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql                                                                               100%  835KB  50.0MB/s   00:00

"internal-gitlab.sql" PostgreSQLге импорттоо

Маалыматтар базасын PostgreSQLге импорттоо:

sudo -u postgres psql -f /tmp/internal-gitlab.sql

Маалымат базасы азыр PostgreSQLде экенин текшериңиз:

sudo -u postgres psql -l

Төмөнкү сап пайда болушу керек:

gitlabhq_production | gitlab   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

GitLab конфигурацияланууда

Маалыматтар базасын PostgreSQLге импорттоодон кийин gitlab колдонуучусу түзүлдү. Бул колдонуучунун сырсөзүн өзгөртүшүңүз керек.

Сырсөздү өзгөртүү:

sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ПАРОЛЬ' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE

Андан кийин, GitLab серверинде, /etc/gitlab/gitlab.rb конфигурация файлында биз тышкы PostgreSQLдин бардык маалыматтарын көрсөтөбүз.

gitlab.rb файлынын резервдик көчүрмөсүн жасайлы:

cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig

Эми бул саптарды gitlab.rb файлынын аягына кошуңуз:

# Отключить встроенный PostgreSQL.
postgresql['enable'] = false

# Данные для подключения к внешней базе. Указывайте свои.
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '10.0.0.2'
gitlab_rails['db_port'] = 5432
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = '******'

/etc/gitlab/gitlab.rb файлын сактап, GitLab конфигурациясын өзгөртүңүз:

gitlab-ctl reconfigure && gitlab-ctl restart

Баары болду :)

Чоң өтүнүч. Минус койсоңуз, себебин комментарийге жазыңыз.

Source: www.habr.com

Комментарий кошуу