Empezando con jenkins

Configuración del proxy Nginx

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

http://<url>.com

en lugar del predeterminado

http://<url>.com:8080

Comience instalando Nginx.

sudo aptitude -y install nginx

Eliminar la configuración predeterminada para Nginx

cd /etc/nginx/sitios-disponibles

sudo rm default ../sites-enabled/default

Crear el nuevo archivo de configuración

‘sudo toque jenkins’

Copie el siguiente código en el archivo jenkins recién creado.

upstream app_server {
  server 127.0.0.1:8080 fail_timeout=0;
}

server {
  listen 80;
  listen [::]:80 default ipv6only=on;
  server_name ;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }
  }
}

Cree un vínculo simbólico entre los sitios disponibles y los sitios habilitados:

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

Reinicie el servicio de proxy Nginx

Reinicio de nginx del servicio Sudo

Ahora se podrá acceder a Jenkins desde el puerto 80.

Introducción completa de Jenkins en un solo lugar

1. Jenkins :

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

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

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

Fácil instalación: simplemente ejecute java -jar jenkins.war, impleméntelo en un contenedor de servlets. Sin instalación adicional, sin base de datos. ¿Prefieres un instalador o un paquete nativo? Tenemos esos también. Fácil configuración: Jenkins se puede configurar completamente desde su GUI web amigable con extensas verificaciones de errores sobre la marcha y ayuda en línea. Rico ecosistema de complementos: Jenkins se integra con prácticamente todas las SCM o herramientas de compilación que existen. Ver complementos. Extensibilidad: la mayoría de las partes de Jenkins se pueden ampliar y modificar, y es fácil crear nuevos complementos de Jenkins. Esto le permite personalizar Jenkins según sus necesidades. Compilaciones distribuidas: Jenkins puede distribuir cargas de compilación/prueba a varias computadoras con diferentes sistemas operativos. ¿Crear software para OS X, Linux y Windows? No hay problema.

Instalación:

$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
to do more refer link :

Ref: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

Referencia: http://www.vogella.com/tutorials/Jenkins/article.html

Referencia: https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

directorio JENKINS_HOME Jenkins necesita algo de espacio en disco para realizar compilaciones y guardar archivos. Puede consultar esta ubicación desde la pantalla de configuración de Jenkins. De forma predeterminada, está configurado en ~/.jenkins, pero puede cambiarlo de una de las siguientes maneras: Establezca la variable de entorno “JENKINS_HOME” en el nuevo directorio de inicio antes de iniciar el contenedor de servlets. 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 obtener más información sobre cómo hacer esto para su contenedor. También puede cambiar esta ubicación después de haber usado Jenkins por un tiempo. Para hacer esto, detenga Jenkins por completo, mueva el contenido del antiguo JENKINS_HOME al nuevo hogar, configure el nuevo JENKINS_HOME y reinicie Jenkins. JENKINS_HOME tiene una estructura de directorio bastante obvia que se parece a la siguiente:

JENKINS_HOME

+- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

Trabajos de creación de Jenkins:

Crear un nuevo trabajo de compilación en Jenkins es simple: simplemente haga clic en el elemento de menú “Nuevo trabajo” en el tablero de Jenkins. Jenkins admite varios tipos diferentes de trabajos de compilación, que se le presentan cuando elige crear un nuevo trabajo

Proyecto de software de estilo libre

Los trabajos de compilación de estilo libre son trabajos de compilación de uso general, lo que proporciona la máxima flexibilidad.

Proyecto Maven El “proyecto maven2/3” es un trabajo de construcción especialmente adaptado a los proyectos Maven. Jenkins entiende los archivos pom de Maven y las estructuras de los proyectos, y puede usar la información obtenida del archivo pom para reducir el trabajo que necesita hacer para configurar su proyecto.

Flujo de trabajo

Orquesta actividades de ejecución prolongada que pueden abarcar varios esclavos de compilación. Adecuado para la construcción de tuberías y/o la organización de 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 permite ejecutar el mismo trabajo de compilación en muchas configuraciones diferentes. Esta poderosa 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. Construcción de un proyecto de software (estilo libre)

