Guía de Instalación y Configuración de Jenkins

Instalación y Configuración Inicial

El método más sencillo para comenzar es descargar el archivo universal WAR desde la página oficial y desplegarlo en una instancia local de Tomcat.

Instalación de Complementos

Configuración del Sistema

Configuración de Herramientas Globales

Configuración de Reenvío con Nginx

Cuando se implementa un certificado SSL en el servicio frontend a través de Nginx, pueden surgir errores web durante muchas operaciones. Para resolver esto, agregue la siguiente configuración a su archivo de configuración de nginx:

server {
    location /jenkins {
        # Reenvío estándar
        proxy_pass              http://servidor_local_8080/jenkins;

        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Host $host;
        proxy_set_header        Host $host:$server_port;
        proxy_set_header        X-Forwarded-Proto $scheme;

        # Configuración especial
        proxy_redirect http:// https://;        
        proxy_http_version      1.1;
        proxy_request_buffering off;
        proxy_buffering off;
        add_header 'X-SSH-Endpoint' 'dominio:8080/jenkins' always;
    }
}

Uso de Jenkins

Gestión de Tareas

1. Convenciones de Nomenclatura Básica

Las reglas de nomenclatura deben contener únicamente caracteres alfabéticos, números, guiones bajos o guiones medios. Evite usar caracteres chinos o espacios.

2. Creación de Carpetas

Las carpetas sirven para organizar tareas y admiten anidamiento múltiple para agrupar proyectos. El nombre de visualización puede usar caracteres chinos y se mostrará en las listas.

3. Creación de Tareas

Al crear un proyecto, primero ingrese el nombre de la tarea y seleccione el tipo. Excluyendo el tipo carpeta, los tipos más comunes son: Construir un proyecto de software freestyle y Construir un proyecto Maven. El primero es adecuado para la mayoría de proyectos, incluyendo interpretados como PHP, Python, y compilados como Node.js. También puede duplicar un proyecto existente y modificarlo según necesidades.

Después de crear la tarea, proceda a configurarla. Las categorías principales son: General (configuración general), Gestión de código fuente, Disparadores de construcción, Entorno de construcción, Construcción y Post-construcción (para proyectos Maven, la construcción se divide en: Pre Steps, Build, Post Steps y Configuración de construcción). Excepto la configuración general, otros elementos requieren complementos o variables de entorno específicas.

4. Configuración General

En la configuración general, los elementos clave incluyen:

  • Restringir nodos donde ejecutar el proyecto: Configuración crítica. Si se deja vacío, la tarea se construirá en todos los nodos. Útil para despliegues distribuidos donde el mismo proyecto reside en múltiples servidores con configuración idéntica. De lo contrario, puede causar problemas. master representa el nodo actual que ejecuta Jenkins;
  • Nombre de visualización: Opcional pero recomendado para nombres amigables;
  • Descartar construcciones antiguas: A medida que avanza el tiempo, los registros de construcción aumentan. Configure aquí la limpieza basada en días o número de construcciones. Ambas configuraciones coexisten y se aplicará la limpieza si se cumple alguna condición;
  • Usar espacio de trabajo personalizado: Jenkins asigna un directorio independiente para cada proyecto para extraer código y ejecutar construcciones. En la mayoría de casos no es necesario cambiarlo, excepto para combinaciones como SVN+Python/Php donde es mejor especificar directamente el directorio del proyecto;
5. Construcción

La construcción se utiliza típicamente para operaciones personalizadas después de que Jenkins complete la construcción básica según la configuración del entorno de construcción. Por ejemplo, copiar archivos de configuración, reiniciar aplicaciones, etc. Haga clic en Agregar paso de construcción, luego seleccione Ejecutar Shell. Agregue las operaciones shell correspondientes en el cuadro de texto y guarde, por ejemplo:

#!/bin/bash +x 
/usr/bin/cp -R -f plantillas /datos/web/servicio/estaticos/
chmod +x bin/ejecutar.sh

En este paso, es común encontrar errores relacionados con comandos o scripts personalizados no encontrados, generalmente causados por problemas con variables de entorno.

Administración de Credenciales

Las credenciales son información de autenticación para acceder a nodos secundarios, SCM, SMTP, etc. Acceda a: Configuración del sistema --> Administrar credenciales, no confunda con Configuración de credenciales. Esta sección no administra la información de cuenta para iniciar sesión en Jenkins.

Haga clic en el enlace global bajo la columna dominio para acceder a la gestión de credenciales globales.

Haga clic en el menú izquierdo Agregar credencial para abrir la página de adición de credenciales.

Los tipos comunes de credenciales incluyen:

  • Nombre de usuario con contraseña: Credenciales más versátiles, compatibles con la mayoría de casos como inicio de sesión SSH, SCM, etc.;
  • Nombre de usuario SSH con clave privada: Token de inicio de sesión SSH usando clave privada, asegúrese de ingresar el contenido de la clave privada y la contraseña debajo; comúnmente usado para acceso a nodos.

