Contenido


Establezca una infraestructura de entrega continua con Jenkins

Comments

El establecimiento de la infraestructura en un proceso de entrega continua es un asunto importante. La infraestructura determina la eficiencia de DevOps y lo que se puede hacer en el proceso de entrega continua.

Este artículo contiene información sobre Jenkins y demuestra cómo:

  • Establecer el entorno de entrega continua con Jenkins.
  • Aplicar este conocimiento a la infraestructura de entrega continua.
  • Implementar la infraestructura de entrega continua con Jenkins.

Público objetivo

El Público objetivo de este artículo son los ingenieros de software que trabajan en entrega continua o en pruebas de automatización continua. Para seguir los pasos de este artículo, debe entender lo siguiente:

  • Desarrollo de scripts.
  • El proceso de desarrollo de software.

Visión general de Jenkins

Jenkins es una herramienta de integración continua que normalmente se utiliza para el desarrollo de software. Esta infraestructura de automatización ejecuta trabajos repetidos. Jenkins puede gestionar y supervisar el inicio de los comandos de sistemas remotos y también puede ejecutar cualquier cosa que se ejecute por medio de la línea de comando. Jenkins integra el e-mail, TestNG y otras herramientas con plug-ins compatibles.

Después de la instalación (vea la barra lateral si todavía no ha instalado Jenkins), acceda a Jenkins por medio de su navegador con el siguiente enlace http://yourjenkinsmasterhost:8080.

Jenkins es compatible con el modo maestro/esclavo . La carga de trabajo de crear proyectos se delega a varios nodos esclavos . Esto permite que una única instalación de Jenkins acoja un gran número de proyectos, o que brinde los diferentes entornos que se necesitan para las creaciones y pruebas.

Configurar y activar Jenkins

Antes de utilizar Jenkins, es necesario configurarlo. En este artículo, usted aprenderá cómo configurar el maestro/esclavo, instalar plug-ins, configurar proyectos y variables/propiedades.

Configure las máquinas maestras y esclava

Primero, instale Jenkins en la máquina maestra (Linux o Windows). Después, establezca los esclavos (Windows o Linux) con la ayuda del maestro de Jenkins.

Jenkins tiene incorporada una implementación del cliente SSH que utiliza para comunicarse con el sshd remoto y con un agente esclavo. Hay varias formas de realizar las comunicaciones entre el maestro y los esclavos:

  • Para esclavos de UNIX, a través de SSH. En los esclavos sólo necesita SSH y JRE.
  • Para Windows, con el Distributed Component Object Model (DCOM)
  • Utilice una conexión de socket diferente cuando el maestro no pueda ver los esclavos, a través de Java Web Start.

Instalar el máster en Linux

Para instalar el maestro en una máquina Linux escriba los comandos que aparecen en el Listado 1.

Listado 1. Instalar el maestro en Linux
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

Instalar el maestro Windows

Escriba el comando del Listado 2 para instalar el maestro en una máquina de Windows.

Listado 2. Instalar el maestro en Windows
java -jar jenkins.war

Después de ejecutar el comando, acceda a http://<hostname>:8080/ después haga clic en Gestionar Jenkins > Instalar como Servicio de Windows > Instalar

Configurar esclavos

Acceso http://<JenkinsMasterHost>:8080/ > Gestionar Jenkins > Gestionar Nodo > Nuevo Nodo y configure la información del esclavo según su host. El maestro de Jenkins ayuda a instalar Jenkins en máquinas esclavas.

Para la máquina esclava de Windows hay un comando adicional:

Listado 3. Comando adicional, esclavo de Windows
sc.exe create "<serviceKey>" start= auto binPath= "<path to jenkins-slave.exe>"
DisplayName= "<service display name>"

El nombre de la clave de registro que define el servicio es <serviceKey>. <nombre mostrado del servicio> es la etiqueta que identifica el servicio en la interfaz del gestor de servicios.

Gestione los plug-ins

