GitLab డేటాబేస్ బాహ్య PostgreSQLకి తరలింపు

హలో అందరికీ!

ఈ కథనంలో, మేము GitLab డేటాబేస్‌ను GitLabతో ఇన్‌స్టాల్ చేసిన అంతర్గత PostgreSQL నుండి ఇప్పటికే మరొక సర్వర్‌లో ఇన్‌స్టాల్ చేయబడిన బాహ్య 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 = 'లోకల్ హోస్ట్'"మరియు దాని కింద దిగువన ఒక పంక్తిని జోడించండి. ఎక్కడ - 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

చివరకు, మేము 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

అంతే :)

పెద్ద అభ్యర్థన. మీరు మైనస్‌ని ఉంచినట్లయితే, వ్యాఖ్యలలో కారణాన్ని వ్రాయండి.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి