Migracija GitLab baze na vanjski PostgreSQL

Pozdrav svima!

U ovom članku ćemo izvršiti migraciju GitLab baze sa unutrašnjeg PostgreSQL-a, koji se instalira uz GitLab, na vanjski PostgreSQL, koji je već instaliran na drugom serveru.

Migracija GitLab baze na vanjski PostgreSQL

NAPOMENA
Sve radnje garantovano rade na CentOS 7.7.1908, PostgreSQL 12 i GitLab 12.4.2-ee.0.

Pripremne radnje

Prije toga, izvršićemo tri koraka:

1. Na serveru PostgreSQL dodajte pravilo u vatrozidu koje omogućava ulazne konekcije na port PostgreSQL 5432/TCP.

U mom slučaju:

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

2. Također, u datoteci postgresql.conf dozvolite mrežnom interfejsu da prihvati ulazne konekcije. Otvorite datoteku postgresql.conf, pronađite zakomentarisan redak "#listen_addresses = ‘localhost’" i ispod njega dodajte redak kao u nastavku. Gdje — 10.0.0.2, adresa vašeg interfejsa.

U mom slučaju:

vi /var/lib/pgsql/12/data/postgresql.conf
# - Podešavanja konekcije -

#listen_addresses = 'localhost'         # koje IP adrese slušati;
listen_addresses = 'localhost, 10.0.0.2'
                                        # lista adresa razdvojenih zarezom;

3. Pošto će se GitLab server povezivati na vanjsku bazu, to treba dozvoliti u datoteci pg_hba.conf. Adresa mog GitLab servera je 10.0.0.4. serveru Otvorimo datoteku pg_hba.conf i dodajmo redak:

host all gitlab 10.0.0.4/24 md5

Izgledat će ovako:

I konačno, restartujemo servis postgresql:

# 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

systemctl restart postgresql-12.service

Izvoz GitLab baze

Na serveru GitLab izvršavamo backup baze:

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

Backup je pohranjen u /tmp:

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

Kopiramo 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

Uvozimo bazu u PostgreSQL:

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

Provjerite da li je baza sada u PostgreSQL-u:

sudo -u postgres psql -l

Trebalo bi da se pojavi ovakav red:

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

Konfiguracija GitLab-a

Nakon uvoza baze u PostgreSQL, korisnik gitlab je kreiran. Trebate promijeniti lozinku tog korisnika.

Menjamo lozinku:

sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'LOZINKA' VALID UNTIL 'infinity';" Password for user postgres: ALTER ROLE

Zatim, na GitLab serveru u datoteci konfiguracije /etc/gitlab/gitlab.rb navedite sve podatke vanjskog PostgreSQL-a.

Napravimo rezervnu kopiju datoteke gitlab.rb:

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

Sada na kraj datoteke gitlab.rb dodajmo ove retke:

Sačuvamo datoteku /etc/gitlab/gitlab.rb i rekonfiguriramo GitLab:

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

To je to 🙂

Velika molba. Ako ste dali minus, navedite razlog u komentaru.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster