Tutorial

Como-instalar-e-configurar-o-Gitlab-no-Ubuntu-18-04.md

GitLet's EncryptUbuntu 18.04

Introdução

O GitLab CE ou Community Edition é um aplicativo de código aberto usado principalmente para hospedar repositórios Git, que possui recursos adicionais relacionados ao desenvolvimento como o rastreamento de problemas. Ele foi desenvolvido para ser hospedado usando infraestrutura própria, fornecendo flexibilidade na implantação como uma loja interna de repositórios para a sua equipe de desenvolvimento. Trata-se de uma maneira de interagir com os usuários ou um meio para que colaboradores hospedem seus respectivos projetos.

O projeto GitLab torna relativamente simples a configuração de uma instância do GitLab no seu próprio hardware a partir de um processo de instalação fácil. Neste guia, falaremos sobre como instalar e configurar o GitLab em um servidor Ubuntu 18.04.

Pré-requisitos

Para este tutorial, você precisará de:

Os requisitos de hardware do GitLab recomendam o uso de um servidor que tenha:

  • 2 núcleos
  • 8 GB de memória RAM

É possível ignorar esse requisito substituindo algum espaço de swap por memória RAM, mas não recomendamos que faça isso. Para este guia, supomos que você tenha ao menos os recursos mínimos acima.

Passo 1 — Como instalar as dependências

Antes de instalar o GitLab propriamente dito, é importante instalar alguns dos software que ele utiliza durante a instalação e em base contínua. Todos os software necessários poderão ser instalados a partir dos repositórios do pacote padrão do Ubuntu.

Como esta será a primeira vez que você usará o apt na sessão, podemos atualizar o índice de pacotes local e, em seguida, instalar as dependências, digitando:

  • sudo apt update
  • sudo apt install ca-certificates curl openssh-server postfix

É provável que você já tenha alguns dos software instalados. Para a instalação postfix, selecione *Internet Site *quando solicitado. Na tela seguinte, digite o nome de domínio do seu servidor e configure o modo como o sistema enviará e-mails.

Passo 2 — Como instalar o GitLab

Agora que as dependências estão instaladas, podemos instalar o GitLab. Este é um processo simples que se utiliza de um script de instalação para configurar seu sistema com os repositórios do GitLab.

Vá para o diretório /tmp e, em seguida, faça o download do script de instalação:

  • cd /tmp
  • curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Fique à vontade para avaliar o script baixado para garantir que se sinta seguro quanto as ações que o script realizará. Também é possível encontrar uma versão hospedada do script aqui:

  • less /tmp/script.deb.sh

Se estiver satisfeito com a segurança do script, execute o instalador.

  • sudo bash /tmp/script.deb.sh

O script irá configurar o seu servidor para usar os repositórios mantidos pelo GitLab. Isso permitirá que você gerencie o GitLab com as mesmas ferramentas de gerenciamento de pacotes que você usa com outros pacotes do seu sistema. Quando o processo estiver finalizado, instale o aplicativo GitLab com o comando apt:

  • sudo apt install gitlab-ce

Isso instalará os componentes necessários no sistema.

Passo 3 — Ajustando as regras do Firewall

Antes de configurar o GitLab, será necessário conferir suas regras de firewall, de modo que estas permitam o tráfego da Web. Se você seguiu o guia presente nos pré-requisitos, você terá um firewall ufw habilitado.

Para ver o status atual do firewall ativo, digite:

  • sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Como é possível ver, as regras atuais permitem o tráfego SSH, mas o acesso a outros serviços se encontra restrito. O GitLab é um aplicativo da Web e, por isso, devemos habilitar o acesso HTTP. Como iremos aproveitar a capacidade do GitLab de solicitar e habilitar um certificado TLS/SSL gratuito a partir de Let’s Encrypt, também iremos permitir o acesso HTTPS.

O protocolo de mapeamentos de portas para HTTP e HTTPS está disponível no arquivo /etc/services. Desse modo, permitimos o tráfego pelo nome. Se você ainda não tiver o tráfego OpenSSH habilitado, você também deve permitir esse tráfego agora:

  • sudo ufw allow http
  • sudo ufw allow https
  • sudo ufw allow OpenSSH

Confira o ufw status novamente. Você verá o serviço configurado para pelo menos estes dois serviços:

  • sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)

O resultado acima indica que a interface da Web do GitLab ficará acessível assim que configurarmos o aplicativo.

Passo 4 — Editanto o arquivo de configuração do GitLab

Antes de usar o aplicativo, será necessário atualizar o arquivo de configuração e executar um comando de reconfiguração. Primeiramente, abra o arquivo de configuração do GitLab:

  • sudo nano /etc/gitlab/gitlab.rb

Na parte superior podemos ver a linha de configuração external_url. Atualize o arquivo para que ele corresponda ao seu domínio. Altere http para https. Assim, o GitLab redirecionará os usuários para o site protegido pelo certificado Let’s Encrypt:

/etc/gitlab/gitlab.rb
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

Depois, encontre a configuração letsencrypt['contact_emails']. Esta configuração define uma lista de endereços de e-mail que o projeto Let’s Encrypt usará para contatar você caso haja algum problema com o domínio. É recomendável remover o comentário e colocar seu e-mail para que você fique sabendo de quaisquer problemas:

/etc/gitlab/gitlab.rb
letsencrypt['contact_emails'] = ['sammy@example.com']

Salve e feche o arquivo. Execute o comando a seguir para reconfigurar o Gitlab:

  • sudo gitlab-ctl reconfigure

Fazer isso inicializará o GitLab usando a informação do seu servidor. Trata-se de um processo completamente automatizado. Não será necessário responder a nenhum prompt durante o processo. O processo também configurará um certificado Let’s Encrypt para o domínio.

Passo 5 — Realizando a configuração inicial através da Interface da Web

Com o GitLab em execução e p acesso concedido, podemos realizar algumas configurações iniciais do aplicativo através da interface da Web.

Fazendo login pela primeira vez

Visite o nome de domínio do seu servidor GitLab no seu navegador da Web.

https://example.com

Na primeira visita, você verá um prompt inicial para definir uma senha para a conta administrativa:

GitLab initial password set prompt

No prompt de senha inicial, forneça e confirme uma senha segura para a conta administrativa. Clique no botão Change your password quando tiver terminado.

Você será redirecionado para a página padrão de login do GitLab:

GitLab first sign in prompt

Aqui, é possível fazer login com a senha que você definiu. As credenciais são:

  • Nome de usuário: root
  • Senha: [a senha que você definiu]

Digite esses dados nos campos em relação aos usuários existentes e clique no botão Sign in Você agora estará logado no aplicativo e será direcionado até a página de destino, onde será solicitado que você adicione projetos:

GitLab initial login landing page

Agora é possível fazer algumas alterações simples para deixar o GitLab do jeito que você quiser.

Ajustando as configurações do seu perfil

Uma das primeiras coisas a fazer após uma instalação nova é melhorar seu perfil. O GitLab possui alguns padrões razoáveis, mas que não são geralmente apropriados para quando você começar a usar o software.

Para fazer as modificações necessárias, clique no ícone de usuário, no canto superior direito da interface. No menu suspenso, selecione Configurações:

GitLab profile settings button

Você será levado à seção do Perfil de suas configurações:

GitLab profile settings page

Ajuste o Name e endereço de E-mail do “Administrador” e “admin@example.com” para algo mais preciso. O nome que você selecionar será exibido para os outros usuários, enquanto o e-mail será usado como padrão para a detecção de avatar, notificações, ações Git através da interface, etc.

Clique no botão Atualizar configurações de perfil, na parte inferior, quando tiver terminado:

GitLab update profile settings button

Um e-mail de confirmação será enviado para o endereço que você forneceu. Siga as instruções no e-mail para confirmar sua conta para poder começar a usá-la com o GitLab.

Alterando seu nome de conta

Em seguida, clique no item Conta na barra de menu do lado esquerdo:

GitLab account menu item​​​

Aqui, você pode encontrar seu token pessoal da API ou configurar a autenticação de dois fatores. Entretanto, a funcionalidade em que estamos interessados no momento é a seção Alterar nome de usuário.

Por padrão, a primeira conta administrativa recebe o nome de root. Como se trata de um nome de conta conhecido, é mais seguro mudar para um nome diferente. Você ainda terá privilégios administrativos; a única coisa que mudará é o nome. Substitua *root *com seu nome de usuário preferido:

GitLab change username section

Clique no botão Atualizar nome de usuário para fazer a alteração:

GitLab update username button

Da próxima vez que fizer login no Gitlab, lembre-se de utilizar seu novo nome de usuário.

Como adicionar uma chave SSH à sua conta

Na maioria dos casos, você irá querer utilizar as chaves SSH com Git para interagir com seus projetos do GitLab. Para isso, será necessário adicionar sua chave pública SSH à sua conta do GitLab.

Se já tiver um par de chaves SSH criado no seu computador local, normalmente é possível visualizar a chave pública digitando:

  • cat ~/.ssh/id_rsa.pub

Você verá um texto grande, como este:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Copie este texto e volte para a página de Configuração do perfil na interface Web do GitLab.

Se, em vez disso, você receber uma mensagem parecida com esta, isto significa que você ainda não possui um par de chaves SSH configurado em sua máquina:

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

Se for este o caso, você pode criar um par de chaves SSH digitando:

  • ssh-keygen

Aceite os padrões e, se desejar, forneça uma senha para proteger a chave localmente:

