Migration of the GitLab database to an external PostgreSQL

Hej alle sammen!

I denne artikel vil vi migrere GitLab-databasen fra den interne PostgreSQL, der installeres sammen med GitLab, til en ekstern PostgreSQL, som allerede er installeret på en anden server.

Migration of the GitLab database to an external PostgreSQL

BEMÆRKNING
Alle handlinger fungerer garanteret på CentOS 7.7.1908, PostgreSQL 12 og GitLab 12.4.2-ee.0.

Forberedelse.

Vi skal på forhånd udføre tre handlinger:

1. På serveren PostgreSQL skal du tilføje en regel i firewallen, der tillader indgående forbindelser på PostgreSQL-port 5432/TCP.

I mit tilfælde:

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

2. Samme sted, men i filen postgresql.conf, skal du tillade netværksinterfacet at acceptere indgående forbindelser udefra. Åbn filen postgresql.conf, find den kommenterede linje "#listen_addresses = ‘localhost’» og tilføj en linje under den som nedenfor. Hvor — 10.0.0.2, adressen til dit interface.

I mit tilfælde:

vi /var/lib/pgsql/12/data/postgresql.conf
# - Forbindelsesindstillinger -

#listen_addresses = 'localhost'         # hvilken IP-adresse(r) der skal lytte på;
listen_addresses = 'localhost, 10.0.0.2'
                                        # komma-separeret liste af adresser;

3. Da GitLab-serveren vil oprette forbindelse til den eksterne database, skal dette tillades i filen pg_hba.conf. serveren Serverens adresse for GitLab er 10.0.0.4.

Lad os åbne filen pg_hba.conf og tilføje følgende linje:

host    all             gitlab               10.0.0.4/24             md5

Dette vil se således ud:

# 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

Og til sidst genstarter vi postgresql-tjenesten:

systemctl restart postgresql-12.service

Eksport af GitLab-database

Lad os udføre backup af databasen på GitLab-serveren:

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

Backup'en blev oprettet i /tmp:

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

Vi kopierer denne backup til PostgreSQL-serveren:

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

Import af "internal-gitlab.sql" i PostgreSQL

Lad os importere databasen i PostgreSQL:

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

Tjek om databasen nu er i PostgreSQL:

sudo -u postgres psql -l

Der skal vises en linje som denne:

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

Konfiguration af GitLab

Efter importen af databasen til PostgreSQL blev brugeren gitlab oprettet. Du skal ændre adgangskoden for denne bruger.

Vi ændrer adgangskoden:

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

Dernæst opdaterer vi alle oplysninger om den eksterne PostgreSQL i konfigurationsfilen /etc/gitlab/gitlab.rb på GitLab-serveren.

Lad os lave en backup af filen gitlab.rb:

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

Nu tilføjer vi disse linjer til slutningen af filen 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'] = '******'

Vi gemmer filen /etc/gitlab/gitlab.rb og rekonfigurerer GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

Det er det hele 🙂

Vi beder dig venligst om at skrive grunden til din nedstemning i kommentaren.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster