Como instalar o GitLab Community Edition (CE) 11.x no Debian 9

Você está aqui:
Tempo estimado de leitura: 4 min

Desde que o GitHub foi adquirido pela Microsoft, muitos desenvolvedores planejaram migrar seus próprios repositórios de código do github.com para uma solução auto-hospedada alternativa. O GitLab Community Edition (CE) é a escolha mais comum.

Como uma solução sofisticada e flexível, o GitLab CE pode ser implantado usando vários métodos, mas somente o método oficialmente recomendado, a instalação do pacote Omnibus, será abordado neste documento.

Pré-requisitos

  • Uma nova instância do servidor Site & Site Debian 9 x64 com pelo menos 4 GB de memória. Recomenda-se 8 GB ou mais para servir até 100 usuários. Diga que seu endereço IPv4 é 203.0.113.1.
  • Um usuário sudo .
  • Um domínio gitlab.example.comsendo apontado para a instância mencionada acima.

Nota: Ao implementar em sua própria instância do servidor, certifique-se de substituir todos os valores de exemplo pelos reais.

Etapa 1: executar tarefas básicas para hospedar o GitLab CE

Acione um terminal SSH e faça login na sua instância do servidor Debian 9 x64 como um usuário sudo.

Adicione uma partição swap e ajuste a configuração de swappiness

Ao implantar o GitLab CE 11.x em uma máquina com 4 GB de memória, é necessário configurar uma partição de swap de 4 GB para um bom funcionamento.

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

Nota: Se você estiver usando um tamanho de servidor diferente, o tamanho da partição de troca poderá variar.

Para propósitos de desempenho do sistema, é recomendado configurar o swappiness do kernel para um valor baixo como 10:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness

A saída do catcomando será 10.

Configurar o nome do host da máquina e o nome de domínio totalmente qualificado (FQDN)

Use os seguintes comandos para configurar um nome de host gitlab, e um FQDN gitlab.example.com, para a máquina:

sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts

Você pode confirmar os resultados:

hostname
hostname -f

Configurar regras de firewall

Configurar regras de firewall razoáveis para executar um site:

sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

Todas as configurações acima entrarão em vigor imediatamente. Use o seguinte comando para listá-los para revisão:

sudo iptables -L -n

Use a iptable-persistentferramenta para salvar todas as regras existentes do iptables em um arquivo /etc/iptables/rules.v4, tornando todas as regras do iptables persistentes:

sudo apt install -y iptables-persistent

Durante a instalação, você será perguntado se deseja salvar as regras atuais de IPv4 / IPv6. Pressione ENTERduas vezes para salvar as regras atuais de IPv4 e IPv6 para /etc/iptables/rules.v4/etc/iptables/rules.v6.

Se você tentar atualizar as regras do IPv4 mais tarde, use o seguinte para salvar sua atualização:

sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

Atualize o sistema

sudo apt update
sudo apt upgrade -y && sudo shutdown -r now

Quando o sistema estiver ativo e funcionando novamente, efetue login novamente como o mesmo usuário sudo para continuar.

Etapa 2: instalar as dependências necessárias

Antes de instalar o GitLab CE, você precisa instalar as dependências necessárias:

sudo apt install -y curl openssh-server ca-certificates

Além disso, se você quiser usar o Postfix para enviar mensagens de notificação, você precisa instalar o Postfix:

sudo apt install -y postfix

Durante a instalação, uma tela de configuração pode aparecer:

  1. Pressione TABpara destacar o <OK>botão na primeira tela e pressione ENTER.
  2. Selecione Internet Sitee pressione ENTER.
  3. Para o mail namecampo, insira o FQDN do seu servidor gitlab.example.come pressione ENTER.
  4. Se outras telas aparecerem, pressione ENTERpara aceitar as configurações padrão.

Inicie e ative o serviço Postfix:

sudo systemctl enable postfix.service
sudo systemctl start postfix.service

Modifique as regras de firewall para o Postfix:

sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

Com o Postfix instalado, você precisa configurar o Postfix editando seu arquivo de configuração principal de /etc/postfix/main.cfacordo com as configurações reais do servidor.

Nota: Além das instruções acima, você precisa enviar um tíquete de suporte para cancelar o bloqueio padrão da Vultr na porta 25 do SMTP.

Alternativamente, se você quiser usar outra solução de mensagens, basta pular a instalação do Postfix e optar por usar um servidor SMTP externo após a instalação do GitLab CE.

Etapa 3: Configurar o repositório GitLab APT e, em seguida, instalar o GitLab CE

Configure o repositório GitLab CE APT em seu sistema:

cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Em seguida, instale o GitLab CE 11.x:

sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce

A instalação pode demorar um pouco.

Por fim, aponte seu navegador da Web favorito para http://gitlab.example.com, em seguida, envie uma nova senha conforme solicitado para concluir a instalação.

De agora em diante, use as credenciais abaixo para efetuar login como administrador:

  • Nome de usuário: root
  • Senha: <your-new-password>

Etapa 4: habilitar o acesso HTTPS integrando um certificado Let’s Encrypt SSL

Por enquanto, você instalou com sucesso o GitLab CE 11.x em sua instância de servidor, e os usuários já podem visitar o site usando o protocolo HTTP. Por motivos de segurança, é recomendável ativar o acesso HTTPS ao seu servidor GitLab, integrando um certificado Let’s Encrypt SSL.

Use o vieditor para abrir o arquivo de configuração do GitLab CE:

sudo vi /etc/gitlab/gitlab.rb

Encontre as duas linhas seguintes:

external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts

Substitua-os de acordo:

external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']

Salve e saia:

:wq!

Reconfigure o GitLab CE usando as configurações atualizadas:

sudo gitlab-ctl reconfigure

A reconfiguração pode demorar um pouco.

Após a reconfiguração ser feita, todos os usuários serão forçados a usar o protocolo HTTPS ao acessar o site do GitLab.

Nota: Depois de alternar de HTTP para HTTPS, os cookies herdados podem causar um erro no GitLab 422. Limpar cookies corrige esse problema.

Esse artigo foi útil?
Não Gostei 0
Visualizações: 114

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?