Kumusta sa lahat!
Sa artikulong ito, ililipat namin ang database ng GitLab mula sa panloob na PostgreSQL, na naka-install sa GitLab, sa panlabas na PostgreSQL, na naka-install na sa isa pang server.

TANDAAN
Garantisado na gagana ang lahat ng aksyon CentOS 7.7.1908, PostgreSQL 12 at GitLab 12.4.2-ee.0.
Paunang paghahanda
Gawin natin ang tatlong bagay nang maaga:
1. Sa server Magdagdag ng panuntunan sa PostgreSQL firewall na nagpapahintulot sa mga papasok na koneksyon sa PostgreSQL port 5432/TCP.
Sa aking kaso:
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success2. Sa parehong lugar, ngunit sa postgresql.conf file, payagan ang interface ng network na tanggapin ang mga papasok na koneksyon mula sa labas. Buksan ang postgresql.conf file, hanapin ang commented out line "#listen_addresses = 'localhost'" at sa ilalim nito magdagdag ng isang linya tulad ng sa ibaba. Saan - 10.0.0.2, ang address ng iyong interface.
Sa aking kaso:
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. Dahil ang GitLab server ay kokonekta sa isang panlabas na database, kung gayon server Kailangang naka-enable ang PostgreSQL sa pg_hba.conf file. Ang address ng aking GitLab server ay 10.0.0.4.
Buksan natin ang pg_hba.conf file at idagdag ang linya doon:
host all gitlab 10.0.0.4/24 md5Magiging ganito ang hitsura:
# 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 md5At sa wakas, i-restart namin ang serbisyo ng postgresql:
systemctl restart postgresql-12.servicePag-export ng database ng GitLab
Magsagawa tayo ng backup ng database sa GitLab server:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sqlAng backup ay lumitaw sa /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sqlKopyahin natin ang kopyang ito sa PostgreSQL server:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00Ini-import ang "internal-gitlab.sql" sa PostgreSQL
I-import ang database sa PostgreSQL:
sudo -u postgres psql -f /tmp/internal-gitlab.sqlSuriin na ang database ay nasa PostgreSQL na ngayon:
sudo -u postgres psql -lAng sumusunod na linya ay dapat lumitaw:
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |Pag-configure ng GitLab
Pagkatapos i-import ang database sa PostgreSQL, isang gitlab user ang nilikha. Kailangan mong baguhin ang password ng user na ito.
Pagbabago ng password:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ПАРОЛЬ' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLEPagkatapos, sa GitLab server, sa configuration file /etc/gitlab/gitlab.rb, ipahiwatig namin ang lahat ng data ng external na PostgreSQL.
Gumawa tayo ng backup na kopya ng gitlab.rb file:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.origNgayon idagdag ang mga linyang ito sa dulo ng gitlab.rb file:
# Отключить встроенный 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'] = '******'I-save ang file /etc/gitlab/gitlab.rb at muling i-configure ang GitLab:
gitlab-ctl reconfigure && gitlab-ctl restartyun lang :)
Malaking kahilingan. Kung naglagay ka ng minus, isulat ang dahilan sa mga komento.
Pinagmulan: www.habr.com
