Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Pipeline CI/CD automatizado com GitLab Runner em ambiente local

Você vai criar e executar um pipeline CI/CD completo usando GitLab Runner em uma máquina virtual Linux, com build, teste e deploy simulados. Em cerca de 2 horas, terá um fluxo funcional de integração e entrega contínua, pronto para adaptar a projetos reais.

Automação de pipelines CI/CD com GitLab Runner do zero à entrega contínua
Ligado ao treinamento Automação de pipelines CI/CD com GitLab Runner do zero à entrega contínua
ULC-LAB-AUTO-0002 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
11
Validações
4
Versões da documentação consultada
GitLab Community Edition a versão estável atual · GitLab Runner a versão estável atual · Docker a versão estável atual · Git a versão estável atual
Objetivo

Este laboratório ensina como instalar, registrar e operar o GitLab Runner (código aberto, MIT) para automatizar pipelines CI/CD. Você vai entender cada etapa: desde a preparação do ambiente, configuração do Runner, criação do pipeline até a execução real do fluxo, usando apenas software livre. O foco é garantir domínio prático do ciclo de build, teste e deploy automatizado, essencial para equipes modernas de desenvolvimento, inclusive em redes de fibra dedicada como a da Upnetix.

Topologia

Uma máquina virtual Linux (ex: Ubuntu 22.04, IP 192.168.56.10) roda GitLab Runner e um projeto local. O Runner se conecta à API de um servidor GitLab CE (Community Edition) rodando em outra VM (192.168.56.20). O pipeline é disparado por push via Git. O Runner executa jobs de build, teste e um deploy simulado (cópia de arquivos para /tmp/deploy). Comunicação apenas via rede privada.

┌──────────────┐       push/pull        ┌──────────────┐
│ Dev Machine  │ <-------------------> │  GitLab CE   │
│ (opcional)   │                      │192.168.56.20 │
└─────┬────────┘                      └─────┬────────┘
      │   CI/CD jobs (API)                  │
      │-------------------------------------│
      │                                     │
┌─────▼────────┐                      ┌─────▼────────┐
│ GitLab Runner│                      │  Projeto     │
│192.168.56.10 │                      │(repo local)  │
└──────────────┘                      └──────────────┘

Equipamentos e software

ItemRequisito, licença ou versão
VM Linux (Ubuntu 22.04 LTS ou Debian 11+)1 vCPU, 2 GB RAM, 10 GB disco, acesso root
VM Linux (Ubuntu 22.04 LTS ou Debian 11+)1 vCPU, 2 GB RAM, 20 GB disco, acesso root (para GitLab CE)
GitLab Community EditionMIT/EE SSPL · a versão estável atual
GitLab RunnerMIT · a versão estável atual
DockerApache 2.0 · a versão estável atual
GitGPLv2 · a versão estável atual

