Migracija GitLab baze podataka na eksterni PostgreSQL

Pozdrav svima!

U ovom članku migriraćemo GitLab bazu podataka sa internog PostgreSQL-a, koji je instaliran uz GitLab, na eksterni PostgreSQL, koji je već instaliran na drugom serveru.

Migracija GitLab baze podataka na eksterni PostgreSQL

NAPOMENA
Garantovano je da sve radnje rade na CentOS 7.7.1908, PostgreSQL 12 i GitLab 12.4.2-ee.0.

Preliminarna priprema

Uradimo tri stvari unapred:

1. Na PostgreSQL serveru dodajte pravilo u firewall koje dozvoljava dolazne veze na PostgreSQL port 5432/TCP.

U mom slučaju:

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

2. Na istom mestu, ali u postgresql.conf datoteci, dozvolite mrežnom interfejsu da prihvati dolazne veze izvana. Otvorite postgresql.conf fajl, pronađite komentarisani red "#listen_addresses = 'localhost'" i ispod njega dodajte liniju kao ispod. Gdje - 10.0.0.2, adresa vašeg interfejsa.

U mom slučaju:

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. Pošto će se GitLab server povezati sa eksternom bazom podataka, to mora biti dozvoljeno na PostgreSQL serveru u datoteci pg_hba.conf. Adresa mog GitLab servera je 10.0.0.4.

Otvorimo datoteku pg_hba.conf i dodajmo tu liniju:

host    all             gitlab               10.0.0.4/24             md5

To će izgledati ovako:

# 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

I konačno, ponovo pokrećemo postgresql servis:

systemctl restart postgresql-12.service

Izvoz GitLab baze podataka

Napravimo sigurnosnu kopiju baze podataka na GitLab serveru:

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

Sigurnosna kopija se pojavila u /tmp:

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

Kopirajmo ovu kopiju na PostgreSQL server:

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

Uvoz "internal-gitlab.sql" u PostgreSQL

Uvezite bazu podataka u PostgreSQL:

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

Provjerite je li baza podataka sada u PostgreSQL:

sudo -u postgres psql -l

Trebao bi se pojaviti sljedeći red:

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

Konfigurisanje GitLaba

Nakon uvoza baze podataka u PostgreSQL, kreiran je gitlab korisnik. Morate promijeniti lozinku ovog korisnika.

Promjena lozinke:

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

Zatim, na GitLab serveru, u konfiguracionoj datoteci /etc/gitlab/gitlab.rb, naznačićemo sve podatke eksternog PostgreSQL-a.

Napravimo sigurnosnu kopiju datoteke gitlab.rb:

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

Sada dodajte ove redove na kraj 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'] = '******'

Sačuvajte datoteku /etc/gitlab/gitlab.rb i ponovo konfigurišite GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

To je sve :)

Veliki zahtjev. Ako stavite minus, napišite razlog u komentarima.

izvor: www.habr.com

Dodajte komentar