सभी को नमस्कार!
इस लेख में, हम 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