In Desarrollo y DevOps Última actualizaciónated:
Comparte en:
Software de Jira es la herramienta de gestión de proyectos número uno utilizada por equipos ágiles para planificar, rastrear, lanzar y respaldar software excelente.

Una guía paso a paso para crear la canalización de Jenkins

¿Por qué el oleoducto Jenkins?

Continuous Delivery (CD) es una parte esencial del ciclo de vida de DevOps.

Garantiza que el software/aplicación que los desarrolladores están creando esté siempre listo para producción. Para que esto suceda, cada vez que se actualice el códigoated, debe construirse, probarse e implementarse continuamente. Aquí es donde Jenkins Pipeline entra en escena.

In DevOpsLa 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 versiones más rápidas y frecuentes. Esto ayuda a incorporarate los comentarios en cada próximo lanzamiento.

¿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, mira esto Curso de Udemy para dominar Jenkins.

Un oleoducto Jenkins consta de varios states o etapas, y se ejecutan en una secuencia una tras otra. JenkinsFile es un archivo de texto simple que se utiliza para crearate una canalización como código en Jenkins. Contiene código en Groovy Domain Specific Language (DSL), que es fácil de escribir y legible por humanos.

O puedes ejecutar JenkinsFile separately, o también puede ejecutar el código de canalización desde la interfaz de usuario web de Jenkins. Hay dos maneras de crearate una tubería usando Jenkins.

  • Declarativo: una nueva forma de crear Jenkins Pipeline. Aquí escribe un código maravilloso que contiene bloques de "canalización", que se registra en un SCM (Gestión de código fuente)
  • Secuencia de comandos: forma de escribir código maravilloso donde el código se define dentro de bloques de "nodo".

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.

Create un oleoducto Jenkins

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

vamos a crearate una canalización declarativa.

En el panel de Jenkins, haga clic en Nuevo elemento. Luego ingrese un nombre de elemento, por ejemplo, 'Primera canalización' y seleccione el proyecto 'Canalización'. Luego haga clic en Aceptar.

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

pipeline {
         agent any
         stages {
                 stage('Build') {
                 steps {
                     echo 'Hi, GeekFlare. Starting to build the App.'
                 }
                 }
                 stage('Test') {
                 steps {
                    input('Do you want to proceed?')
                 }
                 }
                 stage('Deploy') {
                 parallel { 
                            stage('Deploy start ') {
                           steps {
                                echo "Start the deploy .."
                           } 
                           }
                            stage('Deploying now') {
                            agent {
                                    docker {
                                            reuseNode true
                                            image ‘nginx’
                                           }
                                    }
                            
                              steps {
                                echo "Docker Created"
                              }
                           }
                           }
                           }
                 stage('Prod') {
                     steps {
                                echo "App is Prod Ready"
                              }
                 
              }
}
}

Déjame explicarte los bloques anteriores.

  • La industrial El bloque consta de todas las instrucciones para crear, probar y entregar software. Es el componente clave de Jenkins Pipeline.
  • An agente está asignado para ejecutar la canalización en un nodo y asignarate un espacio de trabajo para la tubería.
  • A escenario es un bloque que tiene pasos para construir, probar e implementar la aplicación. Las etapas se utilizan para visualizar Jenkins Pipeline. processpor ejemplo.
  • A paso es una sola tarea a realizar, por ejemplo, create un directorio, ejecutar una imagen de Docker, eliminar un archivo, etc.

El código Groovy anterior lo estoy usando para JenkinsFile. Cualquier agente disponible será asignado al oleoducto. Luego defino la etapa de compilación y realizo un paso de eco simple. Luego definí la etapa de Prueba donde el paso pregunta si desea continuar o no. Después de eso, tengo createda etapa Deploy, 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. Aletaally, hay una etapa Prod con un simple paso de eco.

El proceso explicado anteriormente tiene etapas que tienen pasos simples para que usted comprenda cómo funciona. Una vez que aprendas a crearate a Pipeline, puede agregar más complejidad y creatividad.ate Tuberías complejas también.

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

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 construcción, le dará color rojo (# 27).

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

Así es como se verá la salida que termina con un mensaje SUCCESS.

Success Console Output

Started by user geekflare
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/First Pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
Hi, GeekFlare. Starting to build the App.
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] input
Do you want to proceed?
Proceed or Abort
Approved by geekflare
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy)
[Pipeline] parallel
[Pipeline] { (Branch: Deploy start )
[Pipeline] { (Branch: Deploying now)
[Pipeline] stage
[Pipeline] { (Deploy start )
[Pipeline] stage
[Pipeline] { (Deploying now)
[Pipeline] getContext
[Pipeline] isUnix
[Pipeline] sh
[Pipeline] echo
Start the deploy ..
[Pipeline] }
+ docker inspect -f . nginx
[Pipeline] // stage
[Pipeline] }

Error: No such object: nginx
[Pipeline] isUnix
[Pipeline] sh
+ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
8d691f585fa8: Pulling fs layer
5b07f4e08ad0: Pulling fs layer
abc291867bca: Pulling fs layer
abc291867bca: Verifying Checksum
abc291867bca: Download complete
5b07f4e08ad0: Verifying Checksum
5b07f4e08ad0: Download complete
8d691f585fa8: Verifying Checksum
8d691f585fa8: Download complete
8d691f585fa8: Pull complete
5b07f4e08ad0: Pull complete
abc291867bca: Pull complete
Digest: sha256:922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Status: Downloaded newer image for nginx:latest
[Pipeline] withDockerContainer
Jenkins does not seem to be running inside a container
$ 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 Pipeline@tmp:/var/lib/jenkins/workspace/First Pipeline@tmp: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 Created
[Pipeline] }
$ docker stop --time=1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // parallel
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Prod)
[Pipeline] echo
App is Prod Ready
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

El Jenkins Pipeline anterior tiene createImagen de la ventana acoplable de Nginx. Puede verificarlo ejecutando el siguiente comando. Puede ver que la imagen de la ventana acoplable de Nginx también aparece en la lista.

geekflare@chef-geekflare:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 2 weeks ago 126MB
httpd latest 7d85cc3b2d80 2 months ago 154MB
redis latest f7302e4ab3a8 2 months ago 98.2MB
geekflare_mongodb latest 095d17727ca0 3 months ago 325MB

Conclusión

Espero que esto te dé una idea de Oleoducto Jenkins beneficios y cómo puedes crearate uno. Lo anterior es una demostración simple y la mejor manera de aprender es intentar construir tuberías complejas.

Comparte en:
  • Avi
    Autor
    Avi es un entusiasta de la tecnología con experiencia en tecnologías de tendencia como DevOps, Cloud Computing, Big Data y muchas más. el es pasionate sobre aprender tecnologías de vanguardia y compartir su conocimiento con otros a través de...

Gracias a nuestros patrocinadores

Más lecturas interesantes sobre el desarrollo

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder