En aquesta secció, aprendrem a configurar un entorn de CI/CD (Integració Contínua / Lliurament Continu) des de zero. Aquest procés inclou la instal·lació i configuració de les eines necessàries, la creació de pipelines bàsics i la integració de proves automatitzades.

Objectius d'Aprenentatge

  • Entendre els components clau d'un entorn de CI/CD.
  • Instal·lar i configurar eines de CI/CD.
  • Crear un pipeline bàsic de CI/CD.
  • Integrar proves automatitzades en el pipeline.

Components Clau d'un Entorn de CI/CD

Un entorn de CI/CD típicament inclou els següents components:

  1. Sistema de Control de Versions (VCS): Git, SVN, etc.
  2. Servidor d'Integració Contínua: Jenkins, GitLab CI, Travis CI, CircleCI, etc.
  3. Repositori d'Artifcats: Nexus, Artifactory, etc.
  4. Entorn de Proves: JUnit, Selenium, etc.
  5. Entorn de Desplegament: Kubernetes, Docker, etc.

Instal·lació i Configuració d'Eines de CI/CD

Pas 1: Instal·lació de Git

Git és un sistema de control de versions distribuït que permet als desenvolupadors col·laborar en el codi font.

# Per a sistemes basats en Debian/Ubuntu
sudo apt update
sudo apt install git

# Per a sistemes basats en Red Hat/CentOS
sudo yum install git

Pas 2: Instal·lació de Jenkins

Jenkins és una eina d'integració contínua de codi obert que automatitza parts del procés de desenvolupament de programari.

# Per a sistemes basats en Debian/Ubuntu
wget -q -O - https://pkg.jenkins.io/debian/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 jenkins

# Per a sistemes basats en Red Hat/CentOS
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
sudo yum install jenkins

Pas 3: Configuració de Jenkins

  1. Iniciar Jenkins:

    sudo systemctl start jenkins
    sudo systemctl enable jenkins
    
  2. Accedir a la interfície web de Jenkins:

    • Obre un navegador web i navega a http://localhost:8080.
    • Introdueix la contrasenya inicial que es troba en /var/lib/jenkins/secrets/initialAdminPassword.
  3. Instal·lar plugins essencials:

    • Recomanem instal·lar els plugins suggerits durant la configuració inicial.

Pas 4: Creació d'un Pipeline Bàsic de CI/CD

Exemple de Pipeline amb Jenkinsfile

Un Jenkinsfile és un fitxer que defineix el pipeline de Jenkins utilitzant la sintaxi de pipeline de Jenkins.

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Comandes per compilar el projecte
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Comandes per executar les proves
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                // Comandes per desplegar l'aplicació
            }
        }
    }
}

Pas 5: Integració de Proves Automatitzades

Les proves automatitzades són essencials per garantir la qualitat del codi. A continuació, es mostra un exemple d'integració de proves amb JUnit en un projecte Java.

Exemple de Proves amb JUnit

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class ExampleTest {
    @Test
    public void testAddition() {
        assertEquals(2, 1 + 1);
    }
}

Exercici Pràctic

Objectiu

Configurar un entorn de CI/CD utilitzant Jenkins i Git, i crear un pipeline bàsic que inclogui una etapa de construcció, una de proves i una de desplegament.

Passos

  1. Instal·la Git i Jenkins seguint les instruccions anteriors.
  2. Crea un repositori Git per al teu projecte.
  3. Configura un nou treball (job) a Jenkins que utilitzi el teu repositori Git.
  4. Defineix un Jenkinsfile que inclogui les etapes de construcció, proves i desplegament.
  5. Executa el pipeline i verifica que totes les etapes es completen correctament.

Solució

  1. Instal·lació de Git i Jenkins: Segueix els passos descrits anteriorment.

  2. Creació del repositori Git:

    git init my-project
    cd my-project
    touch Jenkinsfile
    git add .
    git commit -m "Initial commit"
    git remote add origin <URL_DEL_REPOSITORI>
    git push -u origin master
    
  3. Configuració del treball a Jenkins:

    • Crea un nou treball de pipeline.
    • Configura el treball per utilitzar el repositori Git.
    • Afegeix el següent Jenkinsfile al teu projecte:
    pipeline {
        agent any
    
        stages {
            stage('Build') {
                steps {
                    echo 'Building...'
                    // Comandes per compilar el projecte
                }
            }
            stage('Test') {
                steps {
                    echo 'Testing...'
                    // Comandes per executar les proves
                }
            }
            stage('Deploy') {
                steps {
                    echo 'Deploying...'
                    // Comandes per desplegar l'aplicació
                }
            }
        }
    }
    
  4. Executa el pipeline: Navega a la pàgina del treball a Jenkins i fes clic a "Build Now". Verifica que totes les etapes es completen correctament.

Conclusió

En aquesta secció, hem après a configurar un entorn de CI/CD bàsic utilitzant Git i Jenkins. Hem creat un pipeline simple que inclou etapes de construcció, proves i desplegament, i hem integrat proves automatitzades per garantir la qualitat del codi. Aquest és un primer pas fonamental per implementar pràctiques DevOps en el teu flux de treball de desenvolupament.

© Copyright 2024. Tots els drets reservats