Hello sa tanan!
Niini nga artikulo, atong ibalhin ang database sa GitLab gikan sa internal nga PostgreSQL, nga gi-install sa GitLab, ngadto sa eksternal nga PostgreSQL, nga na-install na sa laing server.
PAHINUMDOM
Ang tanan nga mga aksyon gigarantiyahan nga molihok sa CentOS 7.7.1908, PostgreSQL 12 ug GitLab 12.4.2-ee.0.
Preliminary nga pagpangandam
Atong buhaton ang tulo ka butang nga abante:
1. Sa PostgreSQL server, idugang ang usa ka lagda sa firewall nga nagtugot sa umaabot nga mga koneksyon sa PostgreSQL port 5432/TCP.
Sa akong kaso:
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success
2. Sa samang dapit, apan sa postgresql.conf file, tugoti ang network interface sa pagdawat sa umaabot nga mga koneksyon gikan sa gawas. Ablihi ang postgresql.conf file, pangitaa ang gikomento nga linya "#listen_addresses = 'localhost'" ug sa ilawom niini pagdugang usa ka linya sama sa ubos. Diin - 10.0.0.2, ang adres sa imong interface.
Sa akong 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. Tungod kay ang GitLab server magkonektar sa usa ka eksternal nga database, kini kinahanglan nga tugutan sa PostgreSQL server sa pg_hba.conf file. Ang akong GitLab server address kay 10.0.0.4.
Atong ablihan ang pg_hba.conf file ug idugang ang linya didto:
host all gitlab 10.0.0.4/24 md5
Kini tan-awon sama niini:
# 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
Ug sa katapusan, gi-restart namon ang serbisyo sa postgresql:
systemctl restart postgresql-12.service
Pag-eksport sa database sa GitLab
Magbuhat kita og database backup 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 nagpakita sa /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Atong kopyahon kini nga kopya sa PostgreSQL server:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Pag-import sa "internal-gitlab.sql" sa PostgreSQL
I-import ang database sa PostgreSQL:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Susiha nga ang database anaa na sa PostgreSQL:
sudo -u postgres psql -l
Ang mosunod nga linya kinahanglan nga makita:
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Pag-configure sa GitLab
Human sa pag-import sa database ngadto sa PostgreSQL, usa ka gitlab user ang gibuhat. Kinahanglan nimong usbon ang password niini nga user.
Pag-ilis sa password:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ΠΠΠ ΠΠΠ¬' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE
Dayon, sa GitLab server, sa configuration file /etc/gitlab/gitlab.rb, among ipahibalo ang tanang data sa external PostgreSQL.
Maghimo ta og backup nga kopya sa gitlab.rb file:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Karon idugang kini nga mga linya sa katapusan sa 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 ug i-reconfigure ang GitLab:
gitlab-ctl reconfigure && gitlab-ctl restart
Mao ra :)
Dakong hangyo. Kung magbutang ka og minus, isulat ang rason sa mga komento.
Source: www.habr.com