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

Deixe uma resposta

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