Jenkins se puede usar para realizar el trabajo típico del servidor de compilación, como hacer compilaciones continuas/oficiales/nocturnas, ejecutar pruebas o realizar algunas tareas por lotes repetitivas. Esto se llama “proyecto de software de estilo libre” en Jenkins. Configurando el proyecto Vaya a la página principal de Jenkins, seleccione “Nuevo trabajo”, luego elija “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. disparadores opcionales para controlar cuándo Jenkins realizará compilaciones. algún tipo de script de compilación que realiza la compilación (ant, maven, script de shell, archivo por lotes, etc.) donde ocurre el trabajo real pasos opcionales para recopilar información de la compilación, como archivar los artefactos y/o registrar javadoc y resultados de pruebas. pasos opcionales para notificar a otras personas/sistemas con el resultado de la compilación, como enviar correos electrónicos, mensajes instantáneos, actualizar el rastreador de problemas, etc.

Edificios para proyectos sin control de fuentes A veces es necesario crear un proyecto simplemente con fines de demostración o el acceso a un repositorio SVN/CVS no está disponible. Al elegir configurar el proyecto como “Ninguno” en “Administración de código fuente”, deberá:

  1. Cree el proyecto al menos una vez (fallará), pero Jenkins creará la estructura jenkins/workspace/PROJECTNAME/
  2. Copie los archivos del proyecto en jenkins/workspace/PROJECTNAME/
  3. Vuelva a compilar y configure adecuadamente

Jenkins establece variables de entorno

Cuando se ejecuta un trabajo de Jenkins, establece algunas variables de entorno que puede usar en su script de shell, comando por lotes, script Ant o Maven POM. Ver la lista de variables haciendo clic en ENVIRONMENT_VARIABLE

Configuración de compilaciones automáticas

Las compilaciones en Jenkins se pueden activar periódicamente (según un cronograma, especificado en la configuración), o cuando se detectan cambios en la fuente del proyecto, o se pueden activar automáticamente solicitando la URL:

http://TUHOST/jenkins/trabajo/NOMBRE DEL PROYECTO/build

Esto le permite conectar compilaciones de Jenkins en una variedad de configuraciones. Para obtener más información (en particular, sobre cómo hacer esto con la seguridad habilitada), consulte API de acceso remoto.

Compilaciones por cambios de fuente

Puede hacer que Jenkins sondee su Sistema de control de revisiones para detectar cambios. Puede especificar con qué frecuencia sondea Jenkins su sistema de control de revisiones utilizando la misma sintaxis que crontab en Unix/Linux. Sin embargo, si su período de sondeo es más corto de lo que se necesita para sondear su sistema de control de revisiones, puede terminar con múltiples compilaciones para cada cambio. Debe ajustar su período de sondeo para que sea más largo que la cantidad de tiempo que lleva sondear su sistema de control de revisión, o usar un activador posterior a la confirmación. Puede examinar el Registro de sondeo de cada compilación para ver cuánto tiempo se tardó en sondear su sistema.

Alternativamente, en lugar de sondear en un intervalo fijo, puede usar un activador de URL (descrito anteriormente), pero con /polling en lugar de /build al final de la URL. Esto hace que Jenkins sondee el SCM en busca de cambios en lugar de construir de inmediato. Esto evita que Jenkins ejecute una compilación sin cambios relevantes para confirmaciones que afecten a módulos o ramas que no estén relacionados con el trabajo. Cuando se usa /sondeo, el trabajo debe estar configurado para sondeo, pero 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, me pareció más fácil modificar /etc/aliases y agregar la siguiente entrada: jenkins-foo: “|/bin/wget -o /dev/null

http://SUHOST/jenkins/trabajo/NOMBRE DEL PROYECTO/construir”

y luego ejecute el comando “newaliases” para informar a sendmail del cambio. Siempre que alguien envíe un correo electrónico a “[email protected]”, esto activará una nueva compilación. Consulte esto para obtener más detalles sobre la configuración de sendmail. Compilaciones por correo electrónico (qmail) Con qmail, puede escribir /var/qmail/alias/.qmail-jenkins de la siguiente manera: |/bin/wget -o /dev/null http://SUHOST/jenkins/job/PROJECTNAME/build"

2. Construyendo un proyecto Maven

Jenkins proporciona un tipo de trabajo dedicado a Maven 2/3. Este tipo de trabajo integra Jenkins profundamente con Maven 2/3 y brinda 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 obtener gran parte de la información necesaria 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 el objetivo de javadoc, Jenkins registrará automáticamente javadoc.

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

Este tipo de proyecto puede proporcionar automáticamente las siguientes funciones:

Archivar artefactos producidos por una compilación

Publicar resultados de pruebas

Desencadenar trabajos para proyectos que son dependencias posteriores

Implemente sus artefactos en un repositorio de Maven

