Ir para o conteúdo principal

Instalando GitLab Usando Docker

·1095 palavras·6 minutos
gitlab docker compose docker let's encrypt linux
Alfredo Castro
Autor
Alfredo Castro
AWS Solutions Architect | AWS x3 | LPI x2 | CompTIA Linux+
O GitLab é uma plataforma robusta para gerenciamento de repositórios Git, oferecendo uma variedade de recursos para equipes de desenvolvimento colaborarem de forma eficiente. Uma forma prática de implantar o GitLab é através do Docker Compose, facilitando a configuração e o gerenciamento do ambiente.

Neste tutorial, irei demonstrar os passos necessários para instalar o GitLab usando Docker Compose, permitindo que você tenha seu próprio servidor GitLab em execução rapidamente e com facilidade.

Ambiente #

Para está implementação, estou utilizando um servidor Linux com a distribuição Ubuntu na versão 22.04.

O servidor que utilizei possui a seguinte configuração: 2 vCPUs, 4GB RAM e um disco SSD de 30GB.

Para que nosso servidor seja acessível pela internet, e para que o nosso GitLab gere o certificado via Let’s Encrypt, precisamos possuir um endereço IP público e precisamos liberar as portas 80 e 443 para a internet.

Também é necessário possuirmos um registro DNS para criarmos a URL para o GitLab.

Disponibilizei o Docker Compose no seguinte repositório do GitHub:

Imagens utilizadas:

Estrutura:

.
└── docker-compose.yml

Não irei abordar a instalação do Docker Engine, caso ainda não saiba realizar a instalação, consulte este outro post:

Como instalar o Docker Engine no Linux
·572 palavras·3 minutos
docker docker compose linux ubuntu centos

Etapa 01 - Criando o registro DNS #

Antes de tudo, vamos definir e criar a URL que iremos utilizar para o GitLab.

Irei utilizar o domínio alfredocastro.com.br, defini a URL gitlab.alfredocastro.com.br - ATENÇÃO: Você precisa alterar no arquivo do Docker Compose (docker-compose.yml).

Acesse o seu gerenciador de registros DNS do seu domínio e crie um registro do tipo A colocando como valor o endereço IP público do seu servidor.

Veja um exemplo:

IMAGEM 01

Para consultar a propagação do registro criado, consulte o site: WhatsMyDNS

IMAGEM 02

Etapa 02 - Clonando o repositório do Docker Compose #

Após realizar a instalação do Docker Engine, vamos dar seguimento com a nossa implementação.

IMAGEM 01

Execute os seguintes comandos para clonar nosso Docker Compose para dentro do nosso servidor:

cd /opt
git clone https://github.com/alfredotavio/gitlab-docker.git
cd gitlab-docker

IMAGEM 02

NOTA: Utilizei o diretório /opt do Linux, caso queira você pode alterar para outro diretório de sua escolha.

Etapa 03 - Definindo a URL do GitLab #

Primeiro vamos definir a URL de acesso, edite o arquivo docker-compose.yml na raiz do projeto e altere a URL do GitLab, são duas linhas, no atual projeto está definido como gitlab.example.com.

vim /opt/gitlab-docker/docker-compose.yml

IMAGEM 01

Etapa 04 - Executando o Docker Compose #

Para subirmos nosso ambiente, basta executarmos o seguinte comando dentro do diretório raiz onde está nosso docker-compose.yml:

docker compose up -d

IMAGEM 01

NOTA: O Docker irá fazer o download e o provisionamento de todas as imagens. Aguarde alguns minutos até que as imagens concluam a primeira configuração.

Etapa 05 - Acessando o ambiente #

Por padrão, o GitLab define automaticamente uma senha temporária encontrada dentro do arquivo “initial_root_password”. Para obter a senha, utilize o seguinte comando:

docker exec -it gitlab grep "Password:" /etc/gitlab/initial_root_password

IMAGEM 01

