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-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success

2. उसी स्थान पर, लेकिन postgresql.conf फ़ाइल में, नेटवर्क इंटरफ़ेस को बाहर से आने वाले कनेक्शन स्वीकार करने की अनुमति दें। Postgresql.conf फ़ाइल खोलें, टिप्पणी की गई पंक्ति ढूंढें "#सुनो_पता = 'लोकलहोस्ट'" और इसके नीचे नीचे की तरह एक पंक्ति जोड़ें। कहा पे - 10.0.0.2, आपके इंटरफ़ेस का पता।

मेरे मामले में:

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

और अंत में, हम पोस्टग्रेस्क्ल सेवा को पुनरारंभ करते हैं:

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 में "आंतरिक-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

बस इतना ही :)

बड़ा अनुरोध. यदि आप माइनस लगाते हैं तो कमेंट में कारण लिखें।

स्रोत: www.habr.com

एक टिप्पणी जोड़ें