Migrasi database GitLab ka PostgreSQL éksternal

Hello dulur!

Dina artikel ieu, urang bakal migrasi database GitLab tina PostgreSQL internal, anu dipasang sareng GitLab, ka PostgreSQL éksternal, anu parantos dipasang dina server anu sanés.

Migrasi database GitLab ka PostgreSQL éksternal

CATETAN
Sadaya tindakan dijamin tiasa dianggo dina CentOS 7.7.1908, PostgreSQL 12 sareng GitLab 12.4.2-ee.0.

Persiapan awal

Hayu urang ngalakukeun tilu hal sateuacanna:

1. Dina server PostgreSQL, tambahkeun aturan kana firewall anu ngamungkinkeun sambungan asup ka port PostgreSQL 5432 / TCP.

Dina kasus kuring:

firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success

2. Di tempat anu sarua, tapi dina file postgresql.conf, ngidinan panganteur jaringan pikeun nampa sambungan asup ti luar. Buka file postgresql.conf, panggihan baris commented kaluar "#listen_addresses = 'localhost'"Sareng handapeun éta tambahkeun garis sapertos di handap ieu. Dimana - 10.0.0.2, alamat panganteur Anjeun.

Dina kasus kuring:

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. Kusabab server GitLab bakal nyambung ka database éksternal, ieu kudu diwenangkeun dina server PostgreSQL dina file pg_hba.conf. Alamat server GitLab abdi 10.0.0.4.

Hayu urang muka file pg_hba.conf sareng tambahkeun garisna di dinya:

host    all             gitlab               10.0.0.4/24             md5

Ieu bakal kasampak kawas kieu:

# 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

Tungtungna, urang balikan deui jasa postgresql:

systemctl restart postgresql-12.service

Ékspor database GitLab

Hayu urang ngalakukeun cadangan database dina 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 mucunghul dina /tmp:

ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql

Hayu urang nyalin salinan ieu ka server PostgreSQL:

scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql                                                                               100%  835KB  50.0MB/s   00:00

Importing "internal-gitlab.sql" kana PostgreSQL

Impor pangkalan data kana PostgreSQL:

sudo -u postgres psql -f /tmp/internal-gitlab.sql

Pariksa yén pangkalan data ayeuna aya dina PostgreSQL:

sudo -u postgres psql -l

Garis di handap ieu kedah muncul:

gitlabhq_production | gitlab   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

Ngonpigurasikeun GitLab

Saatos ngimpor pangkalan data kana PostgreSQL, pangguna gitlab didamel. Anjeun kudu ngarobah sandi pamaké ieu.

Ngarobah kecap akses:

sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ПАРОЛЬ' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE

Teras, dina server GitLab, dina file konfigurasi /etc/gitlab/gitlab.rb, kami bakal nunjukkeun sadaya data tina PostgreSQL éksternal.

Hayu urang ngadamel salinan cadangan tina file gitlab.rb:

cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig

Ayeuna tambahkeun garis ieu ka tungtung 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 sareng reconfigure GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

Éta hungkul :)

pamundut badag. Upami anjeun nempatkeun minus, tulis alesanana dina koméntar.

sumber: www.habr.com

Tambahkeun komentar