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
-
Ingresar al servidor de laboratorio con la llave proporcionada.
export LAB=X ssh student@lab-${LAB}-aio -
Cambiar al usuario root
sudo -i -
Proporcione accesos administrativos al cluster de Kubernetes
export KUBECONFIG=/etc/rancher/rke2/rke2.yamlexport PATH=$PATH:/var/lib/rancher/rke2/binexport CONTAINERD_ADDRESS=/run/k3s/containerd/containerd.sock
-
Ingrese a la carpeta
sample-angular-appcd angular-demo -
Elimine la configuracion existente de git.
rm -rf .git/ -
Crearemos un nuevo repositorio dentro de nuestro grupo test-group con nombre sample-angular-app
-
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 -
Cambie a una rama local llamada
testgit checkout -b test -
Cree un archivo llamado
.gitlab-ci.ymlcon el siguiente contenido1 2 3 4 5 6 7
test: stage: test tags: - dev script: - echo "Hello CI/CD World" - sleep 30 -
Genere un commit
git status git add . git commit -m "Added ci" -
Publique la nueva rama con los cambios
git push --set-upstream origin test -
Ingrese a gitlab en su repositorio seleccione del menú izquierdo
CI/CD > Pipelines -
Revise el Job del Pipeline
-
Espere que se complete
-
Revise el estado de su proyecto en la rama
test -
Edite el archivo
.gitlab-ci.ymlagregando un Job mas en un stage diferente1 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 -
Guarde los cambios en un commit
git add . git commit -m "Upd ci" git push -
Ingrese a gitlab en su repositorio seleccione del menú izquierdo
CI/CD > Pipelines -
Revise los Jobs del Pipeline
-
Espere que se completen
-
Revise el estado de su proyecto en la rama
test -
Edite el archivo
.gitlab-ci.ymlagregando unbefore_scriptal Job detest1 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 -
Guarde los cambios en un commit
git add . git commit -m "Added before script" git push -
Ingrese a gitlab en su repositorio seleccione del menú izquierdo
CI/CD > Pipelines -
Revise los Jobs del Pipeline
-
Espere que se completen
-
Revise el estado de su proyecto en la rama
test -
Agregue un Job en un stage personalizado con la imagen
quay.io/itmlabs/kubectl-tools:v0.0.11 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 -
Guarde los cambios en un commit
git add . git commit -m "Added before script" git push -
Ingrese a gitlab en su repositorio seleccione del menú izquierdo
CI/CD > Pipelines -
Revise los Jobs del Pipeline
-
Espere que se completen
-
Revise el estado de su proyecto en la rama
test