Herkese Merhaba!
Bu yazımızda GitLab veritabanını GitLab ile birlikte kurulu olan dahili PostgreSQL'den, hali hazırda başka bir sunucuda kurulu olan harici PostgreSQL'e taşıyacağız.
NOT
Tüm eylemlerin CentOS 7.7.1908, PostgreSQL 12 ve GitLab 12.4.2-ee.0'da çalışması garanti edilir.
Ön hazırlık
Şimdiden üç şey yapalım:
1. PostgreSQL sunucusunda, güvenlik duvarına PostgreSQL bağlantı noktası 5432/TCP'ye gelen bağlantılara izin veren bir kural ekleyin.
Benim durumumda:
firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success
2. Aynı yerde, ancak postgresql.conf dosyasında, ağ arayüzünün dışarıdan gelen bağlantıları kabul etmesine izin verin. Postgresql.conf dosyasını açın, yorum yapılan satırı bulun "#listen_addresses = 'yerel ana bilgisayar'" ve altına aşağıdaki gibi bir satır ekleyin. Nerede - 10.0.0.2, arayüzünüzün adresi.
Benim durumumda:
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 sunucusu harici bir veritabanına bağlanacağından PostgreSQL sunucusunda pg_hba.conf dosyasında buna izin verilmesi gerekir. GitLab sunucu adresim 10.0.0.4.
pg_hba.conf dosyasını açıp satırı buraya ekleyelim:
host all gitlab 10.0.0.4/24 md5
Bunun gibi görünecek:
# 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
Ve son olarak postgresql servisini yeniden başlatıyoruz:
systemctl restart postgresql-12.service
GitLab veritabanını dışa aktarma
GitLab sunucusunda bir veritabanı yedeklemesi yapalım:
sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
Yedekleme /tmp'de göründü:
ls -lh
total 836K
-rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Bu kopyayı PostgreSQL sunucusuna kopyalayalım:
scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/
internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
"Internal-gitlab.sql" dosyasını PostgreSQL'e aktarma
Veritabanını PostgreSQL'e aktarın:
sudo -u postgres psql -f /tmp/internal-gitlab.sql
Veritabanının artık PostgreSQL'de olup olmadığını kontrol edin:
sudo -u postgres psql -l
Aşağıdaki satır görünmelidir:
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
GitLab'ı Yapılandırma
Veritabanını PostgreSQL'e aktardıktan sonra bir gitlab kullanıcısı oluşturuldu. Bu kullanıcının şifresini değiştirmeniz gerekiyor.
Şifreyi değiştirme:
sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD 'ПАРОЛЬ' VALID UNTIL 'infinity';"
Password for user postgres:
ALTER ROLE
Daha sonra GitLab sunucusundaki /etc/gitlab/gitlab.rb yapılandırma dosyasında harici PostgreSQL'in tüm verilerini göstereceğiz.
Gitlab.rb dosyasının yedek bir kopyasını oluşturalım:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Şimdi bu satırları gitlab.rb dosyasının sonuna ekleyin:
# Отключить встроенный 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 dosyasını kaydedin ve GitLab'ı yeniden yapılandırın:
gitlab-ctl reconfigure && gitlab-ctl restart
Bu kadar :)
Büyük istek. Eksi koyduysanız nedenini yorumlara yazın.
Kaynak: habr.com