GitLab ဒေတာဘေ့စ်ကို ပြင်ပ PostgreSQL သို့ ပြောင်းရွှေ့ခြင်း။

မင်္ဂလာပါလူတိုင်းအတွက်!

ဤဆောင်းပါးတွင်၊ ကျွန်ုပ်တို့သည် GitLab ဖြင့် ထည့်သွင်းထားသည့် အတွင်းပိုင်း PostgreSQL မှ GitLab ဒေတာဘေ့စ်ကို အခြားဆာဗာတွင် ထည့်သွင်းပြီးဖြစ်သည့် ပြင်ပ PostgreSQL သို့ ရွှေ့ပြောင်းပါမည်။

GitLab ဒေတာဘေ့စ်ကို ပြင်ပ PostgreSQL သို့ ပြောင်းရွှေ့ခြင်း။

မှတ်စု
လုပ်ဆောင်ချက်များအားလုံးကို CentOS 7.7.1908၊ PostgreSQL 12 နှင့် GitLab 12.4.2-ee.0 တွင် အလုပ်လုပ်ရန် အာမခံပါသည်။

ကြိုတင်ပြင်ဆင်မှု

သုံးခုကို ကြိုလုပ်ကြည့်ရအောင်။

1. PostgreSQL ဆာဗာတွင်၊ PostgreSQL ပို့တ် 5432/TCP သို့ အဝင်ချိတ်ဆက်မှုများကို ခွင့်ပြုသည့် firewall တွင် စည်းကမ်းတစ်ခုထည့်ပါ။

ငါ့ကိစ္စမှာတော့:

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

2. တစ်နေရာတည်းတွင်၊ သို့သော် postgresql.conf ဖိုင်တွင်၊ ပြင်ပမှအဝင်ချိတ်ဆက်မှုများကို လက်ခံရန် ကွန်ရက်အင်တာဖေ့စ်ကို ခွင့်ပြုပါ။ postgresql.conf ဖိုင်ကိုဖွင့်ပါ၊ မှတ်ချက်ပေးထားသောစာကြောင်းကိုရှာပါ။#listen_addresses = 'ဒေသခံအိမ်ရှင်'" ပြီးလျှင် အောက်ဖော်ပြပါပုံအတိုင်း စာကြောင်းတစ်ခုထည့်ပါ။ ဘယ်မှာ - 10.0.0.2, သင့် interface ၏လိပ်စာ။

ငါ့ကိစ္စမှာတော့:

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. GitLab ဆာဗာသည် ပြင်ပဒေတာဘေ့စ်သို့ ချိတ်ဆက်မည်ဖြစ်သောကြောင့်၊ ၎င်းကို pg_hba.conf ဖိုင်ရှိ PostgreSQL ဆာဗာတွင် ခွင့်ပြုရပါမည်။ ကျွန်ုပ်၏ GitLab ဆာဗာလိပ်စာသည် 10.0.0.4 ဖြစ်သည်။

pg_hba.conf ဖိုင်ကိုဖွင့်ပြီး ထိုနေရာတွင် စာကြောင်းထည့်ကြပါစို့။

host    all             gitlab               10.0.0.4/24             md5

ဒီဟာကကြည့်ရလိမ့်မယ်

# 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

နောက်ဆုံးအနေနှင့်၊ ကျွန်ုပ်တို့သည် postgresql ဝန်ဆောင်မှုကို ပြန်လည်စတင်သည်-

systemctl restart postgresql-12.service

GitLab ဒေတာဘေ့စ်ကို ထုတ်ယူခြင်း။

GitLab ဆာဗာတွင် ဒေတာဘေ့စ် အရန်ကူးယူကြပါစို့။

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

အရန်သိမ်းသည် /tmp: တွင်ပေါ်လာသည်

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

ဤမိတ္တူကို PostgreSQL ဆာဗာသို့ ကူးယူကြပါစို့။

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

PostgreSQL သို့ "internal-gitlab.sql" ကို တင်သွင်းနေပါသည်။

ဒေတာဘေ့စ်ကို PostgreSQL တွင် ထည့်သွင်းပါ-

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

ဒေတာဘေ့စကို ယခု PostgreSQL တွင် ရှိမရှိ စစ်ဆေးပါ။

sudo -u postgres psql -l

အောက်ပါစာကြောင်းပေါ်လာသင့်သည်-

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

GitLab ကို ပြင်ဆင်ခြင်း

ဒေတာဘေ့စ်ကို PostgreSQL သို့ တင်သွင်းပြီးနောက်၊ gitlab အသုံးပြုသူတစ်ဦးကို ဖန်တီးခဲ့သည်။ သင်သည် ဤအသုံးပြုသူ၏ စကားဝှက်ကို ပြောင်းလဲရန် လိုအပ်သည်။

စကားဝှက်ကို ပြောင်းလဲခြင်း-

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

ထို့နောက်၊ GitLab ဆာဗာတွင်၊ ဖွဲ့စည်းမှုဖိုင် /etc/gitlab/gitlab.rb တွင်၊ ကျွန်ုပ်တို့သည် ပြင်ပ PostgreSQL ၏ဒေတာအားလုံးကို ညွှန်ပြပါမည်။

gitlab.rb ဖိုင်ကို အရန်ကူးယူကြပါစို့။

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

ယခု 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'] = '******'

ဖိုင်ကို /etc/gitlab/gitlab.rb သိမ်းဆည်းပြီး GitLab ကို ပြန်လည်ပြင်ဆင်ပါ။

gitlab-ctl reconfigure && gitlab-ctl restart

ဒါပါပဲ :)

ကြီးမားသောတောင်းဆိုမှု။ အနုတ်လက္ခဏာပြရင် အကြောင်းပြချက်ကို comment မှာရေးပေးပါ။

source: www.habr.com

မှတ်ချက် Add