A automação de deploys com CI/CD (Continuous Integration e Continuous Deployment) é essencial para garantir agilidade, segurança e eficiência no desenvolvimento de software. Utilizando ferramentas como Jenkins, GitHub Actions e GitLab CI/CD, é possível criar pipelines automatizados que testam, constroem e implantam aplicações de forma contínua.
✅ Neste artigo, você aprenderá como configurar um servidor de CI/CD para automação de deploys usando Jenkins, GitHub Actions e GitLab CI/CD.
📌 O Que é CI/CD e Por Que Usar?
CI/CD (Integração Contínua e Entrega Contínua) permite que alterações no código sejam testadas, validadas e implantadas automaticamente, reduzindo falhas e acelerando o ciclo de desenvolvimento.
🔹 Continuous Integration (CI) → Automatiza testes e builds antes do deploy
🔹 Continuous Deployment (CD) → Implementa automaticamente mudanças aprovadas
🔹 Menos erros em produção → Deploys testados antes de serem publicados
🔹 Maior produtividade → Desenvolvedores focam no código e não em deploys manuais
💡 Conclusão: Com CI/CD, o código é entregue com mais qualidade e rapidez, evitando falhas e retrabalho.
🔗 Precisa de um Servidor VPS para Hospedar Seu CI/CD? Veja Nossos Planos! 🚀
📌 Configurando um Servidor de CI/CD para Automação de Deploys
Existem várias ferramentas para automação de CI/CD, e neste guia veremos como configurar Jenkins, GitHub Actions e GitLab CI/CD.
Ferramenta | Vantagens | Requisitos |
---|---|---|
Jenkins | Open-source, flexível, integração com diversos sistemas | VPS com 4 vCPUs, 8GB RAM |
GitHub Actions | Fácil integração com GitHub, gratuito para repositórios públicos | Conta no GitHub |
GitLab CI/CD | Pipeline nativo do GitLab, ideal para DevOps | VPS ou GitLab SaaS |
✅ 1. Instalando o Jenkins (CI/CD Self-Hosted)
O Jenkins é uma ferramenta de automação open-source muito utilizada para criação de pipelines de CI/CD.
🔹 Passo 1: Configurar o Servidor
Antes de instalar o Jenkins, atualize o sistema e instale dependências:
sudo apt update && sudo apt upgrade -y
sudo apt install -y openjdk-11-jdk curl
🔹 Passo 2: Instalar o Jenkins
Baixe e instale o Jenkins no Ubuntu/Debian:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install -y jenkins
🔹 Passo 3: Iniciar o Jenkins e Configurar o Acesso
Inicie o Jenkins e configure-o para iniciar automaticamente:
sudo systemctl start jenkins
sudo systemctl enable jenkins
Acesse o Jenkins no navegador:
http://SEU_IP:8080
Pegue a senha de login inicial:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Agora, configure um usuário administrador e instale plugins essenciais, como Git, Docker e SSH Deploy.
✅ 2. Criando um Pipeline de CI/CD no Jenkins
Crie um pipeline básico para deploy automático de aplicações web:
1️⃣ No Jenkins, vá em “New Item” > “Pipeline”
2️⃣ Adicione um script de pipeline no Jenkinsfile
pipeline {
agent any
stages {
stage('Clone Repo') {
steps {
git 'https://github.com/seu-repositorio.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Deploy') {
steps {
sshagent(['deploy-key']) {
sh 'scp target/*.war user@server:/var/www/app'
}
}
}
}
}
3️⃣ Salve e execute o pipeline para testar o deploy.
💡 Agora, cada push no repositório ativa um deploy automático! 🚀
✅ 3. Configurando GitHub Actions para Deploy Automático
O GitHub Actions permite CI/CD diretamente no GitHub, sem necessidade de servidores externos.
🔹 Passo 1: Criar um Workflow no Repositório
No repositório GitHub, crie a pasta .github/workflows/deploy.yml com o seguinte código:
name: Deploy Automatizado
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout do Código
uses: actions/checkout@v2
- name: Construir Aplicação
run: mvn clean package
- name: Deploy via SSH
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_KEY }}
source: "target/*.war"
target: "/var/www/app"
🔹 Passo 2: Configurar Chaves SSH
No GitHub, vá em Settings > Secrets e adicione:
🔹 SERVER_IP
→ IP do servidor
🔹 SERVER_USER
→ Usuário SSH
🔹 SSH_KEY
→ Chave privada SSH
💡 Agora, todo push na branch main
aciona um deploy automático no servidor! 🚀
✅ 4. Criando um Pipeline no GitLab CI/CD
Se você usa GitLab, pode configurar GitLab CI/CD facilmente.
🔹 Passo 1: Criar um Arquivo .gitlab-ci.yml
No repositório, crie o arquivo .gitlab-ci.yml
:
stages:
- build
- deploy
build:
stage: build
script:
- mvn clean package
deploy:
stage: deploy
script:
- scp target/*.war user@server:/var/www/app
only:
- main
🔹 Passo 2: Configurar Chaves SSH no GitLab
Vá em GitLab > Settings > CI/CD > Variables e adicione:
🔹 SERVER_IP
→ IP do servidor
🔹 SSH_KEY
→ Chave privada SSH
💡 Agora, cada push na branch main
acionará um deploy automático! 🚀
📌 Conclusão: Seu Servidor de CI/CD Está Pronto! 🚀
Agora você tem um ambiente de CI/CD configurado para automação de deploys, garantindo mais eficiência e segurança no ciclo de desenvolvimento.
✅ Jenkins instalado para pipelines personalizáveis
✅ GitHub Actions configurado para deploy direto do GitHub
✅ GitLab CI/CD pronto para integração contínua
🔗 Precisa de um Servidor VPS para Hospedar seu CI/CD? Confira Nossos Planos! 🚀