Tutorial de instalação do GitLab no Ubuntu Server 16.04

Informações Gerais

O Git é um sistema de controle de versão distribuído e o Gitlab é um sistema de gerenciamento web de projetos e repositórios git.

Se você não sabe o que é o Git pode consultar os links abaixo.
No link abaixo você pode encontrar mais informações sobre o Gitlab:

O Gitlab pode hospedar projetos e repositórios Git online semelhante ao que acontece com o GitHub. Mas ele também pode ser instalado num servidor privado da sua empresa ou instituição para armazenamento privado dos códigos a serem versionados pelo Git.

Para a elaboração deste tutorial, foi utilizada uma máquina virtual que executa o Ubuntu Server 16.04 64 bits e o idioma do S.O é inglês (UTF8-US). A máquina virtual possuia 2 GB de memória RAM e um HD de 40 GB.

Os requisitos de hardware e software para instalar o Gitlab estão listados nesta página: https://docs.gitlab.com/ce/install/requirements.html

Instalando o Gitlab

Para simplificar a configuração do Gitlab neste tutorial, o servidor se chamará git.domain.com.br. Altere o nome conforme a sua necessidade.

Para instalar o gitlab e as dependências foram executados os comandos abaixo.

 sudo apt-get -y install curl openssh-server ca-certificates postfix
 sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
 sudo apt-get -y install gitlab-ce

Ao final da instalação será listada a URL no qual o GitLab está disponível para ser acessado. Na página https://docs.gitlab.com/omnibus/README.html, você encontra informações sobre como customizar o Gitlab.

Se você não tiver um certificado para uso do HTTPS, pode criar um sendo auto-assinado e com duração de 10 anos. Faça isso usando a sequencia de comandos abaixo.

mkdir -p /etc/ssl/certs/gitlab

cd /etc/ssl/certs/gitlab

openssl genrsa -des3 -out /etc/ssl/certs/gitlab/git.domain.com.br.key 2048 

openssl req -new -key /etc/ssl/certs/gitlab/git.domain.com.br.key -out /etc/ssl/certs/gitlab/git.domain.com.br.csr 

cp -v /etc/ssl/certs/gitlab/git.domain.com.br.{key,original} 

openssl rsa -in /etc/ssl/certs/gitlab/git.domain.com.br.original -out /etc/ssl/certs/gitlab/git.domain.com.br.key 

openssl x509 -req -days 3650 -in /etc/ssl/certs/gitlab/git.domain.com.br.csr -signkey /etc/ssl/certs/gitlab/git.domain.com.br.key -out /etc/ssl/certs/gitlab/git.domain.com.br.crt

chmod 600 /etc/ssl/certs/gitlab/git.domain.com.br.*

Durante a execução do comando acima, serão feitas as seguintes perguntas:

Sigla do país em que está o servidor: BR
Nome do estado em que está o servidor: Estado
Nome da cidade em que está o servidor: Cidade
Nome da empresa ou organização: Empresa LTDA
Nome do setor da empresa ou organização: Redes
Nome do servidor. Exemplo: git.domain.com.br
Para as demais perguntas, basta pressionar ENTER para deixar em branco.

Edite o arquivo /etc/gitlab/gitlab.rb e altere apenas as linhas em negrito abaixo. As demais foram mantidas comentadas para usarem os valores padrão.

#Configurando a URL do GitLab

external_url ‘https://git.domain.com.br

#Configurando o envio de emails pelo GitLab

gitlab_rails[‘gitlab_email_enabled’] = true
gitlab_rails[‘gitlab_email_from’] = ‘gitlab@git.domain.com.br
gitlab_rails[‘gitlab_email_display_name’] = ‘GitLab
gitlab_rails[‘gitlab_email_reply_to’] = ‘noreply@git.domain.com.br

#Configurando o acesso HTTPs ao GitLab

