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 = 'เจฒเฉ‹เจ•เจฒเจนเฉ‹เจธเจŸ'" เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจนเฉ‡เจ เจพเจ‚ เจตเจพเจ‚เจ— เจ‡เฉฑเจ• เจฒเจพเจˆเจจ เจœเฉ‹เฉœเฉ‹. เจ•เจฟเฉฑเจฅเฉ‡ - 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