Desglose de los resultados de las pruebas por módulo

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

Encadenamiento automático de compilaciones a partir de dependencias de módulos

Jenkins lee las dependencias de su proyecto desde su POM y, si también se construyen en Jenkins, los activadores se configuran de tal manera que una nueva compilación en una de esas dependencias iniciará automáticamente una nueva compilación de su proyecto. Jenkins entiende todo tipo de dependencias en POM. A saber, padre POM

<dependencies> section of your project
<plugins> section of your project
<extensions> section of your project
<reporting> section of your project

Este proceso tiene en cuenta las versiones, por lo que puede tener múltiples versiones/ramas de su proyecto en el mismo Jenkins y determinará correctamente las dependencias. Tenga en cuenta que los intervalos de versión de dependencia no son compatibles; consulte https://issues.jenkins-ci.org/browse/JENKINS-2787 para conocer el motivo.

Esta característica se puede deshabilitar a pedido; consulte la opción de configuración Crear siempre que se cree una dependencia de SNAPSHOT

Instalación:

1 . vaya a Administrar Jenkins»configurar sistema 2. en la pestaña de maven “Haga clic en la instalación de maven…

Puede hacer que Jenkins instale una versión específica de Maven automáticamente o proporcionar una ruta a una instalación local de Maven (puede configurar tantas versiones de Maven para sus proyectos de compilación como desee y usar diferentes versiones de Maven para diferentes proyectos. Si marca la casilla de verificación Instalar automáticamente, Jenkins descargará e instalará la versión solicitada de Maven por usted 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 se puede omitir si está utilizando [email protected]). Esto se puede hacer yendo a la pantalla de configuración del sistema (Administrar Jenkins-> Configurar sistema). En la sección “Instalaciones de Maven”, 1) haga clic en el botón Agregar, 2) asígnele un nombre como “Maven 3.0.3” y luego 3) elija la versión del menú desplegable.

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

Crear un nuevo trabajo de Maven:

  1. Hacer clic en “Nuevo trabajo / Nuevo elemento” en la mano izquierda
  2. Dale un nombre
  3. Elija “Construir un proyecto Maven 2/3”
  4. Guarda tu trabajo

Ahora necesita configurar su trabajo

  1. Elija el SCM que desea usar (por ejemplo, usando git)

  2. elige el objetivo experto para llamar

  3. agregue la URL del repositorio y la credencial.

  4. verifique el repositorio maven privado del usuario:

También puede definir la ruta personalizada para el mismo.

5 . Proyecto de construcción

Cree su proyecto haciendo clic en compilar ahora y haga clic en la barra de progreso en la parte izquierda “Estado del ejecutor de compilación” para ver cómo jenkins instala Maven, revisa su proyecto y compilalo usando maven.

Inicio sesión:

https://wiki.jenkins-ci.org/display/JENKINS/Logging

Consola de secuencias de comandos:

Útil para la resolución de problemas, diagnósticos o actualizaciones por lotes de trabajos. Jenkins proporciona una consola de secuencias de comandos que le brinda acceso a todas las funciones internas de Jenkins. Estos scripts están escritos en Groovy y encontrarás algunos ejemplos de ellos en esta página.

Mover Jenkins de una PC a otra

Esto me funcionó para pasar de Ubuntu 12.04 (Jenkins ver. 1.628) a Ubuntu 16.04 (Jenkins ver. 1.651.2). Primero instalé Jenkins desde los repositorios.

  1. Detener ambos servidores Jenkins

  2. Copie JENKINS_HOME (por ejemplo, /var/lib/jenkins) del servidor anterior al nuevo. Desde una consola en el nuevo servidor:

    rsync -av [email protected]:/var/lib/jenkins/ /var/lib/jenkins/

  3. Inicie su nuevo servidor Jenkins

Puede que no necesites esto, pero tuve que

  • Gestionar Jenkins y Recargar configuración desde disco.
  • Desconecte y vuelva a conectar todos los esclavos.
  • Comprobar que en Configurar Sistema > Ubicación de Jenkins, la URL de Jenkins está correctamente asignada al nuevo servidor de Jenkins.

Instalación

Para sistemas basados ​​en apt-get como Ubuntu

Agregue el repositorio de Jenkins:

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

sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Actualice las fuentes e instale Jenkins:

sudo apt-obtener actualización

sudo apt-get install jenkins

Ahora se crea un usuario de jenkins y, de forma predeterminada, Jenkins se ejecutará en el puerto 8080.

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

