Sveiki visiem!
Šajā rakstā mēs migrēsim GitLab datu bāzi no iekšējā PostgreSQL, kas ir instalēta kopā ar GitLab, uz ārējo PostgreSQL, kas jau ir instalēta citā serverī.
PIEZĪME
Tiek garantēts, ka visas darbības darbosies operētājsistēmās CentOS 7.7.1908, PostgreSQL 12 un GitLab 12.4.2-ee.0.
Iepriekšēja sagatavošana
Izdarīsim trīs lietas iepriekš:
1. PostgreSQL serverī pievienojiet ugunsmūrim kārtulu, kas atļauj ienākošos savienojumus ar PostgreSQL portu 5432/TCP.
Manā gadījumā:
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success
2. Tajā pašā vietā, bet failā postgresql.conf, ļaujiet tīkla interfeisam pieņemt ienākošos savienojumus no ārpuses. Atveriet failu postgresql.conf, atrodiet komentēto rindiņu "#listen_addresses = 'localhost'" un zem tā pievienojiet rindiņu, piemēram, zemāk. Kur - 10.0.0.2, jūsu interfeisa adrese.
Manā gadījumā:
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. Tā kā GitLab serveris izveidos savienojumu ar ārēju datu bāzi, tas ir jāatļauj PostgreSQL serverī failā pg_hba.conf. Mana GitLab servera adrese ir 10.0.0.4.
Atveram failu pg_hba.conf un pievienosim tur rindiņu:
host all gitlab 10.0.0.4/24 md5
Tas izskatīsies šādi:
# 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
Visbeidzot, mēs restartējam pakalpojumu postgresql:
systemctl restart postgresql-12.service
GitLab datu bāzes eksportēšana
Veiksim datu bāzes dublēšanu GitLab serverī:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
Dublējums parādījās mapē /tmp:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Kopēsim šo kopiju uz PostgreSQL serveri:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
"Internal-gitlab.sql" importēšana programmā PostgreSQL
Importējiet datu bāzi programmā PostgreSQL:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Pārbaudiet, vai datu bāze tagad atrodas PostgreSQL:
sudo -u postgres psql -l
Jāparādās šādai rindai:
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
GitLab konfigurēšana
Pēc datu bāzes importēšanas PostgreSQL tika izveidots gitlab lietotājs. Jums ir jāmaina šī lietotāja parole.
Paroles maiņa:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ПАРОЛЬ' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE
Pēc tam GitLab serverī konfigurācijas failā /etc/gitlab/gitlab.rb mēs norādīsim visus ārējā PostgreSQL datus.
Izveidosim faila gitlab.rb dublējumkopiju:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Tagad pievienojiet šīs rindas faila gitlab.rb beigām:
# Отключить встроенный 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'] = '******'
Saglabājiet failu /etc/gitlab/gitlab.rb un atkārtoti konfigurējiet GitLab:
gitlab-ctl reconfigure && gitlab-ctl restart
Tas ir viss :)
Liels lūgums. Ja ieliekat mīnusu, ierakstiet iemeslu komentāros.
Avots: www.habr.com