Este repositório contém todas as instruções para configurar o servidor Jenkins, integrar com GitHub e DockerHub, configurar o primeiro job e realizar um scan de vulnerabilidades com Trivy.
- Pré-requisitos
- Build da Imagem do Servidor Jenkins
- Start do Container Jenkins
- Configuração do Primeiro Job
- Integração com DockerHub
- Deploy da Aplicação no DockerHub
- Instalação do SonarQube
- Instalação do Trivy para Scan de Vulnerabilidades
- Acesso ao servidor Jenkins.
- Conta no DockerHub com token de acesso.
- Acesso ao repositório GitHub onde os arquivos do projeto estão armazenados.
- Docker e Docker Compose instalados no servidor.
Com o arquivo Dockerfile neste repositório, vamos enviar ele para o servidor Jenkins e realizar o build da imagem.
-
Enviar o arquivo Dockerfile para o servidor Jenkins:
scp -i ../tf-aws-infra-jenkins/jenkins.pem -r Dockerfile ubuntu@<endereco-do-servidor-jenkins>:/home/ubuntu
-
Logar no servidor Jenkins:
ssh -i ../tf-aws-infra-jenkins/jenkins.pem ubuntu@<endereco-do-servidor-jenkins>
-
Fazer o build da imagem Jenkins:
docker build -t jenkins .
-
Iniciar o container Jenkins:
docker run -d -p 8080:8080 --name jenkins -v /var/run/docker.sock:/var/run/docker.sock jenkins
-
Validar que o container está em execução:
docker ps
-
Criar o par de chaves SSH para integração com GitHub:
- Logar no container do Jenkins:
docker exec -it jenkins bash
- Gerar o par de chaves:
ssh-keygen
- Logar no container do Jenkins:
- Adicionar a chave SSH ao GitHub para o servidor Jenkins.
- Testar a conexão SSH no container Jenkins.
- Criar a chave do servidor no GitHub para o commit do Dockerfile.
- Fazer o commit do Dockerfile no repositório:
scp -i ../tf-aws-infra-jenkins/jenkins.pem -r Dockerfile ubuntu@<ip-do-servidor-jenkins>:/home/jenkins
- Criar uma nova tarefa no Jenkins e realizar o primeiro build de teste.
- Acessar o DockerHub e gerar um token de acesso.
- Configurar o token de acesso no job do Jenkins.
- Atualizar o Jenkinsfile para incluir o push da imagem base.
- Executar a pipeline e verificar se o push foi bem-sucedido.
- Enviar os arquivos da aplicação para o servidor Jenkins.
- Fazer o upload dos arquivos para o GitHub.
- Iniciar o build de imagem da aplicação e confirmar que a imagem foi atualizada no DockerHub.
- Instalar o plugin Config File no Jenkins para gerenciamento de variáveis de ambiente.
- Atualizar o Jenkinsfile para usar o Config File (atualizar o ID do Config File conforme necessário).
- Acessar a aplicação pelo navegador para verificar a instalação.
As instruções para instalação do SonarQube estão no diretório 6_install_sonarqube
deste repositório. Siga as etapas descritas lá para configurar o SonarQube no ambiente Jenkins.
-
Instalar o Trivy no container do Jenkins:
apt-get install wget apt-transport-https gnupg lsb-release -y wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | apt-key add - echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | tee -a /etc/apt/sources.list.d/trivy.list apt-get update -y && apt-get install trivy -y
-
Executar um scan de vulnerabilidades manual no Ubuntu 24.04.
-
Criar uma pipeline separada para o scan de vulnerabilidades.