Los alcances de uso de credenciales incluyen principalmente Global y Sistema:

  • Global: La credencial aplica globalmente, útil en cualquier lugar necesario;
  • Sistema: La credencial solo se usa para fines del sistema, como inicio de sesión en nodos.

Tenga en cuenta que la opción de alcance de uso no afecta realmente la funcionalidad de la credencial. Solo filtra opciones para reducir interferencias al seleccionar.

Otras Configuraciones de Tarea

1. Gestión de Código Fuente

La gestión de código fuente depende de componentes y herramientas del sistema. Esto significa que debe instalar los componentes correspondientes en Jenkins e instalar las herramientas de gestión apropiadas en los nodos correspondientes (incluido el local), como: git y subversion.

Marque la herramienta de gestión de versiones adecuada, ingrese la URL del repositorio en Repository URL, y seleccione las credenciales correctas en Credentials. También puede hacer clic en el botón Agregar para añadir nuevas credenciales.

Para git y svn, hay diferentes opciones que ingresar:

  • Para git, especifique la rama, indicando que la tarea solo se asociará con la rama correspondiente (también puede dejarse vacío);
  • Para svn, ingrese . en la opción Directorio del módulo local, este valor corresponde a la opción Usar espacio de trabajo personalizado en la configuración básica de la tarea.
2. Disparadores de Construcción

Los disparadores de construcción definen cuándo activar la construcción. Según las políticas de gestión de diferentes compañías, pueden usarse o no. Según nuestro flujo de trabajo, para entornos no productivos, se configuran activaciones automáticas que disparan la tarea de construcción automáticamente después de enviar código a gitee. Para lograr este objetivo, configure lo siguiente (requiere tener instalado el plugin de gitee):

  • Marque Disparador de construcción Gitee webhook, copie la URL posterior como referencia;
  • En la opción Ramas permitidas para disparar construcción, seleccione Filtrar por nombre de rama e ingrese los nombres de rama según sea necesario;
  • En la opción Contraseña de Gitee WebHook, haga clic en el botón Generar en la esquina inferior derecha, genere la contraseña y cópiela como referencia.

Acceda al proyecto correspondiente en gitee, vaya a WebHooks en la administración, ingrese los dos valores copiados anteriormente en URL y Contraseña/WebHook signature key, mantenga la selección predeterminada Push en eventos. Esta configuración indica que cuando se envíe código, se enviará automáticamente a Jenkins para disparar la construcción correspondiente.

Nota: Los disparadores de construcción tienen cierta relación con la gestión de código fuente mencionada anteriormente, ¡asegúrese de que coincidan!

3. Entorno de Construcción

Las herramientas en el entorno de construcción heredan por defecto la configuración de herramientas globales en la configuración del sistema de Jenkins, aunque también puede especificar configuraciones personalizadas para el nodo actual. Para proyectos compilados con nodejs, simplemente marque la opción Proporcionar carpeta bin/ de Node & npm al PATH y seleccione la versión adecuada.

Para nodejs que requiere compilación, ejecute operaciones de construcción en Shell dentro de la sección de Construcción:

npm config set "chromedriver_cdnurl" "https://npm.taobao.org/mirrors/chromedriver"
npm install
npm run build
4. Construcción de Proyectos Maven

El enfoque principal para la construcción de proyectos Maven se encuentra en la sección Build, donde selecciona la ruta del archivo pom del proyecto y el objetivo de construcción.

Administración de Nodos

Un nodo es un servidor que puede ser gestionado por Jenkins, donde las tareas pueden enlazarse para realizar construcciones. La configuración de nodos se puede dividir en tres partes principales: configuración general, método de inicio (o forma de conexión) y atributos del nodo.

  • En configuración general, el directorio de trabajo remoto es el directorio raíz para construir proyectos en la máquina cliente, generalmente seleccione Permitir solo ejecución de trabajos enlazados a esta máquina
  • En método de inicio, use Lanzar agentes vía SSH para conectar hosts Linux y Iniciar agente vía Java Web para hosts Windows, puede especificar el puerto de conexión SSH en opciones avanzadas;
  • En atributos del nodo, la ubicación de herramientas puede especificar valores personalizados diferentes a la configuración global del sistema, las variables de entorno pueden definir algunas variables personalizadas para el nodo.

Nota:

Jenkins gestiona Linux y Windows de manera ligeramente diferente, Windows se puede entender como pasivo. Necesita habilitar el agente en Administración del sistema-->Configuración global de seguridad y especificar el puerto, utilizado para conexiones inversas de nodos Windows.

Después de agregar un nodo Windows, inicialmente mostrará error indicando encapacidad de conexión. Haga clic derecho y guarde el archivo jnpl correspondiente al botón Lanzar.

Ejecute este archivo jnlp en el servidor del nodo correspondiente, claro que previamente debe tener instalado jdk. Si aparece problema de permisos, siga la descripción detallada para agregar el servidor Jenkins como sitio permitido en la seguridad de java. Al ejecutarse exitosamente, como se muestra en la imagen siguiente, el menú Archivo permite agregarlo como servicio del sistema.

Etiquetas: Jenkins CI-CD DevOps automation continuous-integration

Publicado el 9-15 00:32