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
- Instalación de Jenkins: si no tiene acceso a una instalación de Jenkins, configure Jenkins mediante la CLI de Azure.
Configuración de la máquina virtual del agente
Use az group create para crear un grupo de recursos de Azure.
az group create --name <resource_group> --location <location>
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>
.
- También puede cargar la clave SSH con el siguiente comando
Instale el JDK.
Inicie sesión en la máquina virtual mediante una herramienta SSH.
ssh username@123.123.123.123
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
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.
En el menú, seleccione Manage Jenkins (Administrar Jenkins).
En System Configuration (Configuración del sistema), seleccione Configure System (Configurar sistema).
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/
.Seleccione Guardar.
Adición del agente a Jenkins
En el menú, seleccione Manage Jenkins (Administrar Jenkins).
En System Configuration (Configuración del sistema), seleccione Manage Nodes and Clouds (Administrar nodos y nubes).
En el menú, seleccione New Node (Nuevo nodo).
Escriba un valor para Node Name (Nombre del nodo).
Seleccione Permanent Agent (Agente permanente).
Seleccione Aceptar.
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
oc:\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
oexample.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.
Launch agent via execution of command on the master (Iniciar agente mediante ejecución de un comando en el maestro):
Descargue desde
agent.jar
https://<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
.
Seleccione Guardar.
Después de definir las configuraciones, Jenkins agrega la máquina virtual como un nuevo nodo de trabajo.
Creación de un trabajo en Jenkins
En el menú, seleccione New Item (Nuevo elemento).
Escriba
demoproject1
como nombre.Seleccione Freestyle project (Proyecto de estilo libre).
Seleccione Aceptar.
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.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
.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).Seleccione Guardar.
Compilación del nuevo trabajo en un agente de máquina virtual de Azure
Seleccione el trabajo que creó en el paso anterior.
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.
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.