Mudo cronfa ddata GitLab i PostgreSQL allanol

Helo bawb!

Yn yr erthygl hon, byddwn yn mudo cronfa ddata GitLab o PostgreSQL mewnol, sydd wedi'i osod gyda GitLab, i PostgreSQL allanol, sydd eisoes wedi'i osod ar weinydd arall.

Mudo cronfa ddata GitLab i PostgreSQL allanol

SYLWCH
Mae pob cam gweithredu yn sicr o weithio ar CentOS 7.7.1908, PostgreSQL 12 a GitLab 12.4.2-ee.0.

Paratoi rhagarweiniol

Gadewch i ni wneud tri pheth ymlaen llaw:

1. Ar weinydd PostgreSQL, ychwanegwch reol i'r wal dΓ’n sy'n caniatΓ‘u cysylltiadau sy'n dod i mewn i borthladd PostgreSQL 5432 / TCP.

Yn fy achos i:

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

2. Yn yr un lle, ond yn y ffeil postgresql.conf, caniatewch i'r rhyngwyneb rhwydwaith dderbyn cysylltiadau sy'n dod i mewn o'r tu allan. Agorwch y ffeil postgresql.conf, darganfyddwch y llinell allan y gwnaed sylwadau arni "#listen_addresses = 'localhost'" ac oddi tano ychwanegwch linell fel isod. Lle - 10.0.0.2, cyfeiriad eich rhyngwyneb.

Yn fy achos i:

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. Gan y bydd y gweinydd GitLab yn cysylltu Γ’ chronfa ddata allanol, rhaid caniatΓ‘u hyn ar y gweinydd PostgreSQL yn y ffeil pg_hba.conf. Fy nghyfeiriad gweinydd GitLab yw 10.0.0.4.

Gadewch i ni agor y ffeil pg_hba.conf ac ychwanegu'r llinell yno:

host    all             gitlab               10.0.0.4/24             md5

Bydd yn edrych fel hyn:

# 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

Ac yn olaf, rydym yn ailgychwyn y gwasanaeth postgresql:

systemctl restart postgresql-12.service

Allforio cronfa ddata GitLab

Gadewch i ni berfformio copi wrth gefn cronfa ddata ar y gweinydd GitLab:

sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql

Ymddangosodd y copi wrth gefn yn / tmp:

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

Gadewch i ni gopΓ―o'r copi hwn i'r gweinydd PostgreSQL:

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

Mewnforio "internal-gitlab.sql" i PostgreSQL

Mewnforio'r gronfa ddata i PostgreSQL:

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

Gwiriwch fod y gronfa ddata bellach yn PostgreSQL:

sudo -u postgres psql -l

Dylai'r llinell ganlynol ymddangos:

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

Ffurfweddu GitLab

Ar Γ΄l mewnforio'r gronfa ddata i PostgreSQL, crΓ«wyd defnyddiwr gitlab. Mae angen i chi newid cyfrinair y defnyddiwr hwn.

Newid y cyfrinair:

sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ΠŸΠΠ ΠžΠ›Π¬' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE

Yna, ar y gweinydd GitLab, yn y ffeil ffurfweddu /etc/gitlab/gitlab.rb, byddwn yn nodi holl ddata'r PostgreSQL allanol.

Gadewch i ni wneud copi wrth gefn o'r ffeil gitlab.rb:

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

Nawr ychwanegwch y llinellau hyn at ddiwedd y ffeil 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'] = '******'

Arbedwch y ffeil /etc/gitlab/gitlab.rb ac ail-ffurfweddwch GitLab:

gitlab-ctl reconfigure && gitlab-ctl restart

Dyna i gyd :)

Cais mawr. Os rhowch minws, ysgrifennwch y rheswm yn y sylwadau.

Ffynhonnell: hab.com

Ychwanegu sylw