Output
Generating public/private rsa key pair. Enter file in which to save the key (/home/sammy/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sammy/.ssh/id_rsa. Your public key has been saved in /home/sammy/.ssh/id_rsa.pub. The key fingerprint is: SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work The key's randomart image is: +---[RSA 2048]----+ | ..%o==B| | *.E =.| | . ++= B | | ooo.o . | | . S .o . .| | . + .. . o| | + .o.o ..| | o .++o . | | oo=+ | +----[SHA256]-----+

Uma vez que a tiver, você pode mostrar sua chave pública como acima digitando:

  • cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Copie o bloco de texto exibido e volte para sua Configuração de perfil na interface Web do GitLab.

Clique no item *Chaves SSH *no menu do lado esquerdo:

GitLab SSH Keys menu item

No espaço indicado, cole a chave pública que copiou da sua máquina local. Dê a ela um título descritivo e clique no botão Adicionar chave:

GitLab add SSH Key

Agora, você deve conseguir gerenciar seus projetos e repositórios do GitLab a partir de sua máquina local sem ter que fornecer suas credenciais da conta GitLab.

Passo 6 — Restringindo ou desabilitando inscrições públicas (opcional)

Você deve ter notado que é possível para qualquer um registrar uma conta ao visitar a página de destino de sua instância do GitLab. Isso pode ser o que você quer caso esteja procurando hospedar um projeto público. Entretanto, muitas vezes é desejável usar configurações mais restritivas.

Para começar, vá para a área administrativa, clicando no ícone de** chave inglesa**, na barra de menu principal no todo da página:

GitLab administrative area button

Na página que segue, é possível ver um resumo da instância GitLab como um todo. Para ajustar as configurações, clique no item Configurações no final do menu do lado esquerdo:

GitLab administrative settings button

Você será levado para as configurações globais de sua instância GitLab. Aqui é possível ajustar uma série de configurações que afetam se novos usuários podem se inscrever e o nível de acesso deles.

Desabilitando inscrições

Se deseja desativar as inscrições completamente (você ainda pode criar contas para novos usuários manualmente), role para baixo até a seção de Restrições de inscrição.

Desmarque a caixa de seleção Inscrição habilitada:

GitLab deselect sign-ups enabled

Role até a parte inferior e clique no botão Salvar alterações:

GitLab save settings button

A seção de inscrição deve estar removida da página de destino da GitLab agora.

Restringindo inscrições por domínio

Se estiver usando o GitLab como parte de uma organização que fornece endereços de e-mail associados a um domínio, você pode restringir as inscrições por domínio, em vez de desabilitá-las totalmente.

Na seção Restrições de inscrição​​​, selecione a caixa Enviar e-mail de confirmação no momento da inscrição, o que permitirá que os usuários façam login apenas depois de confirmarem seus respectivos e-mails.

Na sequência, adicione seu domínio ou domínios à caixa Domínios whitelist para inscritos, um domínio por linha. Você pode usar o asterisco “*” para especificar domínios wildcard:

GitLab restrict sign-ups by domain

Role até a parte inferior e clique no botão Salvar alterações:

GitLab save settings button

A seção de inscrição deve estar removida da página de destino da GitLab agora.

Restringindo a criação de projetos

Por padrão, novos usuários podem criar até 10 projetos. Se quiser dar permissões de visibilidade e participação aos novos usuários externos, mas também quiser limitar o acesso deles à criação de novos projetos, é possível fazer isso** na seção Configurações de cont**a e limite.

Dentro, é possível alterar o Limite de projetos padrão para 0 para desabilitar completamente a criação de projetos dos novos usuários:

GitLab set projects to zero

Novos usuários ainda podem ser adicionados aos projetos manualmente e terão acesso aos projetos internos ou públicos criados por outros usuários.

Role até a parte inferior e clique no botão Salvar alterações:

GitLab save settings button

Agora, os novos usuários poderão criar contas, mas não poderão criar projetos.

Renovando os certificados Let’s Encrypt

Por padrão, o GitLab tem uma tarefa programada configurada para renovar os certificados do Let’s Encrypt após a meia-noite a cada quatro dias, com o minuto exato baseado em seu external_url. Você pode modificar essas configurações no arquivo /etc/gitlab/gitlab.rb. Por exemplo, se quisesse renovar todo dia 7, às 12h30, poderia configurar isso como segue:

/etc/gitlab/gitlab.rb
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Também é possível desabilitar a renovação automática, adicionando uma configuração adicional para /etc/gitlab/gitlab.rb:

/etc/gitlab/gitlab.rb
letsencrypt['auto_renew'] = false

Com a renovação automática funcionando, não será mais necessário se preocupar com interrupções de serviço.

Conclusão

Agora, você deve ter uma instância GitLab funcionando hospedada em seu próprio servidor. Você pode começar a importar ou criar novos projetos e configurar o nível de acesso apropriado para sua equipe. O GitLab adiciona recursos e atualiza sua plataforma regularmente. Assim, assegure-se de verificar a página inicial de projetos para se manter atualizado em relação às melhorias ou avisos importantes.

0 Comments

Creative Commons License