Los plug-ins son otra función importante de Jenkins. Actualmente, Jenkins es compatible con más de 1000 plug-ins. Estos plug-ins se pueden dividir en diferentes categorías (plug-ins para la gestión de código fuente, para crear informes, desarrollar herramientas, etc.). Con los plug-ins, es posible supervisar, implementar y configurar diferentes trabajos en Jenkins. Para gestionar los plug-ins, vaya a https://JenkinsMasterHost:8080 , luego seleccione Gestionar Jenkins > Gestionar Plug-ins. Hay cuatro pestañas:

  • Actualizaciones: plug-ins instalados que tienen actualizaciones
  • Disponible: plug-ins disponibles para instalación
  • Instalados: plug-ins instalados
  • Avanzados: Gestionar los plug-ins

Instale los plug-ins por medio de la Internet

Cuando el maestro de Jenkins tiene acceso a Internet, instalar los plug-ins es fácil. En la pestaña Disponible , elija los plug-ins que quiere instalar. Es posible eliminar los plug-ins desde la pestaña Instalados . Haga clic en el botón desinstalar para eliminar los plug-ins.

Instale los plug-ins manualmente

Es posible instalar los plug-ins manualmente si el maestro de Jenkins no puede acceder a Internet. Encuentre el plug-in que quiere instalar, luego guarde el archivo *.hpi/*.jpi descargado en el directorio $JENKINS_HOME/plug-ins . Reinicie Jenkins para activar los plug-ins.

Proyectos de Jenkins

Jenkins admite cuatro tipos de proyectos: estilo libre, maven, multiconfiguración y trabajos externos. El proyecto de estilo libre es la función central de Jenkins. Se puede combinar en SCM con cualquier sistema de creación. También puede usarlo para cosas además de desarrollar el software.

Configure proyectos

Vaya a https://JenkinsMasterHost:8080, seleccione Nuevo Elemento, especifique el Nombre del elemento y su Tipo para crear el proyecto.

En la página de configuración del proyecto, el Nombre del elemento también se llama Nombre del proyecto. Hay cuatro tipos de elementos. También puede elegir la opción copiar elemento existente, como se muestra en la Imagen 1. Haga clic en OK para abrir la página de información del proyecto.

Imagen 1. Crear nuevo elemento
Crear nuevo elemento
Crear nuevo elemento

La información que necesita para la página de información es:

Nombre del proyecto: Si se actualiza el nombre del proyecto, también se actualiza el nombre del elemento.

Descripción: Descripción del trabajo

Estrategia: Estrategia de registro, cuantos registros quiere mantener

Parametrizado: Define las variables para el proyecto. Hay diferentes tipos de variables (parámetro de archivo, parámetro de texto, parámetro de cadena de caracteres, etc.)

Dónde: Restringe donde se puede ejecutar el proyecto

Configuración de avance: Más especificaciones para controlar la forma de crear el proyecto

Los plug-ins que instale afectarán a las categorías y funciones que tendrá en su proyecto. Algunas categorías y funciones son:

  • Gestión del código fuente: la herramienta que gestiona el código fuente.
  • Crear desencadenadores: el método para desencadenar una creación.
  • Creación: la creación es la parte más importante de un proyecto. Aquí se especifican los pasos exactos para ejecutar un proyecto. Los pasos habituales son comandos de DOS para Windows, o comandos de Shell para Linux.
  • Acciones posteriores a la creación: las acciones que se realizan después de la creación. Las acciones que se realizan habitualmente después de la creación son: enviar e-mails, desencadenar otras creaciones o publicar el informe de resultados.

Después de completar la configuración, haga clic en Guardar. Encontrará el proyecto guardado en https://JenkinsMasterHost:8080Jenkins > All.

Desencadenar proyectos

Con Jenkins es posible desencadenar para crear proyectos de forma manual o automática. Para desencadenar una creación hay diferentes mecanismos . Si usted elige desencadenar la creación automáticamente, es posible definir esa opción en Crear Desencadenadores cuando configure el proyecto. Las opciones disponibles son:

  • Crear el proyecto después de crear otros proyectos: Después de que configure un proyecto, puede definir si quiere crear otros proyectos después de este proyecto. Elija esta opción si su proyecto depende de otros proyectos.
  • El desencadenante crea de forma remota (p. ej., con scripts): La creación del proyecto se desencadena desde otros sistemas o hosts. Por ejemplo, es posible desencadenar la creación del proyecto vía email o enviar una solicitud de creación desde scripts.
  • Crear de forma periódica: Cree una planificación para crear el proyecto periódicamente, tal como se define en su configuración.
  • Preguntar al SCM: Esta opción crea el proyecto cuando hay cambios en el código fuente. Con esta opción se específica la frecuencia con la que Jenkins pregunta al Sistema de control de revisiones. Si hay cambios en el código fuente, el proyecto se crea.
Imagen 2. Opciones al Crear Desencadenantes
Opciones al crear desencadenantes
Opciones al crear desencadenantes

Distribución del proyecto

La delegación exacta del comportamiento depende de la configuración de cada proyecto. Si el proyecto está configurado como Restringir donde se puede ejecutar el proyecto, el proyecto solo se ejecutará en la máquina especificada. Es posible elegir que otros proyectos deambulen libremente entre los esclavos, todo depende de la configuración.

Actualmente, Jenkins emplea estas estrategias para distribuir los proyectos:

  • Si un proyecto se configura como Restringir donde se puede ejecutar el proyecto, solo se ejecuta ahí.
  • Jenkins intenta crear un proyecto en la misma computadora en la que se habían creado previamente.
  • Jenkins intenta mover las creaciones largas a los esclavos.

Configurar variables/propiedades

Propiedades globales

Usted establecerá las variables de entorno (que definen el nombre y el valor de la propiedad) y las ubicaciones de las herramientas en las propiedades globales: http://<JenkinsMasterHost>:8080 , luego seleccionará Gestionar Jenkins > configuración. Puede utilizar estas propiedades en todos los proyectos de Jenkins.

Variables de entorno

En los proyectos puede hacer referencias a variables de entorno. Seleccione el recuadro Variables de entorno y defina el nombre y el valorvalor de las variables, como se muestra en la Imagen 3.

Imagen 3. Definir las variables del entorno
Nombre y valor de las variables
Nombre y valor de las variables

Ubicaciones de las Herramientas

Seleccione el recuadro de selección Ubicaciones de las Herramientas . Seleccione la herramienta nombrede la lista desplegable y defina el directorio de inicio para la herramienta. En los proyectos se puede hacer referencia a la herramienta.

Imagen 4. Defina las ubicaciones de las herramientas
Nombre de la lista desplegable y directorio de inicio para la herramienta
Nombre de la lista desplegable y directorio de inicio para la herramienta

Propiedades locales del proyecto

Las propiedades locales del proyecto solo están disponibles dentro de un proyecto. Cuando configure un proyecto, seleccione la opción Esta creación está parametrizada como se muestra en la Imagen 5. Al seleccionar esta opción se activa la función para añadir parámetros como pares de nombre/valor. Puede utilizar estos parámetros como las propiedades locales del proyecto.

Imagen 5. Establecer propiedades locales
Propiedades locales del proyecto
Propiedades locales del proyecto

Práctica: estructura y procesos de la infraestructura de entrega continua

La entrega continua tiene el objetivo de asegurarse de que el software se pueda desarrollar, probar, implementar y, finalmente, entregar a entornos de producción con un enfoque eficiente y de alta calidad. Con la entrega continua, todos los cambios que se realizan a cualquier parte del sistema de software (sin importar si es desde el nivel de infraestructura, aplicación o de datos de la personalización) se aplica de forma continua al entorno de producción por medio de un canal de entrega específico.

El proceso de

entrega continua requiere la implementación rápida y automática de conjuntos de cambios. Para finalizar una implementación o una entrega existen varios pasos. El proceso estándar es:

  • El desarrollador entrega cambios
  • La herramienta de control de origen hace las creaciones
  • Se ejecutan pruebas automáticas
  • Se instala la creación

El proceso de entrega continua se muestra en la Imagen 6. En el momento planificado, se inicia el primer proyecto en Jenkins.

Proyecto 1
La primera tarea de este proyecto es descargar el código fuente desde una herramienta de gestión de origen, como IBM® Concierto de equipo racional™. Si el proyecto falla, las notificaciones de los fallos se envían por e-mail y se detiene el resto de proyectos. Si el proyecto tiene éxito, se desencadena el siguiente proyecto.
Proyecto 2
IBM® Security AppScan® revisa el código fuente que se descargó desde el Proyecto 1 para encontrar problemas de seguridad.
Proyecto 3
La creación se inicia después de que el proyecto de AppScan finaliza.
Proyecto 4
Después de una creación correcta, el siguiente proyecto es instalarla en el entorno de Prueba de Verificación de la Creación (BVT).
Proyecto 5
Ejecutar casos de prueba de BVT en el entorno de BVT. Si se aprueba la BVT, Jenkins empieza a instalar la creación en los entornos de desarrollo y de pruebas (Proyectos 6 y 7).
Proyecto 6
Instala las creaciones en los entornos de desarrollo y envía notificaciones por email. El proyecto instalar creaciones en los entornos de desarrollo prepara los entornos para que los desarrolladores puedan realizar su trabajo de integración o desarrollo.
Proyecto 7
Instalar creaciones en entornos de prueba. Después de instalar la creación en los entornos de prueba, Jenkins desencadena el Proyecto 8 para ejecutar la Prueba de Verificación Funcional (FVT).
Proyecto 8
FVT es una lista de pruebas de automatización que incluye muchas pruebas. Después de aprobar la FVT, la creación se instala en los entornos de producción (Proyecto 8).
Proyecto 9
Los entornos de producción se pueden instalar en sus servidores locales, tanto en la nube como en IBM® Softlayer®. El acceso está disponible para los usuarios internos y externos.

La imagen 6 muestra el proceso de la infraestructura de entrega continua. Después de que un proyecto tiene éxito, se lanza el siguiente proyecto. Si un proyecto falla, el proceso acaba y se envían emails a todos los suscriptores.

Imagen 6. Proceso para la infraestructura de entrega continua
Diagrama de flujo del proceso para la infraestructura de entrega continua
Diagrama de flujo del proceso para la infraestructura de entrega continua

Topología de implementación para la infraestructura de entrega continua

El lado izquierdo de la imagen 7 muestra una implementación de un desarrollo tradicional. Un desarrollador confirma los conjuntos de cambios al servidor de control de origen, por ejemplo, Rational Team Concert, y después el servidor de la creación hace las creaciones.

El lado derecho de la imagen 7 ilustra el proceso de entrega continua. Después de añadir Jenkins, habrá un maestro de Jenkins. El kit de herramientas de creación Rational Team Concert se instala en ese servidor. El maestro de Jenkins se instala en un plug-in de Rational Team Concert. Utiliza en kit de herramientas de creación para descargar el código fuente desde Rational Team Concert y desencadena el kit de herramientas de creación para hacer la creación. Los proyectos AppScan y BVT se ejecutan en el maestro de Jenkins. Los entornos de desarrollo, los entornos de prueba y los entornos de producción sirven como esclavos de Jenkins. Son controlados por el maestro de Jenkins y ejecutan los proyectos de instalación. Los entornos de prueba ejecutan el proyecto de prueba de verificación funcional.

Nota:
Es más fácil realizar el seguimiento de las tareas si se asocian los proyectos a las computadoras porque cada máquina tiene roles diferentes.

Imagen 7. Topología para la infraestructura de entrega continua
Flujo de desarrollo y Jenkins
Flujo de desarrollo y Jenkins

Resumen

Ahora sabe cómo establecer el entorno de entrega continua con Jenkins. Esta infraestructura le ayuda a implementar automáticamente el trabajo, lo que ahora el tiempo precioso de los desarrolladores y probadores. Esta infraestructura también le ayuda a descubrir con anticipación los posibles problemas o defectos del proceso.


Recursos para Descargar


Temas relacionados


Comentarios

Inicie Sesión o Regístrese para agregar comentarios.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing
ArticleID=1063926
ArticleTitle=Establezca una infraestructura de entrega continua con Jenkins
publish-date=12132018