Tutorial: Escalado de implementaciones de Jenkins con máquinas virtuales que se ejecutan en Azure

Importante

Muchos servicios de Azure tienen complementos de Jenkins. Algunos de estos complementos dejarán de ser compatibles a partir del 29 de febrero de 2024. La CLI de Azure es la forma recomendada actualmente de integrar Jenkins con los servicios de Azure. Para obtener más información, consulte el artículo Complementos de Jenkins para Azure.

En este tutorial se muestra cómo crear una máquina virtual Linux en Azure y cómo agregar la máquina virtual como un nodo de trabajo a Jenkins.

En este tutorial, tendrá que:

  • Creación de la máquina del agente
  • Adición del agente a Jenkins
  • Creación de un nuevo trabajo de Freestyle de Jenkins
  • Ejecución del trabajo en un agente de máquina virtual de Azure

Requisitos previos

Configuración de la máquina virtual del agente

  1. Use az group create para crear un grupo de recursos de Azure.

    az group create --name <resource_group> --location <location>
    
  2. Use az vm create para crear una máquina virtual.

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    Puntos clave:

    • También puede cargar la clave SSH con el siguiente comando --ssh-key-value <ssh_path>.
  3. Instale el JDK.

    1. Inicie sesión en la máquina virtual mediante una herramienta SSH.

      ssh username@123.123.123.123
      
    2. Instale el JDK con apt. También puede instalarlo con otras herramientas de administrador de paquetes, como yum o pacman.

      sudo apt-get install -y default-jdk
      
    3. Una vez finalizada la instalación, ejecute java -version para comprobar el entorno de Java. La salida incluirá los números de versión asociados a varias partes del JDK.

Configuración de la dirección URL de Jenkins

Si usa JNLP, deberá configurar la dirección URL de Jenkins.

  1. En el menú, seleccione Manage Jenkins (Administrar Jenkins).

  2. En System Configuration (Configuración del sistema), seleccione Configure System (Configurar sistema).

  3. Compruebe que la dirección URL de Jenkins esté establecida en la dirección HTTP de la instalación de Jenkins: http://<your_host>.<your_domain>:8080/.

  4. Seleccione Guardar.

Adición del agente a Jenkins

  1. En el menú, seleccione Manage Jenkins (Administrar Jenkins).

  2. En System Configuration (Configuración del sistema), seleccione Manage Nodes and Clouds (Administrar nodos y nubes).

  3. En el menú, seleccione New Node (Nuevo nodo).

  4. Escriba un valor para Node Name (Nombre del nodo).

  5. Seleccione Permanent Agent (Agente permanente).

  6. Seleccione Aceptar.

  7. Especifique los valores para los siguientes campos:

    • Nombre: especifique un nombre único que identifique un agente dentro de la nueva instalación de Jenkins. Este valor puede ser diferente del nombre de host del agente. Sin embargo, es conveniente que los dos valores sean iguales. En el valor del nombre se permite cualquier carácter especial de la lista siguiente: ?*/\%!@#$^&|<>[]:;.

    • Directorio raíz remoto: un agente debe tener un directorio dedicado a Jenkins. Especifique la ruta de acceso a este directorio en el agente. Es mejor utilizar una ruta de acceso absoluta, como /home/azureuser/work o c:\jenkins. Debe ser una ruta de acceso local a la máquina del agente. No es necesario que esta ruta de acceso sea visible desde el maestro. Si usa una ruta de acceso relativa, como ./jenkins-agent, la ruta de acceso será relativa al directorio de trabajo proporcionado por el método de inicio.

    • Etiquetas: las etiquetas se usan para agrupar agentes semánticamente relacionados con un grupo lógico. Por ejemplo, puede definir la etiqueta UBUNTU para todos los agentes que ejecutan la distribución Ubuntu de Linux.

    • Método launch: hay dos opciones para iniciar el nodo remoto de Jenkins: Iniciar agentes a través de SSH e Iniciar agente mediante la ejecución del comando en el maestro:

      • Iniciar agentes a través de SSH: especifique los valores de los campos siguientes:

        • Host: dirección IP pública de máquina virtual o nombre de dominio. Por ejemplo, 123.123.123.123 o example.com.

        • Credenciales: seleccione una credencial que se usará para iniciar sesión en el host remoto. También puede seleccionar el botón Add (Agregar) para definir una nueva credencial y, a continuación, seleccionar esa nueva credencial una vez que se haya creado.

        • Estrategia de verificación de claves de host: controla cómo Jenkins comprueba la clave SSH presentada por el host remoto mientras se conecta.

        Node configuration example specifying a launch method of Launch agents via SSH.

      • Launch agent via execution of command on the master (Iniciar agente mediante ejecución de un comando en el maestro):

        • Descargue desde agent.jarhttps://<your_jenkins_host_name>/jnlpJars/agent.jar. Por ejemplo, https://localhost:8443/jnlpJars/agent.jar.

        • Cargue el archivo agent.jar en la máquina virtual.

        • Inicie Jenkins con el comando ssh <node_host> java -jar <remote_agentjar_path>. Por ejemplo, ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar.

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. Seleccione Guardar.

Después de definir las configuraciones, Jenkins agrega la máquina virtual como un nuevo nodo de trabajo.

Example of virtual machine as new work node

Creación de un trabajo en Jenkins

  1. En el menú, seleccione New Item (Nuevo elemento).

  2. Escriba demoproject1 como nombre.

  3. Seleccione Freestyle project (Proyecto de estilo libre).

  4. Seleccione Aceptar.

  5. En la pestaña General, elija Restrict where project can be run (Restringir donde se pueda ejecutar el proyecto) y escriba ubuntu en Label Expression (Expresión de etiqueta). Aparece un mensaje que confirma que la etiqueta la proporciona la configuración de la nube creada en el paso anterior.

    Setting up a new Jenkins job

  6. En la pestaña Source Code Management (Administración del código fuente), seleccione Git y agregue la siguiente dirección URL en el campo Repository URL (Dirección URL del repositorio): https://github.com/spring-projects/spring-petclinic.git.

  7. En la pestaña Build (Compilar), seleccione Add build step (Agregar paso de compilación) y elija Invoke top-level Maven targets (Invocar destinos de Maven de nivel superior). Escriba package en el campo Goals (Objetivos).

  8. Seleccione Guardar.

Compilación del nuevo trabajo en un agente de máquina virtual de Azure

  1. Seleccione el trabajo que creó en el paso anterior.

  2. Seleccione Compilar ahora. Se pone en cola una nueva compilación, pero no se inicia hasta que se crea una máquina virtual de agente en la suscripción de Azure.

  3. Una vez completada la compilación, vaya a Console output (Salida de consola). Allí puede ver que la compilación se realizó de forma remota en un agente de Azure.

    Console output

Pasos siguientes