Jenkins – Parte1 Instalación

Logo Jenkins
Logo Jenkins

Artículos relacionados

Introducción

Jenkins es una herramienta de Integración Continua (CI) que originalmente se llamaba Hudson escrita en java por Kohsuke Kawaguchi, si quieren saber la historia completa los invito a que entren a este enlace. Jenkins es una herramienta cross-platform de integración y entrega continua (Fuente: Meet Jenkins) que incrementa la productividad. Por la parte de integración continua (Continuous integration) nos permite automatizar la compilación y las pruebas de un proyecto de software facilitando la tarea de integración a los desarrolladores. Por el lado de la entrega continua (Continuous delivery) nos permite definir workflows o build pipelines que se pueden integrar con un gran número de tecnologías de testing y de despliegue. Jenkins es usada por equipos de todos los tamaños, para proyectos de una gran variedad de lenguajes y tecnologias las cuales se incluyen: Java, .Net, Ruby, Php, Groovy y más.

Jenkins
Jenkins

Características

Jenkins ofrece las siguientes características por defecto, sin embargo se pueden realizar muchas más usando plugins.

  • Fácil de instalar
    • Ejecuta el instalador y ya, no se necesita de instalaciones adicionales o de una base de datos.
  • Fácil de configurar
    • Toda la configuración se realiza desde su portal de administración.
  • Cuenta con una gran variedad de plugins
    • Jenkins se integra con casi todas las herramientas de Administración de código fuente (SCM) que existen, ver todos los plugins.
  • Extensible
    • La mayoría de partes de jenkins pueden ser extendidas y modificadas; además, que es fácil crear nuevos plugins, esto nos permite personalizar a Jenkins según nuestras necesidades.
  • Compilación distribuida:
    • Jenkins puede distribuir la carga de compilación/pruebas sobre múltiples computadoras con diferentes sistemas operativos.

Requerimientos del sistema

Para correr Jenkins necesita Java7 o una versión superior, lo recomendado es instalar Java8. Jenkins necesita poca cantidad de memoria para ejecutarse correctamente, para aplicaciones pequeñas se debe contar entre 356Mb – 1Gb. Se debe tener en cuenta que los procesos que van a consumir memoria no es el de Jenkins sino de los Builds que se realicen. Por lo general un servidor de Integración Continua consume mucha memoria, cpu y disco, dependiendo de la cantidad de Builds que se ejecuten en paralelo se debe asignar la cantidad de recursos necesarios para que soporte toda esta carga.

Nota: Por defecto Jenkins ya viene con el directorio de Java dentro de la instalación, de modo que no es necesario hacer una instalación adicional.

Instalación

  • Ingresar a la página de Jenkins https://jenkins-ci.org/.
  • Ir a la sección Native packages y hacer clic en Windows. La versión actual es la 1.636 y el archivo zip pesa 99 mb.
Download Jenkins
Download Jenkins
  • Al terminar la descarga abrir el zip y ejecutar el archivo Setup.exe
  • En la pantalla donde se indica en que directorio se debe instalar se recomienda usar una ruta que no contenga espacios en blanco, en mi caso voy a ingresar la siguiente ruta: C:\Jenkins1.636\
Instalador - Ruta Jenkins
Instalador – Ruta Jenkins
  • Ahora solo queda darle Siguiente e Instalar.
  • Cuando termine la instalación tendrá que aparecer una pantalla con el mensaje: Completed the Jenkins 1.636 Setup Wizard.
  • Al hacer clic en el botón Finalizar automáticamente se abrirá el navegador con la ruta por defecto que usa Jenkins que es la siguiente: http://localhost:8080/
Jenkins - Página de inicio
Jenkins – Página de inicio
  • Ahora vamos a Panel de Control/Herramientas Administrativas/Servicios vemos que Jenkins se ha instalado como un servicio de inicio Automático.
Jenkins - Servicio
Jenkins – Servicio
  • Es recomendable cambiar la cuenta de ejecución de Sistema Local a una cuenta de dominio, debido a que va a necesitar acceder a distintos servidores como por ejemplo: TFS, Servidor de Base de datos, Servidor de archivos, Servidores de calidad, etc.

Configuraciones adicionales

Abrir el archivo Jenkins.XML que se encuentra en la ruta donde se encuentra Jenkins instalado.

<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins continuous integration system.</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <executable>%BASE%\jre\bin\java</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
  -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
  <logmode>rotate</logmode>
  <onfailure action="restart" />
</service>
  • Para cambiar el puerto por defecto se debe actualizar el valor de la etiqueta <arguments> –httpPort=8080
  • Para cambiar la ruta del directorio de Java se debe actualizar el valor de la etiqueta <executable>
  • Para configurar la cantidad de memoria que debe consumir el proceso del sitio web de Jenkins se debe actualizar el valor de la etiqueta <executable> -Xmx256m por uno de los siguientes valores: Xmx128m, Xmx256m, Xmx512m, Xmx764m y Xmx1024m. Referencia http://www.auditmypc.com/java-memory-xmx512.asp. Esto no se refiere la cantidad de memoria que debe consumir cada Build.

Conclusiones:

Jenkins es una herramienta de integración continua desarrollada por Kohsuke Kawaguchi que soporta una gran cantidad de tecnologías y es cross-platform. Como cualquier servidor de integración continua se debe tener en cuenta la cantidad de CPU, memoria y disco que aloje el servicio de Jenkins.

Referencias:
Metal Tip:

Este artículo lo escribí escuchando la canción Tierra de lobos de la banda Saratoga de España, les comparto el enlace.

Happy coding and Stay Heavy lml

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s