Crear un agente de Azure DevOps on-premise como servicio
En Azure DevOps, tenemos la opción por defecto de utilizar distintos agentes hosteados directamente en el cloud de la plataforma.
No obstante, hay veces que necesitamos que en nuestros servidores se tenga un agente para deployar en el ambiente. Para ello, les mostraré un paso a paso para poder configurar un agente on-premise como servicio de Windows.
Creando un Agent Pool
Para crear un Agent Pool nuevo, debemos ir a las configuraciones del proyecto. En la sección Pipelines, seleccionar Agent Pools; aparecerá el listado de Agents pools configurados para el proyecto (incluidos los Hosted)
Si clickeamos en el botón Add pool, nos aparecerá un pop-up donde debemos indicarle un nombre.
Finalmente, debemos asignar un agente al agent pool creado recientemente. Para esto, no solo tendremos que instalar el agente de DevOps en el servidor, sino también darle acceso a nuestro proyecto (como así también, configurar sus permisos.
Generando un PAT (Personal Access Token)
Como primer paso, debemos crear un PAT (Personal Access Token) para que nuestro agente pueda conectarse a nuestro proyecto. Para realizarlo, debemos ir a la opción Security dentro del menú contextual del usuario.
Luego de seleccionar la opción +Add Token aparecerá un nuevo pop-up con la configuración del PAT. Se podrá definir un nombre para identificarlo, asignar a qué organización corresponde, la expiración del mismo y el alcance de permisos.
Una vez creado, aparecerá un token el cual debemos copiar temporalmente (dado que luego no será accesible) y es necesario para configurar el agente en el servidor.
Configuración del agente on-premise
Para poder configurar el agente en nuestro servidor, es necesario descargarlo. Para ello, volvemos a ir a la sección de Agent pools y seleccionamos la que creamos en la primera sección del artículo.
Aparecerá un botón New Agent, le damos click y nos aparecerá un pop-up con instrucciones generales para configurarlo.
Podremos seleccionar, en qué sistema operativo se instalará el agente, y bajo qué arquitectura. El ejemplo que voy a mostrar es sobre un Servidor Windows x64 bits.
Debemos copiar el link de descarga del agente. Y dentro del servidor, accederlo. Automáticamente se descargará un zip con el instalador y configurador del agente.
Si seguimos las instrucciones del pop-up, nos hará crear una carpeta donde ubicaremos al agente dentro de nuestro File System.
PS C:\> mkdir agent ; cd agent
PS C:\agent> Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$HOME\Downloads\vsts-agent-win-x64-2.150.3.zip", "$PWD")
En este caso, creará una carpeta llamada agent
en el C:\
. Dentro de la carpeta extraerá el archivo recientemente descargado. Una vez realizado este paso, debemos ejecutar el config.cmd
ubicado en el instalador.
PS C:\agent> .\config.cmd
A partir de ahora, se mostrará en el powershell un instructivo paso a paso para ingresar los parámetros de configuración:
- El primer parámetro solicitado es la URL del servidor: Debemos ingresar la URL de Azure DevOps hasta la organización que fue configurado el Agent Pool (https://dev.azure.com/{organization}).
- El segundo parámetro es el modo de autenticación, por defecto toma PAT: Podemos no ingresar opción y tomará PAT.
- El tercer parámetro es el token: ingresamos el PAT que copiamos en pasos anteriores.
- Luego de este paso, realizará el intento de conexión con el server de Azure DevOps. En caso que sea correcta la comunicación:
- Solicitará el nombre del agent pool: Debemos ingresar el nombre del Agent Pool creado durante este instructivo.
- A continuación, solicitará el nombre del agent: Debemos ingresar el nombre que queremos que tenga el agente (por defecto asigna el nombre de la PC).
- Verifica que tenga el PAT asignado permisos para gestionar el Agent Pool y qué alcance de permisos tiene para trabajar.
- Finalmente, resta indicar que el agente se instalará como un servicio de Windows y asignar el usuario para que se ejecute con sus permisos.