Μετεγκατάσταση της βάσης δεδομένων 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, βρείτε τη γραμμή που σχολιάστηκε "#listen_addresses = 'localhost'" και κάτω από αυτό προσθέστε μια γραμμή όπως παρακάτω. Όπου - 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 θα συνδεθεί σε μια εξωτερική βάση δεδομένων, αυτό πρέπει να επιτρέπεται στον διακομιστή PostgreSQL στο αρχείο pg_hba.conf. Η διεύθυνση διακομιστή μου 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

Εισαγωγή "internal-gitlab.sql" στο PostgreSQL

Εισαγάγετε τη βάση δεδομένων στο 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

Προσθέστε ένα σχόλιο