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
Lahat ng aksyon ay garantisadong gagana sa CentOS 7.7.1908, PostgreSQL 12 at GitLab 12.4.2-ee.0.
Paunang paghahanda
Gawin natin ang tatlong bagay nang maaga:
1. Sa PostgreSQL server, magdagdag ng panuntunan sa firewall na nagbibigay-daan 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
success
2. 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 kumonekta ang GitLab server sa isang panlabas na database, dapat itong payagan sa PostgreSQL server sa pg_hba.conf file. Ang aking GitLab server address 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 md5
Magiging 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 md5
At sa wakas, i-restart namin ang serbisyo ng postgresql:
systemctl restart postgresql-12.service
Pag-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.sql
Ang backup ay lumitaw sa /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Kopyahin 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:00
Ini-import ang "internal-gitlab.sql" sa PostgreSQL
I-import ang database sa PostgreSQL:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Suriin na ang database ay nasa PostgreSQL na ngayon:
sudo -u postgres psql -l
Ang 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 ROLE
Pagkatapos, 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.orig
Ngayon 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 restart
yun lang :)
Malaking kahilingan. Kung naglagay ka ng minus, isulat ang dahilan sa mga komento.
Pinagmulan: www.habr.com