Migrarea bazelor de date GitLab pe PostgreSQL extern

Salut tuturor!

În acest articol, vom efectua migrarea bazei de date GitLab de la PostgreSQL intern, care se instalează împreună cu GitLab, la PostgreSQL extern, care este deja instalat pe un alt server.

Migrarea bazelor de date GitLab pe PostgreSQL extern

NOTĂ
Toate acțiunile funcționează garantat pe CentOS 7.7.1908, PostgreSQL 12 și GitLab 12.4.2-ee.0.

Pregătirea preliminară

Să efectuăm din timp trei acțiuni:

1. Pe server PostgreSQL, adăugați o regulă în firewall care să permită conexiunile în intrare pe portul PostgreSQL 5432/TCP.

În cazul meu:

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

2. Tot acolo, dar în fișierul postgresql.conf, permiteți interfeței de rețea să primească conexiuni în intrare din exterior. Deschideți fișierul postgresql.conf, găsiți linia comentată „#listen_addresses = ‘localhost’” și adăugați sub ea linia de mai jos. Unde — 10.0.0.2, adresa interfeței dumneavoastră.

În cazul meu:

vi /var/lib/pgsql/12/data/postgresql.conf
# - Setări de conexiune -

#listen_addresses = 'localhost'         # ce adresă IP să asculte;
listen_addresses = 'localhost, 10.0.0.2'
                                        # listă de adrese separate prin virgule;

3. Deoarece serverul GitLab se va conecta la baza externă, trebuie să permiteți acest lucru în fișierul pg_hba.conf. Adresa serverului meu GitLab este 10.0.0.4. server Vom deschide fișierul pg_hba.conf și vom adăuga acolo linia:

host all gitlab 10.0.0.4/24 md5

Ar trebui să arate așa:

Și, în cele din urmă, repornim serviciul 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

Exportarea bazei de date GitLab

Pe serverul GitLab, vom efectua o copie de siguranță a bazei:

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

Copie de rezervă a fost creată în /tmp:

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

Vom copia această copie pe serverul PostgreSQL:

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

Importarea „internal-gitlab.sql” în PostgreSQL

Importăm baza în PostgreSQL:

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

Verificați dacă baza este acum în PostgreSQL:

sudo -u postgres psql -l

Ar trebui să apară următoarea linie:

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

Configurarea GitLab

După importarea bazei în PostgreSQL, a fost creat utilizatorul gitlab. Va trebui să schimbați parola acestui utilizator.

Schimbăm parola:

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

Apoi, pe serverul GitLab, în fișierul de configurare /etc/gitlab/gitlab.rb, vom specifica toate datele PostgreSQL externe.

Vom face o copie de rezervă a fișierului gitlab.rb:

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

Acum, la sfârșitul fișierului gitlab.rb, adăugați aceste linii:

Salvați fișierul /etc/gitlab/gitlab.rb și reconfigurați 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'] = '******'

Vom fi salvând fișierul /etc/gitlab/gitlab.rb și vom reconfigura GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

Asta este tot 🙂

O mare rugăminte. Dacă ai dat un vot negativ, te rog să scrii motivul în comentarii.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster