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.
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