ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ!
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π±Π°Π·Ρ 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 Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΈΡΡΡΡ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±Π°Π·Π΅, ΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ 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
ΠΠΎΡ ΠΈ Π²ΡΡ π
ΠΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΡΠ±Π°. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΡΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com