Skip to content

Tema:

Creacion de pipelines con gitlab ci.


Introducción

Ahora que tenemos claros los conceptos de gitlab ci vamos a crear un pipeline bastante sencillo, donde aplicaremos los principios basicos de esta herramienta.

Objetivo

Objetivo General:

  • El objetivo de la practica es ejecutar un pipeline creado en gitlab ci.

Laboratorio

Antes de comenzar

  • Contar con el acceso al ambiente del laboratorio

Inicio de laboratorio

Conexion a ambiente

Conexion a ambiente de kubernetes

  1. Ingresar al servidor de laboratorio con la llave proporcionada.

    export LAB=X
    ssh student@lab-${LAB}-aio 
    

  2. Cambiar al usuario root

    sudo -i
    

  3. Proporcione accesos administrativos al cluster de Kubernetes

    export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
    
    export PATH=$PATH:/var/lib/rancher/rke2/bin
    
    export CONTAINERD_ADDRESS=/run/k3s/containerd/containerd.sock
    


  1. Ingrese a la carpeta sample-angular-app

    cd angular-demo
    

  2. Elimine la configuracion existente de git.

    rm -rf .git/
    

  3. Crearemos un nuevo repositorio dentro de nuestro grupo test-group con nombre sample-angular-app

  4. Dentro de nuestra carpeta de sample-angular-app vamos a agregar este nuevo repositorio, con los comandos que nos brinda la interfaz de gitlab al crear un nuevo proyecto, bastante parecidas a las siguientes.

    git init --initial-branch=main
    git remote add origin https://gitlab.34-83-59-151.nip.io/test-group/sample-angular-test.git
    git add .
    git commit -m "Initial commit"
    git push --set-upstream origin main
    

  5. Cambie a una rama local llamada test

    git checkout -b test
    

  6. Cree un archivo llamado .gitlab-ci.yml con el siguiente contenido

    1
    2
    3
    4
    5
    6
    7
    test:
      stage: test
      tags:
        - dev
      script:
        - echo "Hello CI/CD World"
        - sleep 30
    

  7. Genere un commit

    git status
    git add .
    git commit -m "Added ci"
    

  8. Publique la nueva rama con los cambios

    git push --set-upstream origin test
    

  9. Ingrese a gitlab en su repositorio seleccione del menú izquierdo CI/CD > Pipelines

  10. Revise el Job del Pipeline

  11. Espere que se complete

  12. Revise el estado de su proyecto en la rama test

  13. Edite el archivo .gitlab-ci.yml agregando un Job mas en un stage diferente

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    test:
      stage: test
      tags:
        - dev
      script:
        - echo "Hello CI/CD World"
        - sleep 30
    
    after:
      stage: deploy
      tags:
        - qa
      script:
        - echo "Secuential Task"
        - sleep 30
    

  14. Guarde los cambios en un commit

    git add .
    git commit -m "Upd ci"
    git push
    

  15. Ingrese a gitlab en su repositorio seleccione del menú izquierdo CI/CD > Pipelines

  16. Revise los Jobs del Pipeline

  17. Espere que se completen

  18. Revise el estado de su proyecto en la rama test

  19. Edite el archivo .gitlab-ci.yml agregando un before_script al Job de test

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    test:
      stage: test
      tags:
        - dev
      before_script:
        - ls -l
        - echo $pwd
      script:
        - echo "Hello CI/CD World"
        - sleep 30
    
    after:
      stage: deploy
      tags:
        - qa
      script:
        - echo "Secuential Task"
        - sleep 30
    

  20. Guarde los cambios en un commit

    git add .
    git commit -m "Added before script"
    git push
    

  21. Ingrese a gitlab en su repositorio seleccione del menú izquierdo CI/CD > Pipelines

  22. Revise los Jobs del Pipeline

  23. Espere que se completen

  24. Revise el estado de su proyecto en la rama test

  25. Agregue un Job en un stage personalizado con la imagen quay.io/itmlabs/kubectl-tools:v0.0.1

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    stages:
      - test
      - build
      - deploy
    
    test:
      stage: test
      tags:
        - dev
      before_script:
        - ls -l
        - echo $pwd
      script:
        - echo "Hello CI/CD World"
        - sleep 30
    
    build:
      stage: build
      image: quay.io/itmlabs/kubectl-tools:v0.0.1
      tags:
        - dev
      script:
        - |
          if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
            echo "Running on default branch $CI_DEFAULT_BRANCH"
          else
            echo "Running on branch $CI_COMMIT_BRANCH"
          fi
    
    after:
      stage: deploy
      tags:
        - qa
      script:
        - echo "Secuential Task"
        - sleep 30
    

  26. Guarde los cambios en un commit

    git add .
    git commit -m "Added before script"
    git push
    

  27. Ingrese a gitlab en su repositorio seleccione del menú izquierdo CI/CD > Pipelines

  28. Revise los Jobs del Pipeline

  29. Espere que se completen

  30. Revise el estado de su proyecto en la rama test

Documentación