Migraasje fan GitLab-database nei eksterne PostgreSQL

Hello everyone!

Yn dit artikel sille wy de GitLab-database migrearje fan ynterne PostgreSQL, dy't ynstalleare is mei GitLab, nei eksterne PostgreSQL, dy't al is ynstalleare op in oare server.

Migraasje fan GitLab-database nei eksterne PostgreSQL

NOTE
Alle aksjes wurde garandearre om te wurkjen op CentOS 7.7.1908, PostgreSQL 12 en GitLab 12.4.2-ee.0.

Foarriedige tarieding

Litte wy foarôf trije dingen dwaan:

1. Op de PostgreSQL-tsjinner, foegje in regel ta oan 'e brânmuorre dy't ynkommende ferbiningen mei PostgreSQL-poarte 5432 / TCP mooglik makket.

Yn myn gefal:

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

2. Op itselde plak, mar yn it postgresql.conf-bestân, lit de netwurkynterface ynkommende ferbiningen fan bûten akseptearje. Iepenje it postgresql.conf-bestân, fyn de kommentearre line "#listen_addresses = 'localhost'" en foegje dêrûnder in rigel ta lykas hjirûnder. Wêr - 10.0.0.2, it adres fan jo ynterface.

Yn myn gefal:

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. Sûnt de GitLab-tsjinner sil ferbine mei in eksterne databank, moat dit tastien wurde op de PostgreSQL-tsjinner yn it pg_hba.conf-bestân. Myn GitLab-tsjinneradres is 10.0.0.4.

Litte wy it bestân pg_hba.conf iepenje en dêr de rigel taheakje:

host    all             gitlab               10.0.0.4/24             md5

It sil der sa útsjen:

# 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

En as lêste begjinne wy ​​de postgresql-tsjinst opnij:

systemctl restart postgresql-12.service

Eksportearje fan in GitLab-database

Litte wy in database-backup útfiere op 'e GitLab-tsjinner:

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

De reservekopy ferskynde yn /tmp:

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

Litte wy dizze kopy kopiearje nei de PostgreSQL-tsjinner:

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

It ymportearjen fan "internal-gitlab.sql" yn PostgreSQL

Ymportearje de databank yn PostgreSQL:

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

Kontrolearje dat de databank no yn PostgreSQL is:

sudo -u postgres psql -l

De folgjende rigel moat ferskine:

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

GitLab konfigurearje

Nei it ymportearjen fan de databank yn PostgreSQL, waard in gitlab-brûker makke. Jo moatte it wachtwurd fan dizze brûker feroarje.

It wachtwurd feroarje:

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

Dan, op de GitLab-tsjinner, yn it konfiguraasjetriem /etc/gitlab/gitlab.rb, sille wy alle gegevens fan 'e eksterne PostgreSQL oanjaan.

Litte wy in reservekopy meitsje fan it gitlab.rb-bestân:

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

Foegje no dizze rigels ta oan it ein fan it gitlab.rb-bestân:

# Отключить встроенный 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'] = '******'

Bewarje it bestân /etc/gitlab/gitlab.rb en konfigurearje GitLab opnij:

gitlab-ctl reconfigure && gitlab-ctl restart

Da's alles :)

Grutte fersyk. As jo ​​​​in minus sette, skriuw dan de reden yn 'e kommentaren.

Boarne: www.habr.com

Add a comment