Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Aunque muchos servicios de Azure tienen complementos de Jenkins, la mayoría de estos complementos finalizaron la compatibilidad desde el 29 de febrero de 2024. La CLI de Azure es la forma recomendada actualmente de integrar Jenkins con los servicios de Azure. Para más información, consulte el artículo Complementos de Jenkins para Azure.
En este tutorial se muestra cómo crear máquinas virtuales Linux en Azure y agregarla como un nodo de trabajo a Jenkins.
En este tutorial, aprenderá lo siguiente:
- Crear máquina agente
- Adición de agente a Jenkins
- Creación de un nuevo trabajo de estilo libre de Jenkins
- Ejecución del trabajo en un agente de máquina virtual de Azure
Prerrequisitos
- 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 instalar con otras herramientas del administrador de paquetes, como yum o pacman.
sudo apt-get install -y default-jdk
Una vez completada 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 Administrar Jenkins.
En Configuración del sistema, seleccione 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/
.Haga clic en Guardar.
Adición de agente a Jenkins
En el menú, seleccione Administrar Jenkins.
En Configuración del sistema, seleccione Administrar nodos y nubes.
En el menú, seleccione Nuevo nodo.
Escriba un valor para Nombre de nodo.
Seleccione Agente permanente.
Selecciona 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. Sería conveniente hacer que los dos valores sean iguales. El valor de nombre permite cualquier carácter especial de la siguiente lista:
?*/\%!@#$^&|<>[]:;
.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 usar 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 principal. 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 Launch.Etiquetas: las etiquetas se usan para agrupar agentes semánticamente relacionados con un grupo lógico. Por ejemplo, podría definir una etiqueta de
UBUNTU
para todos los agentes que ejecutan la distribución de Ubuntu de Linux.Método de lanzamiento: hay dos opciones para iniciar el nodo remoto de Jenkins: Iniciar el agente a través de SSH e Iniciar el agente mediante la ejecución del comando en el servidor principal:
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 Agregar para definir una nueva credencial y, después, seleccionar esa nueva credencial una vez creada.
Estrategia de verificación de claves de host: controla cómo Jenkins comprueba la clave SSH presentada por el host remoto mientras se conecta.
Inicie el agente mediante la ejecución del comando en el servidor maestro
Descargue el
agent.jar
desdehttps://<your_jenkins_host_name>/jnlpJars/agent.jar
. Por ejemplo:https://localhost:8443/jnlpJars/agent.jar
.Carga
agent.jar
en la máquina virtualInicie 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
.
Haga clic en 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 Nuevo elemento.
Escriba
demoproject1
el nombre.Seleccione Freestyle project (Proyecto freestyle).
Selecciona Aceptar.
En la pestaña General , elija Restringir dónde se puede ejecutar el proyecto y escriba
ubuntu
Expresión de etiqueta. Verá un mensaje que confirma que la etiqueta es proporcionada por la configuración en la nube creada en el paso anterior.En la pestaña Administración de código fuente , seleccione Git y agregue la siguiente dirección URL al campo Url del repositorio :
https://github.com/spring-projects/spring-petclinic.git
En la pestaña Compilar , seleccione Agregar paso de compilación y, a continuación, Invocación de destinos de Maven de nivel superior. Escriba
package
en el campo Objetivos .Haga clic en Guardar.
Construir el nuevo trabajo en un agente de VM de Azure
Seleccione el trabajo que creó en el paso anterior.
Seleccione Compilar ahora. Una nueva compilación se pone en cola, 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 Salida de la consola. Verá que la compilación se realizó de forma remota en un agente de Azure.