Imagens
Os Jobs - Os Blocos da Pipeline são executados individuamente, onde todo o conteúdo esta esta sendo executado em um Docker dentro de uma imagem especifica, onde por de default é o ruby:2.5
para especifica uma :image dentro precisamos passar como parametro dentro do arquivo .gitlab.ci.yml
é possível separar em um job específico
definimos utilizando
jobs:
image: imagem
Criando uma imagem MV em nuvem
Dentro de um GCP, podemos utilizamos uma uma maquina utilizando instancias dentro das instâncias Ao abrir a instância e editar, encontramos uma sessão de chave SSH utilizada para acesso remoto
Configurações Gitlab Runner
Dentro de Runner temos os shared runners que são runners do proprio gitlab, o gitlab runner será instalado dentro de sua VM, utilizando o comando
Debian/Ubuntu/Mint
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
apt get install gitlab-runnerRHEL/CentOS/Fedora/Amazon Linux
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
apt get install gitlab-runnerE para configurar a VM como um runner utilizamos e o comando
sudo gitlab-runner register
após esse comando será solicitado informações sobre a url para configurar no gitlab é
também será solicitado, um token para que é gerado especifico no painel runner do gitlab
você pode selecionar qual “terminal” seja utilizar após esse comando.
para testar se esta tudo funcionando pode rodar comando:
gitlab-runner start
Docker dentro da VM
Esses comandos são padrão para qualquer usuário, visto que isso poderiamos
sudo usermod -aG docker "NOME_USUARIO"
sudo usermod -ag docker gitlab-runnerpara fazer um pull de imagens é necessário que esteja logado em sua conta no docker, para conceder permissão em seu usuário, no docker tanto para seu usuário, quando para git runner
docker login
Pipeline utilizando Docker
Criar um dockerfile dentro de seu projeto nesse exemplo foi utilizado o apache
FROM httpd:latest
WORKDIR /usr/local/apache2/htdocs/
COPY . /usr/local/apache2/htdocs/
EXPOSE 80
Criar um arquivo .gitlab-ci.yml onde teremos dois estagios um estagio de build e outro de deploy buscando o runner pela tag especificada
stage:
- build
- deploy
criar_imagens:
stage: build
tags:
- "NOME DA TAG"
script:
docker build -t "NOME USUARIO"/"PROJETO":VERSAO CAMINHO_DO_PROJETO
docker push "USUARIO_DOCKER"/gcp-runner:1.0
executar_imagens:
stage: deploy
needs:
criar_imagens
tags:
- "NOME DA TAG"
script:
- docker run -dti --name webserver -p 80:80 denilsonbonatti/gcp-runner:1.0
Tópicos Relacionados
- Jobs - Os Blocos da Pipeline - Já mencionado acima
- Stages - Organização de fases da pipeline
- Dependências - Gerenciamento de dependências entre jobs
- pipeline-gitlab - Configuração prática de pipelines
- Ferramentas - Ferramentas DevOps relacionadas