Halo semuanya!
Pada artikel ini, kami akan memigrasi database GitLab dari internal PostgreSQL, yang diinstal dengan GitLab, ke PostgreSQL eksternal, yang sudah diinstal pada server lain.

CATATAN
Semua tindakan dijamin bekerja pada CentOS 7.7.1908, PostgreSQL 12 dan GitLab 12.4.2-ee.0.
Persiapan awal
Kami akan melakukan tiga hal di muka:1. Pada server PostgreSQL, tambahkan aturan ke firewall yang memungkinkan koneksi masuk ke port PostgreSQL 5432 / TCP.
Dalam kasus saya:firewall-cmd --add-service=postgresql --zone=internal --permanent success firewall-cmd --reload success
2. Di tempat yang sama, tetapi dalam file postgresql.conf, izinkan antarmuka jaringan menerima koneksi masuk dari luar. Buka file postgresql.conf, cari baris komentar "
#listen_addresses = 'localhost' " dan tambahkan baris di bawahnya. Di mana 10.0.0.2, alamat antarmuka Anda.
Dalam kasus saya: vi /var/lib/pgsql/12/data/postgresql.conf
3. Karena server GitLab akan terhubung ke database eksternal, ini harus diaktifkan pada server PostgreSQL di file pg_hba.conf. Alamat server GitLab saya adalah 10.0.0.4.
Buka file pg_hba.conf dan tambahkan baris di sana: host all gitlab 10.0.0.4/24 md5
Ini akan terlihat seperti ini:
Terakhir, restart layanan postgresql: systemctl restart postgresql-12.service
Ekspor Basis Data GitLab
Mari kita jalankan, di server GitLab, mencadangkan basis data: sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
Cadangan muncul di / tmp: ls -lh total 836K -rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Salin salinan ini ke server PostgreSQL: scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/ internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Impor "internal-gitlab.sql" ke PostgreSQL
Impor basis data ke PostgreSQL: sudo -u postgres psql -f /tmp/internal-gitlab.sql
Periksa apakah databasenya sekarang ada di PostgreSQL: sudo -u postgres psql -l
Baris berikut akan muncul: gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Mengkonfigurasi GitLab
Setelah mengimpor database ke PostgreSQL, pengguna gitlab dibuat. Anda perlu mengubah kata sandi untuk pengguna ini.
Ubah kata sandi: sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '' VALID UNTIL 'infinity';" Password for user postgres: ALTER ROLE
Kemudian pada server GitLab dalam file konfigurasi /etc/gitlab/gitlab.rb kita akan menentukan semua data PostgreSQL eksternal.
Buat salinan cadangan file gitlab.rb: cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Sekarang di akhir file gitlab.rb, tambahkan baris ini:
Simpan file /etc/gitlab/gitlab.rb dan konfigurasi ulang GitLab: gitlab-ctl reconfigure && gitlab-ctl restart
Itu saja :)
Permintaan besar. Jika Anda memberi minus, tulis alasannya di komentar.