Муҳоҷирати пойгоҳи додаҳои GitLab ба PostgreSQL беруна

Салом хама!

Дар ин мақола, мо базаи GitLab-ро аз PostgreSQL-и дохилӣ, ки бо GitLab насб шудааст, ба PostgreSQL-и беруна, ки аллакай дар сервери дигар насб шудааст, интиқол медиҳем.

Муҳоҷирати пойгоҳи додаҳои GitLab ба PostgreSQL беруна

ШАРҲ
Кафолат дода мешавад, ки ҳамаи амалҳо амалӣ карда шаванд CentOS 7.7.1908, PostgreSQL 12 ва GitLab 12.4.2-ee.0.

Омодасозии пешакӣ

Биёед се чизро пешакӣ иҷро кунем:

1. Дар бораи сервер Қоидаеро ба девори оташи PostgreSQL илова кунед, ки пайвастҳои воридшавандаро ба порти PostgreSQL 5432/TCP иҷозат медиҳад.

Дар ҳолати ман:

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

2. Дар ҳамон ҷо, вале дар файли postgresql.conf, ба интерфейси шабака иҷозат диҳед, ки пайвастҳои воридотӣ аз берунро қабул кунад. Файли postgresql.conf -ро кушоед, хати шарҳро пайдо кунед "#суроғаҳои_гӯш кунед = 'хости маҳаллӣ'" ва дар зери он хати зеринро илова кунед. Дар куҷо - 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 ба пойгоҳи додаҳои беруна пайваст мешавад, пас сервер PostgreSQL бояд дар файли pg_hba.conf фаъол карда шавад. Суроғаи сервери 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

Ҳамааш ҳамин :)

Дархости калон. Агар минус гузоред сабабашро дар коментария нависед.

Манбаъ: will.com

Хостинги боэътимодро барои сайтҳо бо муҳофизати DDoS, серверҳои VPS VDS харед 🔥 Харидани хостинги боэътимоди вебсайт бо муҳофизати DDoS, серверҳои VPS VDS | ProHoster