Migrasie van GitLab-databasis na eksterne PostgreSQL

Hallo almal!

In hierdie artikel sal ons die GitLab-databasis migreer van interne PostgreSQL, wat met GitLab geïnstalleer is, na eksterne PostgreSQL, wat reeds op 'n ander bediener geïnstalleer is.

Migrasie van GitLab-databasis na eksterne PostgreSQL

NOTA
Alle aksies is gewaarborg om op CentOS 7.7.1908, PostgreSQL 12 en GitLab 12.4.2-ee.0 te werk.

Voorlopige voorbereiding

Kom ons doen drie dinge vooraf:

1. Op die PostgreSQL-bediener, voeg 'n reël by die firewall wat inkomende verbindings na PostgreSQL-poort 5432/TCP toelaat.

In my geval:

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

2. Op dieselfde plek, maar in die postgresql.conf-lêer, laat die netwerkkoppelvlak toe om inkomende verbindings van buite te aanvaar. Maak die postgresql.conf-lêer oop, vind die kommentaarreël "#listen_addresses = 'plaaslike gasheer'" en daaronder voeg 'n reël soos hieronder by. Waar - 10.0.0.2, die adres van jou koppelvlak.

In my geval:

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. Aangesien die GitLab-bediener aan 'n eksterne databasis sal koppel, moet dit toegelaat word op die PostgreSQL-bediener in die pg_hba.conf-lêer. My GitLab-bedieneradres is 10.0.0.4.

Kom ons maak die pg_hba.conf-lêer oop en voeg die reël daar by:

host    all             gitlab               10.0.0.4/24             md5

Dit sal so lyk:

# 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 uiteindelik herbegin ons die postgresql-diens:

systemctl restart postgresql-12.service

Voer 'n GitLab-databasis uit

Kom ons voer 'n databasisrugsteun op die GitLab-bediener uit:

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

Die rugsteun het in /tmp verskyn:

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

Kom ons kopieer hierdie kopie na die PostgreSQL-bediener:

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

Voer "internal-gitlab.sql" in PostgreSQL in

Voer die databasis in PostgreSQL in:

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

Kontroleer dat die databasis nou in PostgreSQL is:

sudo -u postgres psql -l

Die volgende reël moet verskyn:

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

Konfigureer GitLab

Nadat die databasis in PostgreSQL ingevoer is, is 'n gitlab-gebruiker geskep. Jy moet hierdie gebruiker se wagwoord verander.

Verander die wagwoord:

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

Dan, op die GitLab-bediener, in die konfigurasielêer /etc/gitlab/gitlab.rb, sal ons al die data van die eksterne PostgreSQL aandui.

Kom ons maak 'n rugsteunkopie van die gitlab.rb-lêer:

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

Voeg nou hierdie reëls by die einde van die gitlab.rb-lêer:

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

Stoor die lêer /etc/gitlab/gitlab.rb en herkonfigureer GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

Dis al :)

Groot versoek. As jy 'n minus plaas, skryf die rede in die kommentaar.

Bron: will.com

Voeg 'n opmerking