Para descargar el archivo del repositorio de la versión estable:

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

O si quieres los últimos lanzamientos semanales:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

Importar la clave pública:

sudo rpm --importar https://jenkins-ci.org/redhat/jenkins-ci.org.key

Instale Jenkins usando yum:

sudo yum instalar jenkins

Jenkins requiere java para ejecutarse, para instalarlo:

sudo yum instalar java

Para iniciar/detener/reiniciar el uso de jenkins:

servicio sudo jenkins iniciar/detener/reiniciar

Actualización de jenkins (instalaciones de RPM)

  1. Copia de seguridad del directorio de inicio de jenkins
  2. Reemplace jenkins.war en la siguiente ubicación con el nuevo archivo WAR. /usr/lib/jenkins/jenkins.war`
  3. Reinicie Jenkins
  4. Verifique los complementos fijados y desactívelos si es necesario
  5. Recargar la configuración desde el disco

nota: Para las actualizaciones de Jenkins 2 para el servidor de aplicaciones jetty incluido, deshabilite el puerto AJP (establezca JENKINS_AJP_PORT="-1") en /etc/sysconfig/jenkins.

Configurar un proyecto en Jenkins

Aquí revisaremos la última copia del código de nuestro proyecto, ejecutaremos las pruebas y haremos que la aplicación esté activa. Para lograrlo, siga los pasos a continuación:

  1. Abra 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 de administración de código fuente, seleccione la casilla de radio junto a su herramienta de administración de código fuente. En mi caso he seleccionado Git.

Proporcione la URL del repositorio de git como git://github.com/example/example.git 6. Debajo de Disparadores de compilación, seleccione el cuadro de radio junto a Sondeo SCM. 7. Proporcione ***** en el cuadro 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 el repositorio de git. 8. En la sección Crear, haga clic en el botón Agregar paso de compilación y luego seleccione la opción con la que desea compilar el proyecto. He seleccionado Ejecutar Shell. En el cuadro de comando, escriba el comando para compilar, ejecutar las pruebas e implementarlo en prod. 10. Desplácese hacia abajo y Guardar.

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

Configure un proyecto de compilación simple con el script de canalización de Jenkins 2

Aquí crearemos una canalización Groovy en Jenkins 2 para realizar los siguientes pasos:

  • Verificar cada 5 minutos si se ha comprometido un nuevo código en nuestro proyecto
  • Código de pago del repositorio de SCM
  • Compilación Maven de nuestro código Java
  • Ejecute nuestras pruebas de integración y publique los resultados

Estos son los pasos que seguiremos:

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

    Jenkins version capture example

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

  3. Ingrese el nombre del proyecto y seleccione Pipeline

  4. En la sección Desencadenadores de compilación, seleccione la opción Encuesta SCM y agregue el siguiente cronograma CRON de 5 minutos: */5 * * * *

  5. En la sección Pipeline, elija Pipeline Script o Pipeline Script de SCM

  6. Si seleccionó Pipeline Script de SCM en el paso anterior, ahora debe especificar la URL de su repositorio SCM (Git, Mercurial, Subversion) en URL del repositorio, como http://github.com /ejemplo/ejemplo.git. También debe especificar la Ruta de secuencia de comandos de su archivo de secuencia de comandos Groovy en su repositorio example.git, p. tuberías/ejemplo.groovy

  7. Copie el siguiente código de Groovy, ya sea directamente en la ventana de script de Groovy si previamente hizo clic en Pipeline Script o en su example.groovy si eligió Pipeline Script de SCM

    node(‘remote’) { // Note : this step is only needed if you’re using direct Groovy scripting stage ‘Checkout Git project’ git url: ‘https://github.com/jglick/simple-maven-project-with-tests.git’ def appVersion = version() if (appVersion) { echo “Building version ${appVersion}” }

     stage 'Build Maven project'
     def mvnHome = tool 'M3'
     sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
     step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
    

    } def version() { def matcher = readFile(‘pom.xml’) =~ ‘(.+)’ matcher ? matcher0 : null }

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

Instalación del complemento desde una fuente externa

java -jar [Path to client JAR] -s [Server address] install-plugin [Plugin ID]

El JAR del cliente debe ser el archivo CLI JAR, no el mismo JAR/WAR que ejecuta Jenkins. Las ID únicas se pueden encontrar en la página respectiva de los complementos en el wiki de la CLI de Jenkins (https://wiki.jenkins-ci.org/display/JENKINS/Plugins)