ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ!
In hoc articulo migrabimus datorum GitLab ab interno PostgreSQL, qui cum GitLab inauguratus est, ad externum PostgreSQL, quod iam in alio servo constitutum est.
NOTA
Omnes actiones in CentOS 7.7.1908 praestantur, PostgreSQL 12 et GitLab 12.4.2-ee.0.
antecessum praeparatio
Tria faciamus ante:
1. De servo PostgreSQL, regulam adde ad firewall quod permittit hospites advenientes ad portum PostgreSQL 5432/TCP.
In mea causa;
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success
2. In eodem loco, sed in fasciculo postgresql.conf, sino retis interfaciei hospites ab extra advenientes accipere. Aperi fasciculum postgresql.conf, commentationem inveni in linea "#listen_addresses = 'localhost'" et sub eo adde lineam sicut infra. Ubi - 10.0.0.2, oratio instrumenti tui.
In mea causa;
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. Cum servo GitLab cum externo datorum coniunget, hoc permitti debet in tabella PostgreSQL servo in pagina pg_hba.conf. Oratio mea GitLab servo 10.0.0.4.
Pg_hba.conf tabellam aperiamus et ibi lineam adde:
host all gitlab 10.0.0.4/24 md5
Hoc sic erit:
# 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
Et tandem sileo officium postgresql sumus;
systemctl restart postgresql-12.service
GitLab database educendi
Praestare database tergum in GitLab servo:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
Tergum apparuit in /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Exemplar hoc exemplum scriptori ad PostgreSQL servo:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
importans "internum-gitlab.sql" in PostgreSQL
In PostgreSQL datorum importare:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Reprehendo quod nunc database in PostgreSQL est:
sudo -u postgres psql -l
Sequentia lineae compareant;
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Vestibulum GitLab
Invectio datorum in PostgreSQL, usor gitlab creatus est. Opus est tesseram huius usoris mutare.
Tesseras mutantur:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ΠΠΠ ΠΠΠ¬' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE
Deinde, in servo GitLab, in configuration file /etc/gitlab/gitlab.rb, omnia indicia externi PostgreSQL indicabimus.
Faciamus tergum exemplum fasciculi gitlab.rb:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Nunc has lineas ad finem fasciculi gitlab.rb adde:
# ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ 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'] = '******'
Serva tabella /etc/gitlab/gitlab.rb et reconfigure GitLab:
gitlab-ctl reconfigure && gitlab-ctl restart
Id omne :)
Magna postulatio. Si minus, scribe rationem in comment.
Source: www.habr.com