Paglipat ng database ng GitLab sa panlabas na PostgreSQL

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.

Paglipat ng database ng GitLab sa panlabas na PostgreSQL

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

Magdagdag ng komento