рд╣реЕрд▓реЛ рдкреНрд░рддреНрдпреЗрдХрдЬрдг!
рдпрд╛ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА 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