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