Migrering av GitLab-databasen til ekstern PostgreSQL

Hei alle sammen!

I denne artikkelen skal vi migrere GitLab-databasen fra den interne PostgreSQL som installeres sammen med GitLab, til ekstern PostgreSQL som allerede er installert på en annen server.

Migrering av GitLab-databasen til ekstern PostgreSQL

MERK
Alle handlingene fungerer garantert på CentOS 7.7.1908, PostgreSQL 12 og GitLab 12.4.2-ee.0.

Serveren for databasen Firebird 3.0 tildeler og frigjør systemminnet dynamisk, noe som kan føre til fragmentering. For eksempel, etter en samtidig frakobling av et stort antall brukere fra superserveren, kan det oppstå feil ved nye tilkoblinger.

La oss først utføre tre trinn:

1. På serveren PostgreSQL, legg til en regel i brannmuren som tillater innkommende tilkoblinger til PostgreSQL-porten 5432/TCP.

I mitt tilfelle:

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

2. Også der, men i filen postgresql.conf, tillat nettverksgrensesnittet å ta imot innkommende tilkoblinger. Åpne filen postgresql.conf, finn den kommenterte linjen «#listen_addresses = ‘localhost’» og legg til følgende linje under. Her er 10.0.0.2 adressen til ditt grensesnitt.

I mitt tilfelle:

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

#listen_addresses = 'localhost'         # hvilke IP-adresser å lytte på;
listen_addresses = 'localhost, 10.0.0.2'
                                        # kommaseparert liste over adresser;

3. Siden GitLab-serveren vil koble seg til den eksterne databasen, må vi tillate dette i filen pg_hba.conf. Adressen til GitLab-serveren min er 10.0.0.4. serveren La oss åpne filen pg_hba.conf og legge til denne linjen:

host all gitlab 10.0.0.4/24 md5

Det vil se slik ut:

Og til slutt, restart postgresql-tjenesten:

# 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

Eksport av GitLab-database

Vi tar sikkerhetskopi av 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

Sikkerhetskopien ble opprettet i /tmp:

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

La oss kopiere denne kopien til PostgreSQL-serveren:

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

Importer «internal-gitlab.sql» til PostgreSQL

Vi importerer databasen til PostgreSQL:

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

Sjekk at databasen nå er i PostgreSQL:

sudo -u postgres psql -l

Den skal vise følgende rad:

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

Konfigurering av GitLab

Etter at databasen er importert til PostgreSQL, er brukeren gitlab blitt opprettet. Du må endre passordet til denne brukeren.

Vi endrer passordet:

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

Deretter på GitLab-serveren, i konfigurasjonsfilen /etc/gitlab/gitlab.rb, angir vi all informasjon om den eksterne PostgreSQL.

La oss ta en sikkerhetskopi av filen gitlab.rb:

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

Nå legger vi til disse linjene på slutten av filen gitlab.rb:

Lagre filen /etc/gitlab/gitlab.rb og rekonfigurere 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'] = '******'

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

gitlab-ctl reconfigure && gitlab-ctl restart

Det er alt 🙂

En stor forespørsel. Hvis du har satt minusscore, vennligst skriv årsaken i kommentaren.

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster