Olá pessoal!
Neste artigo, migraremos o banco de dados GitLab do PostgreSQL interno, instalado com o GitLab, para o PostgreSQL externo, que já está instalado em outro servidor.

NOTA
Todas as ações são garantidas para funcionar no CentOS 7.7.1908, PostgreSQL 12 e GitLab 12.4.2-ee.0.
Preparação preliminar
Faremos três coisas com antecedência:1. No servidor PostgreSQL, adicione uma regra ao firewall que permita conexões de entrada à porta PostgreSQL 5432 / TCP.
No meu caso:firewall-cmd --add-service=postgresql --zone=internal --permanent success firewall-cmd --reload success
2. No mesmo local, mas no arquivo postgresql.conf, permita que a interface de rede aceite conexões de entrada de fora. Abra o arquivo postgresql.conf, localize a linha comentada "
#listen_addresses = 'localhost' " e adicione uma linha abaixo, como abaixo. Onde é 10.0.0.2, o endereço da sua interface.
No meu caso: vi /var/lib/pgsql/12/data/postgresql.conf
3. Como o servidor GitLab se conectará a um banco de dados externo, isso deve ser ativado no servidor PostgreSQL no arquivo pg_hba.conf. O endereço do meu servidor GitLab é 10.0.0.4.
Abra o arquivo pg_hba.conf e adicione a linha lá: host all gitlab 10.0.0.4/24 md5
Ficará assim:
Por fim, reinicie o serviço postgresql: systemctl restart postgresql-12.service
Exportar banco de dados GitLab
Vamos executar, no servidor GitLab, fazendo backup do banco de dados: sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
O backup apareceu em / tmp: ls -lh total 836K -rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Copie esta cópia para o servidor PostgreSQL: scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/ internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Importe "internal-gitlab.sql" para o PostgreSQL
Importe o banco de dados para o PostgreSQL: sudo -u postgres psql -f /tmp/internal-gitlab.sql
Verifique se o banco de dados está agora no PostgreSQL: sudo -u postgres psql -l
A seguinte linha deve aparecer: gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Configurando o GitLab
Após importar o banco de dados para o PostgreSQL, o usuário do gitlab foi criado. Você precisa alterar a senha deste usuário.
Alterar senha: sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '' VALID UNTIL 'infinity';" Password for user postgres: ALTER ROLE
Em seguida, no servidor GitLab no arquivo de configuração /etc/gitlab/gitlab.rb, especificaremos todos os dados do PostgreSQL externo.
Faça uma cópia de backup do arquivo gitlab.rb: cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Agora, no final do arquivo gitlab.rb, adicione estas linhas:
Salve o arquivo /etc/gitlab/gitlab.rb e reconfigure o GitLab: gitlab-ctl reconfigure && gitlab-ctl restart
Isso é tudo :)
Um grande pedido. Se você colocar um sinal de menos, escreva o motivo no comentário.