Mindenkinek szia!
Ebben a cikkben a GitLab adatbázisát migráljuk az integrált PostgreSQL-ről, amely a GitLab-bal együtt települ, egy külső PostgreSQL-re, amely már egy másik szerveren van telepítve.

MEGJEGYZÉS
Minden lépés garantáltan működik CentOS 7.7.1908, PostgreSQL 12 és GitLab 12.4.2-ee.0 verziókkal.
Előzetes előkészítés
Előre végezzünk el három lépést:
1. A szerveren PostgreSQL esetében a tűzfalhoz adjunk hozzá egy szabályt, amely engedélyezi a bejövő kapcsolatok fogadását a PostgreSQL 5432/TCP porton.
Az én esetemben:
firewall-cmd --add-service=postgresql --zone=internal --permanent
siker
firewall-cmd --reload
siker2. Ugyanott, de a postgresql.conf fájlban engedélyezzük a hálózati interfész számára a bejövő kapcsolatok fogadását. Nyissuk meg a postgresql.conf fájlt, keressük meg a kommentált sort „#listen_addresses = ‘localhost’” és alatta adjuk hozzá a következő sort. Itt – 10.0.0.2, az ön interfésze.
Az én esetemben:
vi /var/lib/pgsql/12/data/postgresql.conf
# - Kapcsolati beállítások -
#listen_addresses = 'localhost' # milyen IP-cím(ek)et figyeljen;
listen_addresses = 'localhost, 10.0.0.2'
# vesszővel elválasztott címek listája;3. Mivel a GitLab szerver csatlakozik a külső adatbázishoz, ezt engedélyezni kell a pg_hba.conf fájlban. Az én GitLab szerverem címe 10.0.0.4. szerveren Nyissuk meg a pg_hba.conf fájlt, és adjuk hozzá a következő sort:
host all gitlab 10.0.0.4/24 md5
Ez így fog kinézni:És végül indítsuk újra a postgresql szolgáltatást:
# 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 md5systemctl restart postgresql-12.service
GitLab adatbázis exportálásaKészítsük el az adatbázis biztonsági másolatát a GitLab szerveren:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
A biztonsági másolat megjelent a /tmp mappában:ls -lh total 836K -rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Másoljuk át ezt a másolatot a PostgreSQL szerverre:scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/ internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Az „internal-gitlab.sql” importálása PostgreSQL-beImportáljuk az adatbázist PostgreSQL-be:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Ellenőrizzük, hogy az adatbázis most már a PostgreSQL-ben van:sudo -u postgres psql -l
Meg kell jelennie a következő sornak:gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
GitLab konfigurálásaAz adatbázis PostgreSQL-be való importálása után létrejött a gitlab felhasználó. Meg kell változtatnia ennek a felhasználónak a jelszavát.
A jelszó megváltoztatása:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'JELSZÓ' VALID UNTIL 'infinity';" Jelszó a postgres felhasználónak: ALTER ROLE
Ezután a GitLab szerveren a /etc/gitlab/gitlab.rb konfigurációs fájlban adjuk meg az összes külső PostgreSQL adatot.Készítsünk egy biztonsági másolatot a gitlab.rb fájlról:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Most a gitlab.rb fájl végére adjuk hozzá ezeket a sorokat:Mentjük a /etc/gitlab/gitlab.rb fájlt, és újra konfiguráljuk a GitLab-ot:
# Отключить встроенный 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'] = '******'gitlab-ctl reconfigure && gitlab-ctl restart
És ez mind 🙂Ennyi volt 🙂
Kérlek, ha mínusz jelet adtál, írd meg az okát a megjegyzésben.
Forrás: habr.com
