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

REMARQUE
Toutes les actions sont garanties pour fonctionner sur CentOS 7.7.1908, PostgreSQL 12 et GitLab 12.4.2-ee.0.
Préparation préliminaire
Nous ferons trois choses à l'avance:1. Sur le serveur PostgreSQL, ajoutez une règle au pare-feu qui autorise les connexions entrantes au port PostgreSQL 5432 / TCP.
Dans mon cas:firewall-cmd --add-service=postgresql --zone=internal --permanent success firewall-cmd --reload success
2. Au même endroit, mais dans le fichier postgresql.conf, autorisez l'interface réseau à accepter les connexions entrantes de l'extérieur. Ouvrez le fichier postgresql.conf, recherchez la ligne commentée "
#listen_addresses = 'localhost' " et ajoutez une ligne en dessous comme ci-dessous. Où est 10.0.0.2, l'adresse de votre interface.
Dans mon cas: vi /var/lib/pgsql/12/data/postgresql.conf
3. Puisque le serveur GitLab se connectera à une base de données externe, cela doit être activé sur le serveur PostgreSQL dans le fichier pg_hba.conf. L'adresse de mon serveur GitLab est 10.0.0.4.
Ouvrez le fichier pg_hba.conf et ajoutez-y la ligne: host all gitlab 10.0.0.4/24 md5
Cela ressemblera à ceci:
Enfin, redémarrez le service postgresql: systemctl restart postgresql-12.service
Exporter la base de données GitLab
Exécutons, sur le serveur GitLab, la sauvegarde de la base de données: 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
Copiez cette copie sur le serveur PostgreSQL: scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/ internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Importez "internal-gitlab.sql" dans PostgreSQL
Importez la base de données dans PostgreSQL: sudo -u postgres psql -f /tmp/internal-gitlab.sql
Vérifiez que la base de données est maintenant dans PostgreSQL: sudo -u postgres psql -l
La ligne suivante doit apparaître: gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Configuration de GitLab
Après l'importation de la base de données dans PostgreSQL, l'utilisateur gitlab a été créé. Vous devez modifier le mot de passe de cet utilisateur.
Changer le mot de passe: sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '' VALID UNTIL 'infinity';" Password for user postgres: ALTER ROLE
Ensuite sur le serveur GitLab dans le fichier de configuration /etc/gitlab/gitlab.rb nous allons spécifier toutes les données du PostgreSQL externe.
Faites une copie de sauvegarde du fichier gitlab.rb: cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Maintenant, à la fin du fichier gitlab.rb, ajoutez ces lignes:
Enregistrez le fichier /etc/gitlab/gitlab.rb et reconfigurez GitLab: gitlab-ctl reconfigure && gitlab-ctl restart
C'est tout :)
Une grosse demande. Si vous mettez un moins, écrivez la raison dans le commentaire.