Teya Salat

jenkins - Comenzando con Jenkins

Observaciones


es una herramienta de integración continua de código abierto escrita en Java. El proyecto fue separado dedespués de una disputa con.


Jenkins proporciona servicios de integración continua para el desarrollo de software. Es un sistema basado en servidor que se ejecuta en un contenedor de servlets como Apache Tomcat. Es compatible con herramientas SCM, incluidas AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase y RTC, y puede ejecutar proyectos basados ​​en Apache Ant y Apache Maven, así como scripts de shell arbitrarios y comandos por lotes de Windows. El principal desarrollador de Jenkins es. Lanzado bajo la licencia MIT, Jenkins es software libre.


Las compilaciones pueden iniciarse por diversos medios, incluido el desencadenamiento por cometer en un sistema de control de versiones, programando a través de un mecanismo similar a cron, construyendo cuando otras compilaciones se han completado y solicitando una URL de compilación específica.


Versiones


Jenkins es (y prosigue siendo) un sistema de integración continua (CI) que deja la automatización del proceso de desarrollo de software, como el código de construcción en los activadores de confirmación de SCM. No obstante, la creciente necesidad de entrega continua (CD) ha pedido que Jenkins evolucione para un sistema CI puro a una mezcla de CI y CD. Además, la necesidad de no materializar los trabajos de Jenkins ha ido creciendo y los trabajos clásicos de Jenkins 1.x
Freestyle/Maven jobscomenzaron a ser demasiado limitados para determinadas necesidades.


Bajo Jenkins, el complemento 1.xa llamado
workflow-pluginapareció para permitir a los desarrolladores escribir código para describir trabajos. Jenkins 2 va más allá al agregar soporte incorporado para
Pipeline as Code. El primordial beneficio es que las tuberías, siendo archivos de scripts Groovy, pueden ser más complejas que los trabajos de estilo libre configurados por UI y pueden ser controladas por versión. Jenkins dos también añade una nueva interfaz que facilita la visualización de diferentes "etapas" definidas en una tubería y sigue el progreso de toda la tubería, como a continuación:


Para conseguir una descripción completa de lo que Jenkins 2 añade a Jenkins, consulte la.


Además, elestá disponible en el sitio web de Jenkins.


Configurar un proyecto en Jenkins.


Aquí revisaremos la última copia del código de nuestro proyecto, ejecutaremos las pruebas y vamos a hacer la aplicación en vivo. Para lograrlo, siga los pasos a continuación:



  1. Abre Jenkins en el navegador.

  2. Haga clic en el enlace

    Nuevo trabajo
    .

  3. Ingrese el nombre del proyecto y seleccione el enlace

    Crear un proyecto de software de estilo libre
    .

  4. Haga clic en el botón

    Aceptar
    .

  5. En la

    sección Administración del código fuente
    , escoja la casilla de radio junto a la herramienta de administración del código fuente. En mi caso he escogido

    Git
    .


Proporcionar url de git repo como
git://github.com/example/example.git



  1. Debajo de los

    desencadenantes de compilación
    , seleccione el cuadro de radio junto a

    Encuesta SCM
    .

  2. Proporcionar
    *****en el cuadro de

    horario
    . Este cuadro es responsable de activar la compilación a intervalos regulares.
    *****especifica que, el trabajo se activará cada minuto para los cambios en git repo.

  3. En la sección

    Generar
    , haga click en el botón

    Agregar paso de compilación
    y entonces seleccione la opción con la que quiere recopilar el proyecto. He seleccionado

    Ejecutar Shell
    . En el cuadro de comandos, escriba el comando para recopilar, ejecute las pruebas y desplácelo a prod.

  4. Desplácese hacia abajo y

    Guardar
    .


Así que arriba, hemos configurado un proyecto básico en Jenkins que activará la compilación a cada minuto para el cambio en su repositorio git. Nota: para configurar el proyecto complejo, es posible que tenga que instalar ciertos complementos en Jenkins.


