¿Cómo crear su primera tubería de Jenkins?

Una guía paso a paso para crear la tubería de Jenkins


Por qué Jenkins Pipeline?

La entrega continua (CD) es una parte esencial del ciclo de vida de DevOps.

Se asegura de que los desarrolladores de software / aplicaciones que estén creando estén siempre listos para la producción. Para que esto suceda, siempre que el código se actualice, debe construirse, probarse e implementarse continuamente. Aquí es donde Jenkins Pipeline entra en escena.

En DevOps, la integración continua y la entrega continua (CI / CD) se logran a través de Jenkins Pipeline. El uso de Jenkins Pipeline para CD ayuda a entregar el software con lanzamientos más rápidos y frecuentes. Esto ayuda a incorporar los comentarios en cada próxima versión.

¿Qué es Jenkins Pipeline??

Jenkins Pipeline es una combinación de trabajos para entregar software continuamente usando Jenkins.

Supongo que sabes lo que es Jenkins. Si no, entonces mira esto Curso de Udemy para dominar a Jenkins.

Una tubería de Jenkins consta de varios estados o etapas, y se ejecutan en una secuencia una tras otra. JenkinsFile es un archivo de texto simple que se usa para crear una canalización como código en Jenkins. Contiene código en lenguaje específico de dominio Groovy (DSL), que es simple de escribir y legible por humanos.

Puede ejecutar JenkinsFile por separado o también puede ejecutar el código de canalización desde la interfaz de usuario web de Jenkins. Hay dos formas de crear una tubería con Jenkins.

  • Declarativo: una nueva forma de crear Jenkins Pipeline. Aquí se escribe un código maravilloso que contiene bloques de “canalización”, que se registra en un SCM (gestión del código fuente)
  • Scripted – forma de escribir código maravilloso donde el código se define dentro de bloques “nodos”.

Antes de entrar en la demostración, si no ha instalado Jenkins, instálelo primero. Asegúrese de tener Jenkins en funcionamiento en su sistema.

Crear una tubería de Jenkins

Así es como se ve un flujo de tubería de Jenkins, que consiste en múltiples etapas entre los desarrolladores que crean un software (codificación) y el software entregado en producción.

Oleoducto Jenkins

Vamos a crear una tubería declarativa.

En el panel de Jenkins, haga clic en Nuevo elemento. Luego ingrese el nombre de un elemento, por ejemplo, “Primera tubería” y seleccione el proyecto “Tubería”. Luego haga clic en OK.

Nuevo artículo - Jenkins Pipeline

Haga clic en la pestaña Tubería como se muestra en la imagen a continuación y coloque su código JenkinsFile (Código Groovy) aquí.

JenkinsCódigo de archivo

tubería {
agente de cualquier
etapas {
etapa (‘Build’) {
pasos {
echo ‘Hola, GeekFlare. Empezando a construir la aplicación.
}
}
etapa (‘Prueba’) {
pasos {
input (‘¿Desea continuar?’)
}
}
etapa (‘Implementar’) {
paralela {
etapa (‘Inicio de despliegue’) {
pasos {
eco "Comience el despliegue .."
}
}
etapa (‘Implementación ahora’) {
agente {
docker {
reuseNode true
imagen “nginx”
}
}

pasos {
eco "Docker creado"
}
}
}
}
etapa (‘Prod’) {
pasos {
eco "La aplicación está lista para producción"
}

}
}
}

Déjame explicarte los bloques anteriores.

  • los tubería El bloque consta de todas las instrucciones para construir, probar y entregar software. Es el componente clave de una tubería de Jenkins..
  • Un agente se asigna para ejecutar la tubería en un nodo y asignar un espacio de trabajo para la tubería.
  • UNA escenario es un bloque que tiene pasos para construir, probar e implementar la aplicación. Las etapas se utilizan para visualizar los procesos de Jenkins Pipeline.
  • UNA paso es una tarea única que se debe realizar, por ejemplo, crear un directorio, ejecutar una imagen acoplable, eliminar un archivo, etc..

El código Groovy anterior, lo estoy usando para JenkinsFile. Cualquier agente disponible se está asignando a la tubería. Luego estoy definiendo la etapa de construcción y realizando un simple paso de eco. Luego definí la etapa de prueba donde el paso le pregunta si desea continuar o no. Después de eso, he creado una etapa de implementación, que tiene dos etapas más ejecutándose en paralelo. La etapa de inicio de implementación tiene un paso con el comando echo, y la implementación ahora tiene un paso que extrae una imagen acoplable de Nginx en el nodo. Finalmente, hay una etapa Prod con un simple paso de eco.

La tubería explicada anteriormente tiene etapas que tienen pasos simples para que entiendas cómo funciona. Una vez que aprenda a crear una tubería, puede agregar más complejidad y crear tuberías complejas también.

