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.
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