Configure un proyecto de compilación simple con Jenkins dos pipeline script


Aquí vamos a crear un canal de Groovy en Jenkins dos para efectuar los siguientes pasos:



  • Verifique cada cinco minutos si se ha enviado un nuevo código a nuestro proyecto.

  • Código de salida de repo SCM

  • Maven compila nuestro código de Java.

  • Ejecuta nuestras pruebas de integración y publica los resultados.


Aquí están los pasos que haremos:




  1. Asegúrese de que tengamos al menos una versión 2.0 de Jenkins (puede contrastarlo en el rincón inferior derecha de su página) como:




  2. En la página de comienzo de Jenkins, haga clic en
    Nuevo artículo




  3. Ingrese el nombre del proyecto y seleccione
    Pipeline




  4. En la sección
    Disparadores de compilación, elija la opción
    Poll SCMy agregue el siguiente horario CRON de cinco minutos:
    */5 * * * *




  5. En la sección
    Pipeline, escoja
    Pipeline Scripto
    Pipeline Script desde SCM




  6. Si seleccionó
    Pipeline Script de SCMen el paso anterior, ahora precisa especificar su URL de repositorio de SCM (Git, Mercurial, Subversion) en la
    URL del repositorio, como
    /example/example.git. También debe detallar la
    rutade la
    secuenciade
    comandosde su fichero de secuencias de comandos Groovy en su repositorio example.git, por servirnos de un ejemplo,
    pipelines/example.groovy




  7. Copie el próximo código Groovy, ya sea de forma directa en la ventana del script Groovy si previamente hizo clic en
    Pipeline Scripto en su
    example.groovysi eligió
    Pipeline Script de SCM




Asegúrese de que tengamos al menos una versión dos.0 de Jenkins (puede contrastarlo en el rincón inferior derecha de su página) como:


En la página de inicio de Jenkins, haga click en
Nuevo artículo


Ingrese el nombre del proyecto y elija
Pipeline


En la sección
Disparadores de compilación, seleccione la opción
Poll SCMy añada el próximo horario CRON de cinco minutos:
*/5 * * * *


En la sección
Pipeline, escoja
Pipeline Scripto
Pipeline Script desde SCM


Si seleccionó
Pipeline Script de SCMen el paso precedente, ahora necesita precisar su URL de repositorio de SCM (Git, Mercurial, Subversion) en la
URL del repositorio, como
/example/example.git. agencia redes sociales én debe especificar la
rutade la
secuenciade
comandosde su fichero de secuencias de comandos Groovy en su repositorio example.git, por poner un ejemplo,
pipelines/example.groovy


Copie el siguiente código Groovy, así sea de manera directa en la ventana del script Groovy si anteriormente hizo clic en
Pipeline Scripto en su
example.groovysi eligió
Pipeline Script de SCM


Aquí tienes, ahora deberías poder recopilar y probar tu primer proyecto de Jenkins usando la canalización Jenkins dos Groovy.


Instalación


Para sistemas basados ​​en apt-get como Ubuntu


Agrega el repositorio de Jenkins:



wget -q -O - -ci.org/debian/ Jenkins-ci.org.key | sudo apt-key


Actualice las fuentes y también instale Jenkins:



sudo apt-get update



sudo apt-get install jenkins


Ahora se crea un usuario jenkins y, de manera predeterminada, Jenkins se ejecutará en el puerto ocho mil ochenta.


Para distribuciones basadas en RPM como Red Hat Enterprise Linux (RHEL), CentOS, Fedora o Scientific Linux


Para descargar el fichero de repositorio para la versión estable:



sudo wget -O bien /etc/yum.repos.d/jenkins.repo -ci.org/redhat-stable/jenkins.repo


O si quieres los últimos lanzamientos semanales:



sudo wget -O bien /etc/yum.repos.d/jenkins.repo -ci.org/redhat/jenkins.repo


Importar la clave pública:



sudo rpm --import -ci.org/redhat/jenkins-ci.org.key


Instale Jenkins usando yum:



