Reposição do Servidor LinodeGitlab

Version Date Notes By
0.1 2020-01-24 Inital commit jfm

Servidor

Tendo em vista a funcionalidade One-Click Apps adicionada recentemente pela Linode, e para facilitar o restauro, vamos usar este metodo como oficial para restauro deste servidor

Visto que o download do backup pode demorar um pouco,é aconselhado fazer o download antes de começar a criação/configuração da máquina.

IMPORTANTE: Este método só funciona corretamente se a versão instalada é semelhante à versão original.

Estes passos criam uma VM com a versão mais recente do Gitlab instalada.

  1. Aceder ao Linode e escolher a opção Marketplace
  2. Em Select App, escolher a opção Gitlab-Latest
  3. Em GitLab - Latest Options preencher os dados necessário:
Campo Valor Notas
Domain gitlab.wemake.pt Em caso de uma reposição de testes, usar https://gitlab-test.wemake.pt
Select an Image Debian 9
Region Frankfurt, DE
Linode Plan Linode 4GB
Linode Label LinodeGitlab Em caso de uma reposição de teste, deixar o valor por defeito ou definir outro valor qualquer
Add Tags
Root Password Check Bitwarden for entry: Linode - SSH (All Servers) Em caso de uma reposição de teste, usar uma password qualquer, desde que cumpra os requisitos da politica de segurança da wemake
SSH Keys Choose User wemake (this is for root user) Em caso de uma reposição de teste pode ficar em branco
  1. Clicar em Create e aguardar até ficar concluído.

Geralmente a VM fica disponível para acesso SSH ainda antes do gitlab estar instalado, pelo que é necessário esperar um pouco. Usar a opção LISH Console da VM para seguir a instalação

  1. Verificar qual o IP externo da VM e mudar o subdomínio (gitlab.wemake.pt) para esse IP
  2. Aguardar até que o subdomínio fique associados ao IP
  3. Aceder a https://gilab.wemake.pt e verificar se está tudo OK

SSL

A versão atual do gitlab gere automaticamente os certificados com o letsencrypt, no entanto as configurações SSL que temos atualmente no gitlab de produção, estão configuradas para usar o nginx. No caso de uma reposição, deve-se adiconar as seguintes configurações no ficheiro /etc/gitlab/gitlab.rb

external_url 'https://gitlab.wemake.pt' # ou https://gitlab-test.wemake.pt

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['jorge.martins@wemake.pt']

letsencrypt['auto_renew_hour'] = "01"
letsencrypt['auto_renew_minute'] = "0"
letsencrypt['auto_renew_day_of_month'] = "*/7"

...

# Descomentar ou alterar as configurações de backup
gitlab_rails['manage_backup_path'] = false
gitlab_rails['backup_path'] = "/backups/gitlab/"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800

# Descomentar ou alterar as configurações de backup
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "notificacoes@wemake.pt"
gitlab_rails['smtp_password'] = "<consultar password no bitwarden>"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'notificacoes@wemake.pt'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@wemake.pt'

e remover as configurações:

nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }"

nginx['enable'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.wemake.pt/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.wemake.pt/privkey.pem"
nginx['redirect_http_to_https'] = true

...
pages_nginx['enable'] = true;
pages_nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.wemake.pt/fullchain.pem"
pages_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.wemake.pt/privkey.pem"

Reler a configuração: sudo gitlab-ctl reconfigure

Depois de re-configuração, o gitlab tem de iniciar todos os serviços associados pelo que pode demorar um pouco e o acesso estar a dar erro 502

Restauro do Backup

  1. Obter a cópia mais recente dos backups (ver Backup Plan)
  2. Copiar para uma pasta no novo servidor
  3. Seguir as instruções na documentação oficial

Rever sempre as configurações do ficheiro /etc/gitlab/gitlab.rb para garantir que está tudo OK (Exemplo: Caminho dos backups)

Outras configurações

Depois do servidor reposto, é necessário fazer as configurações habituais, backups, wazuh, etc... Ver procedimento nos respetivos documentos.

Found errors? Think you can improve this documentation? Simply click the Edit link at the top of the page, and then the icon on Github to make your changes.