Acesse a URL do GitLab que definimos na primeira etapa, será solicitado um usuário e senha para acessar, por padrão o usuário é o “root” e a senha será a exibida no comando anterior.

IMAGEM 02
IMAGEM 03

Após realizar o primeiro login, é recomendado alterar a senha e o email do usuário “root”, também é recomendado desativar a opção de registro público.

Para alterar a senha e o email do usuário “root”, após realizar o login, clique na foto do perfil do usuário na aba lateral esquerda.

IMAGEM 04

Em seguida, clique em “Edit profile”.

IMAGEM 05

Na aba “Profile”, desça até o campo “Email” e altere o email “ admin@example.com” para o seu endereço de email, em seguida clique em “Update profile settings”.

IMAGEM 06

Será solicitado a confirmação da senha do usuário “root”, utilize a senha temporária que pegamos anteriormente.

IMAGEM 07

Agora clique na aba “Password” no menu lateral esquerdo.

IMAGEM 08

Em “Current password”, digite a senha temporária que pegamos anteriormente, em “New password” defina uma nova senha e em “Password confirmation” repita a nova senha, em seguida clique em “Save password”.

IMAGEM 09

Você será deslogado e irá exibir uma mensagem dizendo que a senha foi atualizada com sucesso.

IMAGEM 10

Faça o login novamente, agora utilizando a nova senha. Vamos desativar a opção de registro público, após o login, será exibido uma mensagem de alerta “Check your sign-up restrictions - Your GitLab instance allows anyone to register for an account, which is a security risk on public-facing GitLab instances. You should deactivate new sign ups if public users aren’t expected to register for an account.” clique no botão “Deactivate”.

IMAGEM 11

Desmarque a opção “Sign-up enabled” e clique no botão “Save changes”.

IMAGEM 12

Pronto, agora já subimos o GitLab e fizemos as primeiras configurações de segurança.

Etapa 06 - Integrando o GitLab com o GitLab Runner #

Para realizar a integração do GitLab Runner com o GitLab, é necessário a geração de um token e realizar o registro dentro do GitLab Runner.

Para gerar o token você precisar acessar a “Admin Area”, na tela inicial após realizar o login, clique na caixa “Configure GitLab”.

IMAGEM 01

No menu lateral esquerdo, clique em “CI/CD” e depois em “Runners”.

IMAGEM 02

Clique no botão “New instance runner”.

IMAGEM 03

Faça as seguintes configurações:

Em “Platform” marque “Linux”.

Em “Tags” marque a caixa “Run untagged jobs”.

Clique no botão “Create runner”.

IMAGEM 04
IMAGEM 05

Copie e anote o comando exibido no “Step 1” e clique no botão “Go to runners page”.

IMAGEM 06

Veja que o nosso Runner está com o status “Idle” e a última interação está como “Never”.

IMAGEM 07

Agora devemos acessar o terminal onde está o nosso Docker Compose para executar o comando de registro do GitLab Runner. Acesse sua instância Linux e digite o seguinte comando para realizar o registro do GitLab Runner dentro do seu GitLab, lembre-se de alterar os campos “–url” e “–token” para as informações correspondentes ao seu Runner gerado anteriormente.

docker exec -it gitlab-runner gitlab-runner register --name MyRunner --url "https://gitlab.alfredocastro.com.br" --token "glrt-FyeL9ZZz6QozSD2aJE3x" --executor docker --docker-image "docker:latest" --non-interactive

A execução deve retornar uma mensagem parecida com a do print seguinte “Runner registered sucessfully”.

IMAGEM 08

Volte para o browser com os Runners e atualize a página para vermos o status do nosso Runner, veja no print que ele está com o status “Online” e já possui o tempo da última interação.

IMAGEM 09

Pronto, já subimos nosso ambiente com GitLab e GitLab Runner integrado.

Espero tê-lo ajudado! Se houver alguma dúvida, não hesite em entrar em contato.