sudo yum install jenkins


Jenkins requiere java para ejecutarse, para instalarlo:



sudo yum install java


Para comenzar / detener / reiniciar el empleo de jenkins:



sudo service jenkins start/stop/restart


Actualización de jenkins (instalaciones RPM)



  1. Directorio de inicio de jenkins de copia de seguridad

  2. Reemplace jenkins.war en la próxima ubicación con un nuevo fichero WAR. / usr / lib / jenkins / jenkins.war`

  3. Reiniciar Jenkins

  4. Verifique los complementos fijados y, si es necesario, descuelgue

  5. Reload Configuration from Disk



nota: para las actualizaciones de Jenkins dos para el servidor de aplicaciones jetty agrupadas, desactive el puerto AJP (configure
JENKINS_AJP_PORT="-1") en
/etc/sysconfig/jenkins.


Instalar el complemento desde una fuente externa


El cliente del servicio JAR debe ser el fichero CLI JAR, no el mismo JAR / WAR que ejecuta el propio Jenkins. Las ID únicas se pueden localizar en una página respectiva de los complementos en la wiki de la CLI de Jenkins (


Introducción completa de Jenkins en un lugar.



1. Jenkins:


Jenkins es una herramienta de integración continua de código abierto escrita en Java. El proyecto fue separado de Hudson después de una disputa con Oracle.


En pocas palabras, Jenkins es el principal servidor de automatización de código abierto. Construido con Java, da cientos de complementos para permitir la creación, prueba, implementación y automatización de prácticamente cualquier proyecto.



Características:Jenkins ofrece las siguientes funciones principales listas para usar, y muchas más se pueden añadir a través de complementos:


Instalación sencilla: simplemente ejecute java -jar jenkins.war, desplácelo en un contenedor de servlets. Sin instalación adicional, sin base de datos. ¿Prefieres un instalador o bulto nativo? Tenemos esos también. Configuración sencilla: Jenkins se puede configurar totalmente desde su interfaz gráfica de usuario amigable con extensas verificaciones de errores sobre la marcha y ayuda en línea. Ecosistema de complementos enriquecidos: Jenkins se integra con prácticamente todos y cada uno de los SCM o herramientas de construcción existentes. Ver complementos. Extensibilidad: la mayoría de las unas partes de Jenkins se pueden ampliar y modificar, y es fácil crear nuevos complementos de Jenkins. Esto le deja personalizar Jenkins a sus necesidades. Colecciones distribuidas: Jenkins puede repartir cargas de compilación / prueba a varias computadoras con diferentes sistemas operativos. ¿Construyendo software para OS X, Linux y Windows? No hay problema.



Instalación:


Ref:


Ref:


Ref:


Directorio
JENKINS_HOMEJenkins necesita algo de espacio en el disco para efectuar colecciones y sostener ficheros. Puede contrastar esta ubicación desde la pantalla de configuración de Jenkins. De forma predeterminada, se establece en ~ / .jenkins, pero puede mudarlo de una de las próximas maneras: Establezca la variable de entorno "JENKINS_HOME" en el nuevo directorio de comienzo antes de comenzar el contenedor de servlet. Establezca la propiedad del sistema "JENKINS_HOME" en el contenedor de servlets. Establezca la entrada de entorno JNDI "JENKINS_HOME" en el nuevo directorio. Consulte la colección de documentación específica del contenedor para conseguir más información sobre cómo hacer esto para su contenedor. También puedes mudar esta ubicación después de haber utilizado Jenkins por un tiempo. Para hacer esto, detenga absolutamente a Jenkins, mueva los contenidos del antiguo JENKINS_HOME al nuevo hogar, establezca el nuevo JENKINS_HOME y reinicie Jenkins. JENKINS_HOME tiene una estructura de campaña marketing digital se parece a la siguiente:



JENKINS_HOME



Jenkins Build Jobs:


Crear un nuevo trabajo de construcción en Jenkins es simple: sencillamente haga click en el factor del menú "Nuevo trabajo" en el panel de Jenkins. Jenkins admite varios tipos diferentes de trabajos de creación, que se le presentan cuando escoge crear un nuevo trabajo



Proyecto de software freestyle


Los trabajos de compilación de estilo libre son trabajos de compilación de propósito general, que dan una flexibilidad máxima.



Proyecto MavenEl "
proyectomaven2 / 3" es un trabajo de construcción en especial adaptado a los proyectos Maven. Jenkins entiende los archivos de pom Maven y las estructuras del proyecto, y puede emplear la información conseguida del fichero pom para reducir el trabajo que necesita hacer para configurar su proyecto.



Flujo de trabajo


Organiza actividades de larga duración que pueden abarcar múltiples esclavos de compilación. Conveniente para edificar tuberías y / o bien organizar actividades complejas que no encajan fácilmente en el tipo de trabajo de estilo libre.


Supervisar un trabajo externo El trabajo de compilación “Supervisar un trabajo externo” le permite vigilar los procesos no interactivos, como los trabajos cron.


Trabajo de configuración múltiple El "proyecto de configuración múltiple" (también conocido como "proyecto de matriz") le deja ejecutar el mismo trabajo de creación en muchas configuraciones diferentes. Esta potente función puede ser útil para probar una aplicación en muchos entornos diferentes, con diferentes bases de datos o incluso en diferentes máquinas de compilación.



1. Construyendo un proyecto de software (estilo libre)


Jenkins se puede usar para realizar el trabajo típico del servidor de compilación, como hacer colecciones continuas / oficiales / nocturnas, ejecutar pruebas o bien efectuar ciertas tareas repetitivas por lotes. Esto se llama "proyecto de software de estilo libre" en Jenkins. Configuración del proyecto Vaya a la página principal de Jenkins, escoja "Nuevo trabajo", entonces escoja "Crear un proyecto de software de estilo libre". Este tipo de trabajo consta de los siguientes elementos: SCM opcional, como CVS o Subversion, donde reside su código fuente. Desencadenadores opcionales para controlar cuándo Jenkins realizará compilaciones. algún género de script de compilación que efectúa la compilación (ant, maven, shell script, fichero por lotes, etc.) donde el trabajo real ocurre pasos opcionales para compendiar información de la compilación, como archivar los artefactos y / o bien grabar javadoc y probar resultados pasos opcionales para avisar a otras personas / sistemas con el resultado de la compilación, como enviar correos electrónicos, mensajes instantáneos, actualizar el rastreador de inconvenientes, etc.



Compilaciones para proyectos de control que no son de origenA veces es preciso compendiar un proyecto simplemente con fines de demostración o el acceso a un repositorio SVN / CVS no está libre. Al seleccionar configurar el proyecto como "Ninguno" en "Administración del código fuente", tendrá que:



  1. Genere el proyecto por lo menos una vez (fallará), mas Jenkins creará la estructura jenkins / workspace / PROJECTNAME /

  2. Copie los archivos del proyecto a jenkins / workspace / PROJECTNAME /

  3. Construir nuevamente y configurar adecuadamente.



Jenkins establece variables de entorno


Cuando se ejecuta un trabajo de Jenkins, establece ciertas variables de entorno que puede emplear en su script de shell, comando por lotes, script de Ant o bien POM de Maven. Vea la lista de variables haciendo click en ENVIRONMENT_VARIABLE



Configurando colecciones automáticas


Las compilaciones en Jenkins se pueden activar periódicamente (según una programación, detallada en la configuración), o bien cuando se han detectado cambios en la fuente del proyecto, o bien se pueden activar automáticamente solicitando la URL:



Esto le permite enganchar las construcciones de Jenkins en una pluralidad de configuraciones. Para obtener más información (particularmente, hacer esto con la seguridad habilitada), consulte API de acceso recóndito.



Construye por fuente de cambios


Puede hacer que Jenkins evalúe su sistema de control de revisión para detectar cambios. Puede detallar con qué frecuencia Jenkins sondea su sistema de control de revisión utilizando exactamente la misma sintaxis que crontab en Unix / Linux. Sin embargo, si su período de sondeo es más corto de lo necesario para sondear su sistema de control de revisión, puede acabar con múltiples colecciones para cada cambio. Debe ajustar su período de sondeo para que sea más largo que el tiempo necesario para sondear su sistema de control de revisión o bien utilizar un activador posterior a la confirmación. Puede examinar el registro de sondeo de cada compilación para ver cuánto tiempo llevó encuestar su sistema.


Alternativamente, en lugar de sondear en un intervalo fijo, puede usar un activador de URL (descrito anteriormente), mas con / polling en vez de / build al final de la URL. Esto hace que Jenkins encueste al SCM en busca de cambios en lugar de edificarlo de manera inmediata. Esto evita que Jenkins ejecute una compilación sin cambios relevantes para las confirmaciones que afectan a los módulos o ramas que no están relacionados con el trabajo. Cuando se emplea / sondeo, el trabajo debe configurarse para sondeo, mas la programación puede estar vacía.



Construye por correo electrónico (sendmail)


Si tiene la cuenta raíz de su sistema y está utilizando sendmail, encontré la manera más fácil de modificar / etc / aliases y agregar la próxima entrada: jenkins-foo: "| / bin / wget -o bien / dev / null


"


y luego ejecute el comando "newaliases" para informar a sendmail sobre el cambio. Cada vez que alguien envíe un correo electrónico a "jenkins-foo @ yoursystem", esto activará una nueva compilación. Vea esto para más detalles sobre la configuración de sendmail. Construye por correo electrónico (qmail) Con qmail, puede escribir /var/qmail/alias/.qmail-jenkins de la siguiente manera: | / bin / wget -o bien / dev / null



2. Edificando un proyecto Maven


Jenkins proporciona un tipo de trabajo dedicado a Maven 2/3. Este tipo de trabajo integra a Jenkins de forma profunda con Maven 2/3 y da los siguientes beneficios en comparación con el proyecto de software de estilo libre más genérico.


Jenkins analiza los POM de Maven para conseguir gran parte de la información precisa para hacer su trabajo. Como resultado, la cantidad de configuración se reduce drásticamente.


Jenkins escucha la ejecución de Maven y descubre qué se debe hacer cuando está solo. Por ejemplo, registrará automáticamente el informe JUnit cuando Maven ejecute la fase de prueba. O si ejecuta la meta javadoc, Jenkins grabará automáticamente javadoc.


Jenkins crea automáticamente dependencias de proyecto entre proyectos que declaran dependencias de SNAPSHOT entre sí. Vea abajo. Por tanto, en su mayoría solo necesita configurar la información de SCM y los objetivos que le gustaría ejecutar, y Jenkins descubrirá todo lo demás.



Este género de proyecto puede proporcionar automáticamente las siguientes características:


Archivar artefactos producidos por una construcción.


Publicar resultados de prueba


Desencadenar trabajos para proyectos que son dependencias posteriores


Despliega tus instrumentos en un repositorio de Maven


Resultados de la prueba de rotura por módulo


Opcionalmente, reconstruya solo los módulos modificados, acelerando sus construcciones


Encadenamiento automático desde dependencias de módulos.


Jenkins lee las dependencias de su proyecto desde su POM, y si también se basan en Jenkins, los desencadenantes se configuran de tal modo que una nueva compilación en una de esas dependencias iniciará automáticamente una nueva compilación de su proyecto. Jenkins comprende todo género de dependencias en POM. A saber, padre POM


Este proceso tiene en cuenta las versiones, con lo que puede tener múltiples versiones / ramas de su proyecto en exactamente el mismo Jenkins y determinará apropiadamente las dependencias.
Tenga en cuentaque los rangos de versiones de dependencia no son compatibles, consulte [para conocer el motivo.


Esta función se puede deshabilitar a petición - vea la opción de configuración Edificar toda vez que se genere una dependencia SNAPSHOT



Instalación:


1. entra en Manage Jenkins >> configura el sistema



  1. en la pestaña maven "Haga click en la instalación maven ......


Puede hacer que Jenkins instale automáticamente una versión específica de Maven, o bien administrar una ruta a una instalación local de Maven (puede configurar tantas versiones de Maven para sus proyectos de compilación como desee, y utilizar diferentes versiones de Maven para diferentes proyectos. Si marca la casilla Instalar automáticamente, Jenkins descargará e instalará la versión solicitada de Maven por y la instalará en el directorio de herramientas en el directorio de inicio de Jenkins.



Cómo usarlo


Primero, debe configurar una instalación de Maven (este paso puede omitirse si está utilizando DEV @ cloud). Esto se puede hacer yendo a la pantalla de configuración del sistema (Regentar Jenkins-> Configurar sistema). En la sección "Instalaciones de Maven", 1) haga click en el botón Agregar, dos) asígnele un nombre como "Maven 3.0.3" y luego tres) elija la versión del menú desplegable.


Ahora, Jenkins instalará automáticamente esta versión cada vez que sea precisa (por ejemplo, en cualquier nueva máquina de compilación) descargándola de Apache y descomprimiéndola.



Crear un nuevo trabajo de Maven:



  1. Al hacer click en "Nuevo trabajo / Nuevo elemento" en la mano izquierda

  2. Dale un nombre

  3. Elija el "Construir un proyecto de Maven 2/3"

  4. Salva tu trabajo


Ahora necesitas configurar tu trabajo.




  1. Elija el SCM que quiere utilizar (ej. Usar git)




  2. elegir objetivo de Maven para llamar




  3. Añadir URL y credencial del repositorio.




  4. comprobar usuario privado maven repo:




Elija el SCM que quiere utilizar (ej. Usar git)


elegir objetivo de Maven para llamar


Añadir URL y credencial del repositorio.


comprobar usuario privado maven repo:


También puede delimitar la ruta de acceso para el mismo.


5. Proyecto de construcción


Cree su proyecto haciendo click en compilar ahora y haga clic en la barra de progreso en la parte izquierda "Crear estado del ejecutor" para ver cómo jenkins instala Maven, verifica su proyecto y construye utilizando maven.



Explotación florestal:




Consola de Script:


Jenkins da una consola de scripts que le brinda acceso a todas y cada una de las funciones internas de Jenkins. Estos scripts están escritos en Groovy y encontrará ciertos ejemplos de ellos en esta.


Mueve a Jenkins de una ordenador a otra


Esto me sirvió para pasar de Ubuntu 12.04 (versión Jenkins 1.628) a Ubuntu 16.04 (versión Jenkins mil seiscientos cincuenta y uno). Primero.


Puede que no precises esto, pero tuve que




  • Manage Jenkinsy
    Reload Configuration from Disk.

  • Desconecta y vuelve a conectar todos y cada uno de los esclavos.

  • Verifique que en
    Configure System > Jenkins Location, la
    Jenkins URLesté asignada adecuadamente al nuevo servidor de Jenkins.


Configurando el Proxy Nginx


De forma nativa, Jenkins se ejecuta en el puerto ocho mil ochenta. Podemos establecer un proxy desde el puerto 80 -> ocho mil ochenta a fin de que se pueda acceder a Jenkins a través de:


en sitio de la predeterminada


Comience por instalar Nginx.



sudo aptitude -y install nginx


Eliminar la configuración predeterminada para Nginx



cd /etc/nginx/sites-available



sudo rm default ../sites-enabled/default


Crear el nuevo fichero de configuración.



sudo touch jenkins


Copie el próximo código en el fichero
jenkinsrecién creado.


Cree un enlace simbólico entre sitios disponibles y sitios habilitados:



sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/


Reinicie el servicio de proxy Nginx



sudo service nginx restart


Jenkins ahora será accesible desde el puerto ochenta.

Back to posts
This post has no comments - be the first one!

UNDER MAINTENANCE