OTH HOST

Como Configurar um Servidor de CI/CD para Automação de Deploys – Jenkins, GitHub Actions e GitLab CI/CD

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.

FerramentaVantagensRequisitos
JenkinsOpen-source, flexível, integração com diversos sistemasVPS com 4 vCPUs, 8GB RAM
GitHub ActionsFácil integração com GitHub, gratuito para repositórios públicosConta no GitHub
GitLab CI/CDPipeline nativo do GitLab, ideal para DevOpsVPS 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! 🚀

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *