Paglalin sa database sa GitLab ngadto sa gawas nga PostgreSQL

Hello sa tanan!

Niini nga artikulo, atong ibalhin ang database sa GitLab gikan sa internal nga PostgreSQL, nga gi-install sa GitLab, ngadto sa eksternal nga PostgreSQL, nga na-install na sa laing server.

Paglalin sa database sa GitLab ngadto sa gawas nga PostgreSQL

PAHINUMDOM
Ang tanan nga mga aksyon gigarantiyahan nga molihok sa CentOS 7.7.1908, PostgreSQL 12 ug GitLab 12.4.2-ee.0.

Preliminary nga pagpangandam

Atong buhaton ang tulo ka butang nga abante:

1. Sa PostgreSQL server, idugang ang usa ka lagda sa firewall nga nagtugot sa umaabot nga mga koneksyon sa PostgreSQL port 5432/TCP.

Sa akong kaso:

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

2. Sa samang dapit, apan sa postgresql.conf file, tugoti ang network interface sa pagdawat sa umaabot nga mga koneksyon gikan sa gawas. Ablihi ang postgresql.conf file, pangitaa ang gikomento nga linya "#listen_addresses = 'localhost'" ug sa ilawom niini pagdugang usa ka linya sama sa ubos. Diin - 10.0.0.2, ang adres sa imong interface.

Sa akong kaso:

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. Tungod kay ang GitLab server magkonektar sa usa ka eksternal nga database, kini kinahanglan nga tugutan sa PostgreSQL server sa pg_hba.conf file. Ang akong GitLab server address kay 10.0.0.4.

Atong ablihan ang pg_hba.conf file ug idugang ang linya didto:

host    all             gitlab               10.0.0.4/24             md5

Kini tan-awon sama niini:

# 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

Ug sa katapusan, gi-restart namon ang serbisyo sa postgresql:

systemctl restart postgresql-12.service

Pag-eksport sa database sa GitLab

Magbuhat kita og database backup sa GitLab server:

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

Ang backup nagpakita sa /tmp:

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

Atong kopyahon kini nga kopya sa PostgreSQL server:

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

Pag-import sa "internal-gitlab.sql" sa PostgreSQL

I-import ang database sa PostgreSQL:

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

Susiha nga ang database anaa na sa PostgreSQL:

sudo -u postgres psql -l

Ang mosunod nga linya kinahanglan nga makita:

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

Pag-configure sa GitLab

Human sa pag-import sa database ngadto sa PostgreSQL, usa ka gitlab user ang gibuhat. Kinahanglan nimong usbon ang password niini nga user.

Pag-ilis sa password:

sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ΠŸΠΠ ΠžΠ›Π¬' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE

Dayon, sa GitLab server, sa configuration file /etc/gitlab/gitlab.rb, among ipahibalo ang tanang data sa external PostgreSQL.

Maghimo ta og backup nga kopya sa gitlab.rb file:

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

Karon idugang kini nga mga linya sa katapusan sa gitlab.rb file:

# ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ встроСнный 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'] = '******'

I-save ang file /etc/gitlab/gitlab.rb ug i-reconfigure ang GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

Mao ra :)

Dakong hangyo. Kung magbutang ka og minus, isulat ang rason sa mga komento.

Source: www.habr.com

Idugang sa usa ka comment