Nesse post, vou abordar a instalação do GitLab 15.0 em um Ubuntu Server 20.04.4 LTS / Focal Fossa. Também instalarei o gitlab-runner localmente e também em container. Além da instalação, farei o cadastro dos dois Runners.
Inicialmente, vamos instalar algum pacotes necessários:
apt install -y curl openssh-server ca-certificates tzdata perl
Em seguida, vamos adicionar o repositório oficial da versão community do GitLab.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Agora com o repositório oficial já na lista dos repositórios que o nosso gerenciador de pacotes irá verificar, basta instalar o gitlab usando apt
apt install gitlab-ce -y
Ao concluir a instalação, vamos configurar a URL que servirá de acesso ao Gitlab. No nosso caso, não estamos utilizando nenhuma entrada de DNS ou domínio, portanto vamos apontar o IP do servidor mesmo. Nesse caso, é o IP interno 192.168.0.115. Esse procedimento não é recomendável para produção, que deve ser utilizado inclusive com certificado válido.
Para fazer a configuração, vamos editar o arquivo /etc/gitlab/gitlab.rb. Esse arquivo será lido no momento de configuração do gitlab.
vim /etc/gitlab/gitlab.rb
Agora, vamos procurar a linha que contém “external_url” e vamos colocar nosso ip:
Para iniciar o modo de edição do vim, basta apertar a tecla “i”. Ao concluir, basta apertar “Esc” e depois para sair do vim, basta digitar :wq!
Agora, vamos iniciar a configuração do gitlab usando o binário gitlab-ctl:
gitlab-ctl reconfigure
Ao concluir a configuração, o gitlab informará que a senha inicial do usuário root está em um arquivo chamado initial_root_password. Portanto, vamos exibir esse arquivo para visualizarmos a senha.
cat /etc/gitlab/initial_root_password
A senha será exibida na tela. Vamos copiá-la para o acesso inicial ao gitlab. Esse acesso inicial se dará pelo navegador e com o endereço informado anteriormente. Nesse caso, vou usar o Firefox para acessar o ip 192.168.0.115.
1 – No campo Username or email vamos colocar o usuário root
2 – No campo Password, vamos colocar a senha que copiamos anteriormente.
Depois basta clicar em Sign In.
Para modificar a senha do root, clique no lado direito superior e depois em Preferences.
No menu esquerdo, clique em Password.
1 – Inserir a senha atual em Current Password que foi copiada do arquivo initial_root_password
2 – Inserir uma senha nova em New password / Password confirmation.
Depois basta clicar em Save password para confirmar a senha. Ao clicar, você será redirecionado para a página inicial onde deve entrar novamente com o usuário root e a nova senha.
Instalação e Registro dos Runners (Shell e Docker)
Vamos fazer a instalação de depois Runners: um localmente e outro utilizando Docker.
Assim como o Gitlab, vamos fazer a configuração do repositório oficial do Runners.
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
Agora, vamos instalar o gitlab-runner
apt install gitlab-runner -y
Após a instalação, vamos registrar o primeiro Runner. Para fazer o registro, vamos precisar do token. Esse token pode ser acessado em Admin que fica no Menu da esquerda.
Após o acesso da área Admin, vamos em Runners, ainda do lado esquerdo.
Já em Runners, no lado direito, clique em Register an instance runner e logo em seguida, vamos clicar no segundo símbolo para fazer a cópia do token.
Agora com o Token copiado, vamos voltar ao terminal e registrar o Runner que já foi instalado.
Abaixo o comando que deve ser inserido no terminal para fazer o registro do Runner.
É necessária a substituição das opções url (colocar a URL que está acessando o Gitlab), registration-token (colar o token que foi copiado anteriormente).
gitlab-runner register -n --url http://192.168.0.115 --registration-token se8sztuB1o1ewFbXHVav --executor shell --description "Runner Shell"
Ao acessar novamente os Runners no Gitlab, verá que o Runner foi registrado como Shell e com o descrição Runner Shell.
Em seguida, vamos subir um Runner usando Docker e depois fazer o registro desse Runner que estará rodando em container.
Caso não tenha o Docker instalado, seguem os comandos para a instalação. Não será abordado os detalhes aqui, pois o foco é a instalação e configuração do GitLab.
apt remove -y docker docker-engine docker.io containerd runc
apt update -y
apt install ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update -y
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Primeiramente, vamos executar o container do gitlab-runner:
Executando o Runner em Docker
docker run -dit \
--name runner-docker \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
Agora com o Runner já sendo executado em container, vamos fazer o registro desse Runner. A ideia de registro é a mesma do Runner que está rodando localmente, porém precisamos fazer isso para o container, por tanto será necessário os ajustes da URL e Token assim como feito no anterior. Não é necessário a geração de um novo token. Pode-se aproveitar o token que foi utilizado para o runner anterior.
docker exec -it runner-docker \
gitlab-runner register -n \
--url http://192.168.0.115 \
--registration-token se8sztuB1o1ewFbXHVav \
--clone-url http://192.168.0.115 \
--executor docker \
--docker-image "docker:latest" \
--docker-privileged
Agora, onde havia apenas um Runner, há dois Runners sendo executados e registrados no Gitlab.
Referências:
https://about.gitlab.com/install/?version=ce
https://docs.gitlab.com/runner/install/
https://docs.docker.com/engine/install/ubuntu/
Ao som de: Ney Matogrosso – Sorte