Përshëndetje të gjithëve!
Në këtë artikull do të kryejmë migrimin e bazës GitLab nga PostgreSQL i brendshëm, që instalohet së bashku me GitLab, në PostgreSQL të jashtëm, që tashmë është instaluar në një server tjetër.

VËREJTJE
Të gjitha veprimet garantojnë që funksionojnë në CentOS 7.7.1908, PostgreSQL 12 dhe GitLab 12.4.2-ee.0.
Përgatitja paraprake
Fillimisht, do të kryejmë tre veprime:
1. Në serveri PostgreSQL në firewall, shtoni një rregull që lejon lidhjet hyrëse në portin PostgreSQL 5432/TCP.
Në rastin tim:
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success2. Atje gjithashtu, në skedarin postgresql.conf, lejoni ndërfaqen e rrjetit të pranojë lidhjet hyrëse nga jashtë. Hape skedarin postgresql.conf, kërko çfarëdo rreshti të komentuara "#listen_addresses = ‘localhost’" dhe nën të shto këtë rresht si më poshtë. Ku — 10.0.0.2, adresa e ndërfaqes tuaj.
Në rastin tim:
vi /var/lib/pgsql/12/data/postgresql.conf
# - Cilësimet e Lidhjes -
#listen_addresses = 'localhost' # cilat adresat IP të dëgjojnë;
listen_addresses = 'localhost, 10.0.0.2'
# lista e adresave të ndara me presje;3. Duke qenë se serveri GitLab do të lidhet me bazën e të dhënave të jashtme, duhet ta lejoni këtë në skedarin pg_hba.conf. Adresa e serverit tim GitLab është 10.0.0.4. serveri Do të hapim skedarin pg_hba.conf dhe do të shtojmë atje këtë rresht:
host all gitlab 10.0.0.4/24 md5
Kështu do të duket:Kjo do të duket kështu:
# 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 md5Dhe në fund, rinisni shërbimin postgresql:
systemctl restart postgresql-12.serviceEksporti i bazës GitLab
Në serverin GitLab, do të bëjmë një kopje rezervë të bazës:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sqlKopja rezervë ndodhet në /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sqlDo ta kopjojmë këtë kopje në serverin PostgreSQL:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00Importi i «internal-gitlab.sql» në PostgreSQL
Do ta importojmë bazën në PostgreSQL:
sudo -u postgres psql -f /tmp/internal-gitlab.sqlKontrolloni që baza tani është në PostgreSQL:
sudo -u postgres psql -lDuhet të shfaqet ky rresht:
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |Konfigurimi i GitLab
Pas importimit të bazës në PostgreSQL u krijua përdoruesi gitlab. Duhet të ndryshoni fjalëkalimin e këtij përdoruesi.
Ndryshimi i fjalëkalimit:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'FJALËKALIMI' VALID UNTIL 'infinity';"
Fjalëkalimi për përdoruesin postgres:
ALTER ROLEMë pas në serverin GitLab, në skedarin e konfigurimit /etc/gitlab/gitlab.rb do të specifikoni të dhënat për PostgreSQL e jashtme.
Do të bëjmë një kopje rezervë të skedarit gitlab.rb:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.origTani në fund të skedarit gitlab.rb do të shtojmë këto rreshta:
# Отключить встроенный 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'] = '******'Do ta ruajmë skedarin /etc/gitlab/gitlab.rb dhe do ta rikonfigurojmë GitLab:
gitlab-ctl reconfigure && gitlab-ctl restartKëtu e kemi 🙂
Një lutje e madhe. Nëse i keni dhënë një yll negativ, ju lutem shkruani arsyen në koment.
Burimi: habr.com