Roteiro

  1. Preparar as VMs e instalar dependências

    Garanta que as duas VMs estejam na mesma rede privada. Atualize os pacotes e instale curl, Docker e Git nas duas VMs. O Docker é necessário para executar jobs isolados no Runner.

    sudo apt update && sudo apt install -y curl git docker.io

    O que você deve ver: Pacotes instalados sem erros.

  2. Instalar o GitLab CE na VM 192.168.56.20

    O GitLab CE será o servidor de repositórios e pipelines. Siga o guia oficial para instalar via pacote DEB.

    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    sudo EXTERNAL_URL="http://192.168.56.20" apt install gitlab-ce

    O que você deve ver: GitLab CE instalado e acessível via navegador em http://192.168.56.20

  3. Configurar usuário e projeto no GitLab CE

    Crie um usuário admin e um projeto novo chamado 'demo-ci'. Isso permite versionar o pipeline e acionar builds.

    Acesse http://192.168.56.20, siga o onboarding para criar usuário admin, faça login e crie o projeto 'demo-ci'.

    O que você deve ver: Projeto 'demo-ci' criado e visível no dashboard.

  4. Clonar o projeto demo-ci na VM do Runner

    O Runner precisa de um clone local do repositório para executar jobs. Clone usando SSH ou HTTP.

    git clone http://192.168.56.20/demo-ci.git
    cd demo-ci

    O que você deve ver: Repositório clonado e diretório 'demo-ci' criado.

  5. Instalar o GitLab Runner na VM 192.168.56.10

    O Runner é o agente que executa os jobs do pipeline. Instale usando o script oficial.

    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
    sudo apt install gitlab-runner

    O que você deve ver: GitLab Runner instalado. Verifique com 'gitlab-runner --version'.

  6. Registrar o Runner no GitLab CE

    O Runner precisa ser registrado para aceitar jobs desse projeto. Use o token do projeto em Settings > CI/CD > Runners.

    sudo gitlab-runner register
    # URL: http://192.168.56.20
    # Token: (copie do GitLab)
    # executor: docker
    # image: ubuntu:22.04

    O que você deve ver: Runner registrado e listado em Settings > CI/CD > Runners do projeto.

  7. Criar o arquivo .gitlab-ci.yml

    Defina o pipeline com três stages: build, test, deploy. O deploy será uma cópia simulada.

    cat > .gitlab-ci.yml <<EOF
    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Compilando..."
        - mkdir build && echo 'hello' > build/app.txt
    
    test_job:
      stage: test
      script:
        - cat build/app.txt | grep hello
    
    deploy_job:
      stage: deploy
      script:
        - mkdir -p /tmp/deploy
        - cp build/app.txt /tmp/deploy/
    EOF

    O que você deve ver: Arquivo .gitlab-ci.yml criado no diretório do projeto.

  8. Commit e push do pipeline para o GitLab CE

    Versione o pipeline e envie para o servidor. Isso dispara o pipeline automaticamente.

    git add .gitlab-ci.yml
    git commit -m "Adiciona pipeline CI/CD"
    git push origin main

    O que você deve ver: Pipeline iniciado no GitLab CE. Veja em CI/CD > Pipelines.

  9. Acompanhar a execução do pipeline

    No GitLab CE, monitore os jobs em tempo real. O Runner executa cada etapa via Docker.

    Acesse http://192.168.56.20/demo-ci/pipelines

    O que você deve ver: Todos os jobs (build, test, deploy) executados com sucesso (status verde).

  10. Verificar o resultado do deploy simulado

    Confirme que o arquivo foi copiado para /tmp/deploy na VM do Runner.

    ls -l /tmp/deploy/app.txt

    O que você deve ver: Arquivo app.txt presente em /tmp/deploy.

  11. Testar alteração e re-executar pipeline

    Altere o conteúdo do app.txt, faça commit e push. O pipeline deve rodar novamente.

    echo 'hello upnetix' > build/app.txt
    git add build/app.txt
    git commit -m "Atualiza app.txt"
    git push origin main

    O que você deve ver: Novo pipeline iniciado e concluído, novo conteúdo em /tmp/deploy/app.txt.

Como saber que funcionou

TesteComandoCritério
Verificar status do Runnersudo gitlab-runner statusStatus 'active' ou 'running'
Verificar execução dos jobsAcesse CI/CD > Jobs no GitLab CETodos os jobs marcados como 'passed'
Verificar arquivo de deploycat /tmp/deploy/app.txtConteúdo corresponde ao commit mais recente
Verificar logs do Runnersudo journalctl -u gitlab-runnerSem erros críticos nos logs

Troubleshooting

SintomaCausa provávelCorreção
Pipeline não inicia após pushRunner não registrado ou offlineVerifique registro e status do Runner
Job falha no stage buildPermissões insuficientes no diretórioGaranta permissões corretas para o usuário do Runner
Job de deploy falha ao copiar arquivoDiretório /tmp/deploy não existe ou permissão negadaInclua 'mkdir -p /tmp/deploy' no script do job
Runner não aparece no GitLab CEToken de registro incorretoRegistre novamente usando o token correto do projeto

Segurança e hardening

  • Não exponha o GitLab CE na internet sem HTTPS e autenticação forte
  • Execute o Runner em usuário dedicado, nunca como root
  • Limite permissões do diretório /tmp/deploy
  • Remova tokens de registro após uso

Checklist final

Referências

  1. GitLab Runner Documentation · GitLab Inc. (docs.gitlab.com)
  2. GitLab CI/CD Pipelines Documentation · GitLab Inc. (docs.gitlab.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.