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 = '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 рд╕рд░реНрд╡рд░ рдПрдХ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ 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 рдореЗрдВ "рдЖрдВрддрд░рд┐рдХ- 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 рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЧрд┐рдЯрд▓реИрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдкрдХреЛ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ:

 sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '' VALID UNTIL 'infinity';" Password for user postgres: ALTER ROLE 

рдлрд┐рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /etc/gitlab/gitlab.rb рдореЗрдВ GitLab рд╕рд░реНрд╡рд░ рдкрд░ рд╣рдо рдмрд╛рд╣рд░реА 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 

рд╡рд╣ рд╕рдм рд╣реИ :)

рдПрдХ рдмрдбрд╝рд╛ рдЕрдиреБрд░реЛрдзред рдпрджрд┐ рдЖрдк рдорд╛рдЗрдирд╕ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХрд╛рд░рдг рд▓рд┐рдЦреЗрдВред

Source: https://habr.com/ru/post/hi476258/


All Articles