Una vez que tenga el código en la pestaña Tubería, haga clic en Aplicar y Guardar. Finalmente, haga clic en Construir ahora para comenzar a construir la tubería Jenkins que acaba de crear.

Construir ahora

Así es como se verá la interfaz de usuario cuando se ejecute la canalización. Si ha seguido todos los pasos correctamente, su compilación será exitosa y mostrará un color azul para la compilación (# 27). Si hay errores en la compilación, le dará color rojo a la compilación (# 27).

Jenkins Build 27

Ahora haga clic en la compilación # 27 y luego haga clic en Salida de la consola para verificar qué sucedió exactamente en el back-end cuando se ejecutó.

Jenkins Build

Así es como se verá la salida que termina con un mensaje de ÉXITO.

Salida de consola exitosa

Iniciado por el usuario geekflare
Ejecución en el nivel de durabilidad: MAX_SURVIVABILITY
[Pipeline] Inicio de Pipeline
Nodo [Pipeline]
Ejecutando en Jenkins en / var / lib / jenkins / workspace / First Pipeline
[Pipeline] {
Etapa [Pipeline]
[Pipeline] {(Build)
[Pipeline] echo
Hola GeekFlare Comenzando a construir la aplicación.
[Tubería]}
[Pipeline] // etapa
Etapa [Pipeline]
[Pipeline] {(Prueba)
Entrada [Pipeline]
Quieres proceder?
Proceder o cancelar
Aprobado por geekflare
[Tubería]}
[Pipeline] // etapa
Etapa [Pipeline]
[Pipeline] {(Implementar)
[Tubería] paralela
[Pipeline] {(Rama: inicio de implementación)
[Pipeline] {(Rama: Despliegue ahora)
Etapa [Pipeline]
[Canalización] {(inicio de implementación)
Etapa [Pipeline]
[Pipeline] {(Implementando ahora)
[Pipeline] getContext
[Pipeline] isUnix
[Pipeline] sh
[Pipeline] echo
Comience el despliegue ..
[Tubería]}
+ docker inspeccionar -f. nginx
[Pipeline] // etapa
[Tubería]}

Error: No existe tal objeto: nginx
[Pipeline] isUnix
[Pipeline] sh
+ docker pull nginx
Uso de etiqueta predeterminada: último
último: extracción de la biblioteca / nginx
8d691f585fa8: Tirando de la capa fs
5b07f4e08ad0: Tirando de la capa fs
abc291867bca: tirando de la capa fs
abc291867bca: Verificación de suma de verificación
abc291867bca: descarga completa
5b07f4e08ad0: Verificación de suma de verificación
5b07f4e08ad0: Descarga completa
8d691f585fa8: Verificación de suma de verificación
8d691f585fa8: Descarga completa
8d691f585fa8: extracción completa
5b07f4e08ad0: extracción completa
abc291867bca: extracción completa
Resumen: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Estado: Imagen más nueva descargada para nginx: más reciente
[Pipeline] withDockerContainer
Jenkins no parece estar corriendo dentro de un contenedor
$ docker run -t -d -u 125: 131 -w "/ var / lib / jenkins / workspace / First Pipeline" -v "/ var / lib / jenkins / workspace / First Pipeline: / var / lib / jenkins / workspace / First Pipeline: rw, z" -v "/ var / lib / jenkins / workspace / First [correo electrónico protegido]: / var / lib / jenkins / workspace / Primero [correo electrónico protegido]: rw, z" -e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** nginx cat
$ docker top 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Pipeline] {
[Pipeline] echo
Docker creado
[Tubería]}
$ docker stop –time = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Pipeline] // withDockerContainer
[Tubería]}
[Pipeline] // etapa
[Tubería]}
[Tubería] // paralelo
[Tubería]}
[Pipeline] // etapa
Etapa [Pipeline]
[Pipeline] {(Prod)
[Pipeline] echo
La aplicación está lista para producción
[Tubería]}
[Pipeline] // etapa
[Tubería]}
[Pipeline] // nodo
[Pipeline] Fin de Pipeline
Terminado: ÉXITO

Jenkins Pipeline anterior ha creado una imagen acoplable de Nginx. Puede verificar eso ejecutando el siguiente comando. Puede ver que la imagen del acoplador Nginx también aparece.

[correo electrónico protegido]: ~ $ docker imagen ls
ID DE IMAGEN DE ETIQUETA DE REPOSITORIO TAMAÑO CREADO
nginx latest 540a289bab6c Hace 2 semanas 126MB
httpd latest 7d85cc3b2d80 Hace 2 meses 154MB
redis latest f7302e4ab3a8 Hace 2 meses 98.2MB
geekflare_mongodb última 095d17727ca0 Hace 3 meses 325MB

Conclusión

Espero que esto te de una idea de Tubería de Jenkins beneficios y cómo puedes crear uno. Lo anterior es una demostración simple, y la mejor manera de aprender es intentando construir tuberías complejas.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map