Migration de la base de données GitLab vers PostgreSQL externe

Bonjour à tous !

Dans cet article, nous migrerons la base de données GitLab de PostgreSQL interne, installé avec GitLab, vers PostgreSQL externe, déjà installé sur un autre serveur.

Migration de la base de données GitLab vers PostgreSQL externe

REMARQUE
Toutes les actions fonctionnent de manière garantie sur CentOS 7.7.1908, PostgreSQL 12 et GitLab 12.4.2-ee.0.

Préparation préalable

Nous allons d'abord réaliser trois actions :

1. Sur le serveur Ajoutez une règle dans le pare-feu de PostgreSQL pour autoriser les connexions entrantes sur le port PostgreSQL 5432/TCP.

Dans mon cas :

firewall-cmd --add-service=postgresql --zone=internal --permanent
success
firewall-cmd --reload
success

2. Toujours dans le fichier postgresql.conf, autorisez l'interface réseau à accepter les connexions entrantes. Ouvrez le fichier postgresql.conf, trouvez la ligne commentée «#listen_addresses = ‘localhost’» et ajoutez la ligne comme ci-dessous. Où — 10.0.0.2, l'adresse de votre interface.

Dans mon cas :

vi /var/lib/pgsql/12/data/postgresql.conf
# - Paramètres de connexion -

#listen_addresses = 'localhost'         # quelles adresses IP écouter;
listen_addresses = 'localhost, 10.0.0.2'
                                        # liste d'adresses séparées par des virgules;

3. Puisque le serveur GitLab se connectera à la base externe, il faut le permettre dans le fichier pg_hba.conf. L'adresse de mon serveur GitLab est 10.0.0.4. le serveur Ouvrons le fichier pg_hba.conf et ajoutons la ligne suivante :

host all gitlab 10.0.0.4/24 md5

Cela devrait apparaître comme suit :

Et enfin, redémarrons le service postgresql :

# 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

systemctl restart postgresql-12.service

Exportation de la base de données GitLab

Effectuons, sur le serveur GitLab, une sauvegarde de la base :

sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql

La sauvegarde est apparue dans /tmp :

ls -lh total 836K -rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql

Copions cette sauvegarde sur le serveur PostgreSQL :

scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/ internal-gitlab.sql 100% 835KB 50.0MB/s 00:00

Importation de «internal-gitlab.sql» dans PostgreSQL

Importons la base dans PostgreSQL :

sudo -u postgres psql -f /tmp/internal-gitlab.sql

Vérifiez que la base est maintenant dans PostgreSQL :

sudo -u postgres psql -l

Une ligne comme celle-ci devrait apparaître :

gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

Configuration de GitLab

Après l'importation de la base dans PostgreSQL, l'utilisateur gitlab a été créé. Vous devez changer le mot de passe de cet utilisateur.

Changeons le mot de passe :

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

Ensuite, sur le serveur GitLab, dans le fichier de configuration /etc/gitlab/gitlab.rb, indiquez toutes les informations concernant le PostgreSQL externe.

Faisons une sauvegarde du fichier gitlab.rb :

cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig

Maintenant, ajoutons ces lignes à la fin du fichier gitlab.rb :

Enregistrons le fichier /etc/gitlab/gitlab.rb et reconfigurons GitLab :

# Отключить встроенный 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'] = '******'

gitlab-ctl reconfigure && gitlab-ctl restart

Voilà, c'est tout 🙂

C'est tout 🙂

Nous vous serions reconnaissants. Si vous avez mis un moins, veuillez écrire la raison dans les commentaires.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster