ΠΡΠ΅ΠΌ ΠΡΠΈΠ²Π΅Ρ!
Ing artikel iki, kita bakal migrasi database GitLab saka PostgreSQL internal, sing diinstal karo GitLab, menyang PostgreSQL eksternal, sing wis diinstal ing server liyane.
CATETAN
Kabeh tumindak dijamin bisa digunakake ing CentOS 7.7.1908, PostgreSQL 12 lan GitLab 12.4.2-ee.0.
Persiyapan awal
Ayo padha nindakake telung perkara sadurunge:
1. Ing server PostgreSQL, nambah aturan kanggo firewall sing ngidini sambungan mlebu menyang port PostgreSQL 5432/TCP.
Ing kasusku:
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success
2. Ing panggonan sing padha, nanging ing file postgresql.conf, ngidini antarmuka jaringan kanggo nampa sambungan mlebu saka njaba. Bukak file postgresql.conf, golek baris komentar "#listen_addresses = 'localhost'"lan ing ngisor iki tambahake baris kaya ing ngisor iki. Where - 10.0.0.2, alamat antarmuka sampeyan.
Ing kasusku:
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. Wiwit server GitLab bakal nyambung menyang database external, iki kudu diijini ing server PostgreSQL ing file pg_hba.conf. Alamat server GitLabku yaiku 10.0.0.4.
Ayo mbukak file pg_hba.conf lan tambahake baris ing kana:
host all gitlab 10.0.0.4/24 md5
Bakal katon kaya iki:
# 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
Lan pungkasane, kita miwiti maneh layanan postgresql:
systemctl restart postgresql-12.service
Ngekspor database GitLab
Ayo gawe serep database ing server GitLab:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
Cadangan katon ing /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Ayo nyalin salinan iki menyang server PostgreSQL:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Ngimpor "internal-gitlab.sql" menyang PostgreSQL
Ngimpor database menyang PostgreSQL:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Priksa manawa database saiki ana ing PostgreSQL:
sudo -u postgres psql -l
Garis ing ngisor iki kudu katon:
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Konfigurasi GitLab
Sawise ngimpor database menyang PostgreSQL, pangguna gitlab digawe. Sampeyan kudu ngganti tembung sandhi pangguna iki.
Ngganti tembung sandhi:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ΠΠΠ ΠΠΠ¬' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE
Banjur, ing server GitLab, ing file konfigurasi /etc/gitlab/gitlab.rb, kita bakal nuduhake kabeh data saka PostgreSQL eksternal.
Ayo nggawe salinan serep file gitlab.rb:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Saiki tambahake baris iki menyang mburi file gitlab.rb:
# ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ 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'] = '******'
Simpen file /etc/gitlab/gitlab.rb lan konfigurasi ulang GitLab:
gitlab-ctl reconfigure && gitlab-ctl restart
Wis ngono wae :)
Panjaluk gedhe. Yen sampeyan menehi minus, tulis alesan ing komentar.
Source: www.habr.com