ื”ื’ื™ืจื” ืฉืœ ืžืกื“ ื ืชื•ื ื™ื ืฉืœ 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 ื™ืชื—ื‘ืจ ืœืžืกื“ ื ืชื•ื ื™ื ื—ื™ืฆื•ื ื™, ื™ืฉ ืœืืคืฉืจ ื–ืืช ื‘ืฉืจืช 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”