Migracija baze podatkov GitLab na zunanji PostgreSQL

Pozdravljeni vsi!

V tem članku bomo bazo podatkov GitLab preselili iz notranjega PostgreSQL, ki je nameščen z GitLabom, na zunanji PostgreSQL, ki je že nameščen na drugem strežniku.

Migracija baze podatkov GitLab na zunanji PostgreSQL

OPOMBA
Zagotovljeno je, da bodo vsa dejanja delovala na CentOS 7.7.1908, PostgreSQL 12 in GitLab 12.4.2-ee.0.

Predhodna priprava

Naredimo tri stvari vnaprej:

1. Na strežniku PostgreSQL požarnemu zidu dodajte pravilo, ki dovoljuje dohodne povezave na vrata PostgreSQL 5432/TCP.

V mojem primeru:

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

2. Na istem mestu, vendar v datoteki postgresql.conf, omogočite omrežnemu vmesniku, da sprejme dohodne povezave od zunaj. Odprite datoteko postgresql.conf, poiščite komentirano vrstico "#listen_addresses = 'localhost'" in pod njim dodajte vrstico, kot je spodaj. Kje - 10.0.0.2, naslov vašega vmesnika.

V mojem primeru:

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. Ker se bo strežnik GitLab povezal z zunanjo bazo podatkov, mora biti to dovoljeno na strežniku PostgreSQL v datoteki pg_hba.conf. Naslov mojega strežnika GitLab je 10.0.0.4.

Odprimo datoteko pg_hba.conf in vanjo dodamo vrstico:

host    all             gitlab               10.0.0.4/24             md5

Izgledalo bo tako:

# 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

In končno znova zaženemo storitev postgresql:

systemctl restart postgresql-12.service

Izvoz baze podatkov GitLab

Izvedimo varnostno kopijo baze podatkov na strežniku GitLab:

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

Varnostna kopija se je pojavila v /tmp:

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

Kopirajmo to kopijo na strežnik PostgreSQL:

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

Uvažanje "internal-gitlab.sql" v PostgreSQL

Uvoz baze podatkov v PostgreSQL:

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

Preverite, ali je zbirka podatkov zdaj v PostgreSQL:

sudo -u postgres psql -l

Prikazati bi se morala naslednja vrstica:

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

Konfiguriranje GitLaba

Po uvozu baze podatkov v PostgreSQL je bil ustvarjen uporabnik gitlab. Spremeniti morate geslo tega uporabnika.

Spreminjanje gesla:

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

Nato bomo na strežniku GitLab v konfiguracijski datoteki /etc/gitlab/gitlab.rb navedli vse podatke zunanjega PostgreSQL.

Naredimo varnostno kopijo datoteke gitlab.rb:

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

Zdaj dodajte te vrstice na konec datoteke 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'] = '******'

Shranite datoteko /etc/gitlab/gitlab.rb in znova konfigurirajte GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

To je vse :)

Velika zahteva. Če ste dali minus, napišite razlog v komentar.

Vir: www.habr.com

Dodaj komentar