nginx[‘enable’] = true
nginx[‘redirect_http_to_https’] = true
nginx[‘redirect_http_to_https_port’] = 80

#Configurando o certificado a ser usado ao acessar via HTTPS

nginx[‘ssl_client_certificate’] = “/etc/ssl/certs/gitlab/git.domain.com.br.crt

nginx[‘ssl_certificate’] = “/etc/ssl/certs/gitlab/git.domain.com.br.crt

nginx[‘ssl_certificate_key’] = “/etc/ssl/certs/gitlab/git.domain.com.br.key

#Configurando o uso de cifras fortes durante a sessão HTTPS

nginx[‘ssl_ciphers’] = “ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4” nginx[‘ssl_prefer_server_ciphers’] = “on

#Configurando o uso de um procolo SSL forte durante a sessão HTTPS

nginx[‘ssl_protocols’] = “TLSv1.2

#Diretorio em que os codigos gerenciados pelo Git serao salvos no sistema de arquivos do servidor

git_data_dirs({ “default” => { “path” => “/var/opt/gitlab/git-data“, ‘gitaly_address’ => ‘unix:/var/opt/gitlab/gitaly/gitaly.socket’ } })

Crie o usuário gitlab-ci com o comando abaixo.

 sudo adduser gitlab

O Gitlab foi reconfigurado e iniciado com o comando abaixo.

 sudo gitlab-ctl reconfigure

O Gitlab é acessível através da URL: https://git.domain.com.br
O login padrão é root e a senha deverá ser defina no primeiro acesso a interface web.

Para saber mais informações sobre a configuração do Gitlab, acesse o manual em: https://docs.gitlab.com/ce/install/requirements.html

O manual de uso da interface web do Gitlab está disponível nesta página: https://docs.gitlab.com/ce/README.html
Para iniciar ou parar o Gitlab podem ser usados os comandos abaixo.

sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl status

O log do Gitlab fica em /var/log/gitlab

Backup do Gitlab

Edite o arquivo /etc/gitlab/gitlab.rb e altere apenas a linha em negrito abaixo para fazer o backup do GitLab em /backups.

gitlab_rails[‘backup_path’] = “/backups”

Para fazer o backup dos códigos gerenciados pelo Git, edite o arquivo /etc/crontab e insira o comando abaixo.

#Backup do GITLAB
00 18 * * 4 /opt/gitlab/bin/gitlab-rake gitlab:backup:create

Agora digite o comando abaixo para salvar a configuração do crontab.

crontab /etc/crontab

Com a configuração realizada no crontab, o arquivo do backup será criado todos os dias às 18h no diretório /backup como mostrado no exemplo abaixo:

/backups/1498494590_2017_06_26_9.3.0_gitlab_backup.tar

Para restaurar o backup do git são usados os seguintes comandos, tomando como exemplo o arquivo 1498494590_2017_06_26_9.3.0_gitlab_backup.tar:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=1498494590_2017_06_26_9.3.0
sudo gitlab-ctl start

Fonte:

https://about.gitlab.com/downloads/#ubuntu1604

https://about.gitlab.com/installation/#ubuntu

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

http://www.bonusbits.com/wiki/HowTo:Generate_Self-Signed_SSL_Certificate_with_OpenSSL

3 comentários em “Tutorial de instalação do GitLab no Ubuntu Server 16.04

  • Ola estou com problema com gittlab nao consigo atualiza ele da um erro com dpkg com uma pasta, entao pensei em instalar ele em outra vm so que precisaria das pasta e grupos do gitlab atual sabe como conseguir restaurar um backup desse em outra vm ?

  • Boa tarde, Alisson!

    Eu não sei assim de bate pronto como resolver isso, mas há tutoriais que ensinam a fazer o backup do Gitlab de um servidor e restaurar em outro.
    Pesquisa um pouco, principalmente usando termos em inglês, que você encontrará.

    Abraço e fica com Deus.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *