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. āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻšāĻŦā§‡, āĻ¤āĻžāĻ‡ āĻāĻŸāĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ pg_hba.conf āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° PostgreSQL āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻžāĻ° āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻšāĻ˛ 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 āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•:

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 |

āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛-āĻ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž:

sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ПАРОЛĐŦ' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE

āĻ¤āĻžāĻ°āĻĒāĻ°, āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡, āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ /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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