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 เดธเต†เตผเดตเตผ เด’เดฐเต เดฌเดพเดนเตเดฏ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ, 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•