Agentes de Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019 | TFS 2018

Nota

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Para compilar el código o implementar el software mediante Azure Pipelines, necesita al menos un agente. A medida que se agregan más código y personas, se van a necesitar más.

Cuando se ejecuta la canalización, el sistema inicia uno o varios trabajos. Un agente es una infraestructura informática con software de agente instalado que ejecuta un trabajo a la vez.

Los trabajos se pueden ejecutar directamente en el equipo host del agente o en un contenedor.

Agentes hospedado por Microsoft

Si las canalizaciones están en Azure Pipelines, tiene una opción cómoda para ejecutar los trabajos mediante un agente hospedado por Microsoft. Si se usan agentes hospedados por Microsoft, las actualizaciones y el mantenimiento se realizarán automáticamente. Cada vez que ejecute una canalización, obtendrá una nueva máquina virtual para cada trabajo de la canalización. La máquina virtual se descarta después de un trabajo (lo que significa que cualquier cambio que realice un trabajo en el sistema de archivos de la máquina virtual, como desprotescar el código, no estará disponible para el siguiente trabajo). Los agentes hospedados por Microsoft pueden ejecutar trabajos directamente en la máquina virtual o en un contenedor.

Azure Pipelines proporciona un grupo de agentes predefinido denominado Azure Pipelines con agentes hospedados por Microsoft.

Para muchos equipos, esta es la manera más sencilla de ejecutar los trabajos. Puede probarlo en primer lugar y ver si funciona para la compilación o la implementación. Si no funciona, puede usar un agente autohospedado.

Sugerencia

Puede probar un agente hospedado por Microsoft sin cargo alguno.

Obtenga más información sobre los agentes hospedados por Microsoft.

Agentes autohospedados

Un agente que configuró y administra por su cuenta para ejecutar trabajos es un agente autohospedado. Puede usar agentes autohospedados en Azure Pipelines o Azure DevOps Server, anteriormente denominados Team Foundation Server (TFS). Los agentes autohospedados proporcionan mayor control para instalar el software dependiente necesario para las compilaciones e implementaciones. Además, las memorias caché de nivel de máquina y la configuración se conservan desde la ejecución hasta la ejecución, lo que puede aumentar la velocidad.

Nota

Aunque se pueden instalar varios agentes por máquina, se recomienda encarecidamente instalar solo un agente por máquina. La instalación de dos o más agentes puede afectar negativamente al rendimiento y al resultado de las canalizaciones.

Sugerencia

Antes de instalar un agente autohospedado, es posible que desee ver si un grupo de agentes hospedados por Microsoft funcionará automáticamente. En muchos casos, esta es la manera más sencilla de empezar. Pruébelo.

Puede instalar el agente en máquinas Linux, macOS o Windows. También puede instalar un agente en un contenedor de Docker. Para más información acerca de la instalación de un agente autohospedado, consulte:

Nota

En macOS, debe borrar el atributo especial en el archivo de descarga para evitar que la protección de Gatekeeper se muestre para cada ensamblado del archivo tar cuando ./config.sh se ejecute. El siguiente comando borra el atributo extendido en el archivo:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Después de instalar el agente en una máquina, puede instalar cualquier otro software en esa máquina, según la necesidad que tengan los trabajos.

Nota

Los agentes son ampliamente compatibles con versiones anteriores. Cualquier versión del agente debe ser compatible con cualquier versión de Azure DevOps siempre que Azure DevOps no exija una versión superior del agente.

Solo se admite la versión más reciente del agente, ya que es la única versión garantizada para tener todas las revisiones actualizadas y correcciones de errores.

Agentes del conjunto de escalado de máquinas virtuales de Azure

Los agentes del conjunto de escalado de máquinas virtuales de Azure son un tipo de agentes autohospedados que se pueden escalar automáticamente para satisfacer sus necesidades. Esta elasticidad reduce la necesidad de ejecutar agentes dedicados de forma continua. A diferencia de los agentes hospedados por Microsoft, el tamaño y la imagen de las máquinas en las que se ejecutan los agentes tienen flexibilidad.

Especifique un conjunto de escalado de máquinas virtuales, una serie de agentes que se mantendrán en espera, un número máximo de máquinas virtuales en el conjunto de escalado y Azure Pipelines administra el escalado de los agentes en su nombre.

Para obtener más información, vea Agentes de conjunto de escalado de máquinas virtuales de Azure.

Trabajos paralelos

Los trabajos paralelos representan el número de trabajos que puede ejecutar al mismo tiempo en su organización. Si su organización tiene un único trabajo paralelo, puede ejecutar un único trabajo a la vez en su organización, con cualquier trabajo simultáneo adicional que se pone en cola hasta que se complete el primer trabajo. Para ejecutar dos trabajos al mismo tiempo, necesita dos trabajos paralelos. En Azure Pipelines, puede ejecutar trabajos paralelos en la infraestructura hospedada por Microsoft o en su propia infraestructura (autohospedada).

Microsoft proporciona un nivel de servicio gratuito de forma predeterminada en cada organización que incluye al menos un trabajo paralelo. Según el número de canalizaciones simultáneas que necesite ejecutar, es posible que necesite más trabajos paralelos para usar varios agentes hospedados por Microsoft o autohospedados al mismo tiempo. Para más información sobre trabajos paralelos y diferentes niveles de servicio gratuitos, consulte Trabajos paralelos en Azure Pipelines.

Es posible que necesite más trabajos paralelos para usar varios agentes al mismo tiempo:

Importante

A partir de Azure DevOps Server 2019, no es necesario pagar por trabajos simultáneos autohospedados en versiones. Solo está limitado por el número de agentes que tiene.

Capacidades

Cada agente autohospedado tiene un conjunto de funcionalidades que indican lo que puede hacer. Las funcionalidades son pares nombre-valor que el software del agente detecta automáticamente, en cuyo caso se denominan funcionalidades del sistema o las que se definen, en cuyo caso se denominan funcionalidades de usuario.

El software del agente determina automáticamente diversas funcionalidades del sistema, como el nombre de la máquina, el tipo de sistema operativo y las versiones de cierto software instalado en la máquina. Además, las variables de entorno definidas en la máquina aparecen automáticamente en la lista de funcionalidades del sistema.

Nota

Almacenar variables de entorno como funcionalidades significa que cuando se ejecuta un agente, los valores de funcionalidad almacenados se usan para establecer las variables de entorno. Además, los cambios en las variables de entorno que se realizan mientras se ejecuta el agente no se recogerán ni usarán en ninguna tarea. Si tiene variables de entorno confidenciales que cambian y no quiere que se almacenen como funcionalidades, puede hacer que se omitan estableciendo la VSO_AGENT_IGNORE variable de entorno, con una lista delimitada por comas de variables que se omitirán. Por ejemplo, PATH es una variable crítica que puede omitir si va a instalar software.

Al crear una canalización, se especifican determinadas demandas del agente. El sistema envía el trabajo solo a los agentes que tienen funcionalidades que coinciden con las demandas especificadas en la canalización. Como resultado, las funcionalidades del agente permiten dirigir trabajos a agentes específicos.

Nota

Las demandas y funcionalidades están diseñadas para su uso con agentes autohospedados para que los trabajos puedan coincidir con un agente que cumpla los requisitos del trabajo. Cuando se usan agentes hospedados por Microsoft, se selecciona una imagen para el agente que coincide con los requisitos del trabajo, por lo que, aunque es posible agregar funcionalidades a un agente hospedado por Microsoft, no es necesario usar funcionalidades con agentes hospedados por Microsoft.

Configuración de las funcionalidades del agente

Puede ver los detalles de un agente, incluida su versión y sus funcionalidades del sistema, y administrar sus funcionalidades de usuario; para ello, vaya a Grupos de agentes y seleccione la pestaña Funcionalidades del agente deseado.

  1. En el explorador web, vaya a Grupos de agentes:

    1. Elija Azure DevOps, Configuración de la organización.

      Elija Configuración de la organización.

    2. Elija Grupos de agentes.

      Elija la pestaña Grupos de agentes.

    1. Elija Azure DevOps, Configuración de recopilación.

      Elija Configuración de recopilación.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes.

    1. Elija Azure DevOps, Configuración de recopilación.

      Configuración de la colección, 2019.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes, 2019.

    1. Vaya al proyecto y elija Configuración (icono de engranaje) >Colas del agente.

      Elija Configuración, Colas del agente, 2018.

    2. Elija Administrar grupos.

      Elija Administrar grupos, 2018.

  2. Vaya a la pestaña Funcionalidades:

    1. En la pestaña Grupos de agentes , seleccione el grupo de agentes deseado.

      En Grupos de agentes, seleccione el grupo de agentes deseado.

    2. Seleccione Agentes y elija el agente deseado.

      Seleccione Agentes y elija el agente.

    3. Elija la pestaña Capacidades .

      Elija la pestaña Capacidades.

      Nota

      Los agentes hospedados por Microsoft no muestran las funcionalidades del sistema. Para obtener una lista de software instalado en agentes hospedados por Microsoft, consulte Uso de un agente hospedado por Microsoft.

    1. En la pestaña Grupos de agentes , seleccione el grupo deseado.

      Seleccione el grupo deseado.

    2. Seleccione Agentes y elija el agente deseado.

      Seleccione Agentes y elija el agente deseado.

    3. Elija la pestaña Capacidades .

      Pestaña Funcionalidades del agente.

    1. En la pestaña Grupos de agentes , seleccione el grupo deseado.

      Seleccione la pestaña deseada, 2019.

    2. Seleccione Agentes y elija el agente deseado.

      Elija el agente deseado, 2019.

    3. Elija la pestaña Capacidades .

      Elija la pestaña Capacidades, 2019.

    Seleccione el agente deseado y elija la pestaña Capacidades .

    Pestaña Funcionalidades del agente, 2018.

  3. Para registrar una nueva funcionalidad con el agente, elija Agregar una nueva funcionalidad.

Sugerencia

Después de instalar nuevo software en un agente autohospedado, debe reiniciar el agente para que aparezca la nueva funcionalidad. Para obtener más información, consulte Restart Windows agent (Reiniciar agente de Windows), Restart Linux agent (Reiniciar agente de Linux) y Restart Mac agent (Reiniciar agente de Mac).

Comunicación

Comunicación con Azure Pipelines

Comunicación con TFS

El agente se comunica con Azure Pipelines o Azure DevOps Server para determinar qué trabajo debe ejecutar y para informar de los registros y el estado del trabajo. El agente siempre inicia esta comunicación. Todos los mensajes del agente a Azure Pipelines o Azure DevOps Server suceden en HTTP o HTTPS, dependiendo de cómo configure el agente. Este modelo de extracción permite configurar el agente en topologías diferentes tal y como se muestra a continuación.

Topologías del agente en instalaciones locales.

Topologías de agente en Azure DevOps Services.

Este es un patrón de comunicación común entre el agente y Azure Pipelines o Azure DevOps Server.

  1. El usuario registra un agente con Azure Pipelines o Azure DevOps Server agregándolo a un grupo de agentes. Debe ser un administrador del grupo de agentes para registrar un agente en ese grupo de agentes. La identidad del administrador del grupo de agentes solo se necesita en el momento del registro y no se conserva en el agente, ni se usa en ninguna comunicación posterior entre el agente y Azure Pipelines. Una vez completado el registro, el agente descarga un token de OAuth del agente de escucha y lo usa para escuchar la cola de trabajos.

  2. El agente escucha si se ha publicado una nueva solicitud de trabajo en la cola de trabajos de Azure Pipelines o Azure DevOps Server mediante un sondeo largo HTTP. Cuando hay un trabajo disponible, el agente descarga el trabajo, así como un token de OAuth específico del trabajo. Azure Pipelines/Azure DevOps Server genera este token para la identidad con ámbito especificada en la canalización. Ese token es de corta duración y lo usa el agente para acceder a recursos (por ejemplo, código fuente) o modificar recursos (por ejemplo, cargar resultados de pruebas) en Azure Pipelines o Azure DevOps Server dentro de ese trabajo.

  3. Después de completar el trabajo, el agente descarta el token de OAuth específico del trabajo y vuelve a comprobar si hay una nueva solicitud de trabajo mediante el token de OAuth del agente de escucha.

La carga de los mensajes intercambiados entre el agente y Azure Pipelines o Azure DevOps Server se protege mediante cifrado asimétrico. Cada agente tiene un par de claves pública y privada y la clave pública se intercambia con el servidor durante el registro. El servidor usa la clave pública para cifrar la carga del trabajo antes de enviarla al agente. El agente descifra el contenido del trabajo mediante su clave privada. Así es como se protegen los secretos almacenados en canalizaciones o grupos de variables a medida que se intercambian con el agente.

Comunicación para implementar en servidores de destino

Cuando se usa el agente para implementar artefactos en un conjunto de servidores, debe tener conectividad de "línea de visión" con esos servidores. De forma predeterminada, los grupos de agentes hospedados por Microsoft tienen conectividad con los sitios web y servidores de Azure que se ejecutan en Azure.

Nota

Si los recursos de Azure se ejecutan en una instancia de Azure Virtual Network, puede obtener los intervalos IP del agente en los que se implementan los agentes hospedados por Microsoft para que pueda configurar las reglas de firewall para que la red virtual de Azure permita el acceso por parte del agente.

Si los entornos locales no tienen conectividad con un grupo de agentes hospedados por Microsoft (que es lo habitual debido a firewalls intermedios), deberá configurar manualmente un agente autohospedado en equipos locales. Los agentes deben tener conectividad a los entornos locales de destino y acceso a Internet para conectarse a Azure Pipelines o Team Foundation Server, como se muestra en el siguiente esquema.

Conectividad del agente para entornos locales

Authentication

Para registrar un agente, debe ser miembro del rol de administrador en el grupo de agentes. La identidad del administrador del grupo de agentes solo se necesita en el momento del registro y no se conserva en el agente y no se usa en ninguna comunicación subsecuente entre el agente y Azure Pipelines. Además, debe ser un administrador local en el servidor para poder configurar el agente.

El agente puede autenticarse en Azure Pipelines con el siguiente método:

El agente puede autenticarse en Azure DevOps Server o TFS mediante uno de los métodos siguientes:

Token de acceso personal (PAT):

Genere y use un PAT para conectar un agente con Azure Pipelines o TFS 2017 y versiones posteriores. PAT es el único esquema que funciona con Azure Pipelines. El PAT debe tener el ámbito grupos de agentes (lectura, administración) (para un agente de grupo de implementación , el PAT debe tener ámbito de grupo de implementación (lectura, administración) y, mientras que se puede usar un solo PAT para registrar varios agentes, el PAT solo se usa en el momento de registrar el agente y no para la comunicación posterior. Para obtener más información, consulte la sección Autenticación con un token de acceso personal (PAT) en los artículos Agentes autohospedados de Windows, Linux o macOS .

Para usar un PAT con Azure DevOps Server, el servidor debe configurarse con HTTPS. Consulte Configuración y seguridad del sitio web.

Integrado

Conecte un agente de Windows a TFS mediante las credenciales del usuario que ha iniciado sesión a través de un esquema de autenticación de Windows, como NTLM o Kerberos.

Para usar este método de autenticación, primero debe configurar el servidor TFS.

  1. Inicie sesión en la máquina donde se ejecuta TFS.

  2. Inicie el Administrador de Internet Information Services (IIS). Seleccione el sitio de TFS y asegúrese de que la autenticación de Windows está habilitada con un proveedor válido, como NTLM o Kerberos.

Autenticación de windows de TFS de IIS

Autenticación de windows de TFS de IIS con el proveedor ntlm

Negotiate

Conéctese a TFS como un usuario que no sea el usuario que ha iniciado sesión a través de un esquema de autenticación de Windows como NTLM o Kerberos.

Para usar este método de autenticación, primero debe configurar el servidor TFS.

  1. Inicie sesión en la máquina donde se ejecuta TFS.

  2. Inicie el Administrador de Internet Information Services (IIS). Seleccione el sitio de TFS y asegúrese de que la autenticación de Windows está habilitada con el proveedor Negotiate y con otro método como NTLM o Kerberos.

Autenticación de windows de TFS de IIS

Autenticación de windows de TFS de IIS con el proveedor negotiate y ntlm

Alternativa

Conéctese a TFS mediante la autenticación básica. Para usar este método, primero debe configurar HTTPS en TFS.

Para usar este método de autenticación, debe configurar el servidor TFS de la siguiente manera:

  1. Inicie sesión en la máquina donde ejecuta TFS.

  2. Configure la autenticación básica. Consulte Usar tfx en Team Foundation Server 2015 mediante la autenticación básica.

Interactivo frente al servicio

Puede ejecutar el agente autohospedado como un servicio o un proceso interactivo. Después de configurar el agente, le recomendamos probarlo primero en modo interactivo para asegurarse de que funciona. A continuación, para el uso de producción, se recomienda que ejecute el agente en uno de los siguientes modos para que siga ejecutándose de forma confiable. Estos modos también garantizan que el agente se inicie automáticamente si se reinicia la máquina.

  1. Como servicio. Puede sacar provecho del administrador de servicios del sistema operativo para administrar el ciclo de vida del agente. Además, la experiencia de actualización automática del agente es mejor cuando se ejecuta como un servicio.

  2. Como proceso interactivo con el inicio de sesión automático habilitado. En algunos casos, es posible que tenga que ejecutar el agente de forma interactiva para su uso en producción, como para ejecutar pruebas de IU. Cuando el agente está configurado para ejecutarse en este modo, también se deshabilita el protector de pantalla. Algunas directivas de dominio pueden impedir que habilite el inicio de sesión automático o deshabilite el protector de pantalla. En tales casos, es posible que tenga que solicitar una exención de la directiva de dominio o ejecutar el agente en un equipo de grupo de trabajo donde no se apliquen las directivas de dominio.

    Nota

    Hay riesgos de seguridad al habilitar el inicio de sesión automático o deshabilitar el protector de pantalla porque permite a otros usuarios ir al equipo y usar la cuenta que inicia sesión automáticamente. Si configura el agente para que se ejecute de esta manera, debe asegurarse de que el equipo está protegido físicamente; por ejemplo, ubicado en una instalación segura. Si usa Escritorio remoto para acceder al equipo en el que se ejecuta un agente con el inicio de sesión automático, simplemente cerrar el Escritorio remoto hace que el equipo esté bloqueado y las pruebas de IU que se ejecuten en este agente pueden producir un error. Para evitar esto, use el comando tscon para desconectar del Escritorio remoto. Por ejemplo:

    %windir%\System32\tscon.exe 1 /dest:console

Cuenta del agente

Tanto si ejecuta un agente como servicio como de forma interactiva, puede elegir qué cuenta de equipo usa para ejecutar el agente. (Tenga en cuenta que esto es diferente de las credenciales que se usan al registrar el agente con Azure Pipelines o Azure DevOps Server). La elección de la cuenta del agente depende únicamente de las necesidades de las tareas que se ejecutan en los trabajos de compilación e implementación.

Por ejemplo, para ejecutar tareas que usan autenticación de Windows para acceder a un servicio externo, debe ejecutar el agente mediante una cuenta que tenga acceso a ese servicio. Sin embargo, si está ejecutando pruebas de IU como Selenium o pruebas automatizadas de IU que requieren un explorador, el explorador se inicia en el contexto de la cuenta del agente.

En Windows, debe considerar la posibilidad de usar una cuenta de servicio como servicio de red o servicio local. Estas cuentas tienen permisos restringidos y sus contraseñas no expiran, lo que significa que el agente requiere menos administración con el tiempo.

Versiones y actualizaciones del agente

Actualizamos el software del agente cada pocas semanas en Azure Pipelines. Indicamos la versión del agente con el formato {major}.{minor}. Por ejemplo, si la versión del agente es 2.1, la versión principal es 2 y la versión secundaria es 1.

Los agentes hospedados por Microsoft siempre se mantienen actualizados. Si la versión más reciente del agente solo es diferente en la versión secundaria , los agentes autohospedados normalmente se pueden actualizar automáticamente (configure esta opción en grupos de agentes, seleccione el agente, Configuración ; Azure Pipelines habilita el valor predeterminado). Se solicita una actualización cuando una característica de plataforma o una de las tareas usadas en la canalización requiere una versión más reciente del agente.

Si ejecuta un agente autohospedado de forma interactiva o si hay una versión principal más reciente del agente disponible, es posible que tenga que actualizar manualmente los agentes. Puede hacerlo fácilmente desde la pestaña Grupos de agentes de la organización. Las canalizaciones no se ejecutarán hasta que puedan tener como destino un agente compatible.

Para actualizar agentes autohospedados

  1. Vaya a Configuración del proyecto, Grupos de agentes.

    Configuración del proyecto, grupos de agentes

  2. Seleccione el grupo de agentes y elija Actualizar todos los agentes.

    Actualizar todos los agentes

    También puede actualizar los agentes individualmente si elige Actualizar agente en el menú ... .

    Actualizar agente

  3. Seleccione Actualizar para confirmar la actualización.

    Actualización de la confirmación de todos los agentes

  4. Se pone en cola una solicitud de actualización para cada agente del grupo, que se ejecuta cuando se completan los trabajos que se están ejecutando actualmente. La actualización normalmente solo tarda unos instantes, lo suficientemente largo como para descargar la versión más reciente del software del agente (aproximadamente 200 MB), descomprimirlo y reiniciar el agente con la nueva versión. Puede supervisar el estado de los agentes en la pestaña Agentes .

Actualizamos el software del agente con cada actualización en Azure DevOps Server y TFS. Indicamos la versión del agente con el formato {major}.{minor}. Por ejemplo, si la versión del agente es 2.1, la versión principal es 2 y la versión secundaria es 1.

Cuando el servidor Azure DevOps Server o TFS tiene una versión más reciente del agente y ese agente más reciente solo es diferente en la versión secundaria, normalmente se puede actualizar automáticamente. Se solicita una actualización cuando una característica de plataforma o una de las tareas usadas en la canalización requiere una versión más reciente del agente. A partir de Azure DevOps Server 2019, no es necesario esperar a una nueva versión del servidor. Puede cargar una nueva versión del agente en el nivel de aplicación y esa versión se ofrecerá como una actualización.

Si ejecuta el agente de forma interactiva o si hay una versión principal más reciente del agente disponible, es posible que tenga que actualizar manualmente los agentes. Puede hacerlo fácilmente desde la pestaña Grupos de agentes de la colección de proyectos. Las canalizaciones no se ejecutarán hasta que puedan tener como destino un agente compatible.

Para ver la versión de un agente, vaya a Grupos de agentes y seleccione la pestaña Funcionalidades del agente deseado, como se describe en Configuración de funcionalidades del agente.

Para desencadenar la actualización del agente mediante programación, puede usar la API de actualización del agente como se describe en la sección ¿Cómo puedo desencadenar actualizaciones del agente mediante programación para un grupo de agentes específico?.

Nota

En el caso de los servidores sin acceso a Internet, copie manualmente el archivo ZIP del agente para C:\ProgramData\Microsoft\Azure DevOps\Agents\ usarlo como archivo local.

Preguntas más frecuentes

Cómo asegúrese de que tengo la versión más reciente del agente v2?

  1. Vaya a la pestaña Grupos de agentes :

    1. Elija Azure DevOps, Configuración de la organización.

      Elija Configuración de la organización.

    2. Elija Grupos de agentes.

      Elija la pestaña Grupos de agentes.

    1. Elija Azure DevOps, Configuración de recopilación.

      Elija Configuración de recopilación.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes.

    1. Elija Azure DevOps, Configuración de recopilación.

      Configuración de la colección, 2019.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes, 2019.

    1. Vaya al proyecto y elija Configuración (icono de engranaje) >Colas del agente.

      Elija Configuración, Colas del agente, 2018.

    2. Elija Administrar grupos.

      Elija Administrar grupos, 2018.

  2. Haga clic en el grupo que contiene el agente.

  3. Asegúrese de que el agente está habilitado.

  4. Vaya a la pestaña Funcionalidades:

    1. En la pestaña Grupos de agentes, seleccione el grupo de agentes deseado.

      En Grupos de agentes, seleccione el grupo de agentes deseado.

    2. Seleccione Agentes y elija el agente deseado.

      Seleccione Agentes y elija el agente.

    3. Elija la pestaña Capacidades .

      Elija la pestaña Capacidades.

      Nota

      Los agentes hospedados por Microsoft no muestran las funcionalidades del sistema. Para obtener una lista de software instalado en agentes hospedados por Microsoft, consulte Uso de un agente hospedado por Microsoft.

    1. En la pestaña Grupos de agentes, seleccione el grupo deseado.

      Seleccione el grupo deseado.

    2. Seleccione Agentes y elija el agente deseado.

      Seleccione Agentes y elija el agente deseado.

    3. Elija la pestaña Capacidades .

      Pestaña Funcionalidades del agente.

    1. En la pestaña Grupos de agentes, seleccione el grupo deseado.

      Seleccione la pestaña deseada, 2019.

    2. Seleccione Agentes y elija el agente deseado.

      Elija el agente deseado, 2019.

    3. Elija la pestaña Capacidades .

      Elija la pestaña Capacidades, 2019.

    Seleccione el agente deseado y elija la pestaña Capacidades .

    Pestaña Funcionalidades del agente, 2018.

  5. Busque la Agent.Version funcionalidad. Puede comprobar este valor con la versión más reciente del agente publicado. Consulte Agente de Azure Pipelines y compruebe la página para ver el número de versión más alto enumerado.

  6. Cada agente se actualiza automáticamente cuando ejecuta una tarea que requiere una versión más reciente del agente. Si desea actualizar manualmente algunos agentes, haga clic con el botón derecho en el grupo y seleccione Actualizar todos los agentes.

¿Puedo actualizar mis agentes v2 que forman parte de un grupo de Azure DevOps Server?

Sí. A partir de Azure DevOps Server 2019, puede configurar el servidor para buscar los archivos de paquete del agente en un disco local. Esta configuración invalidará la versión predeterminada que se incluye con el servidor en el momento de su lanzamiento. Este escenario también se aplica cuando el servidor no tiene acceso a Internet.

  1. Desde un equipo con acceso a Internet, descargue la versión más reciente de los archivos de paquete del agente (en .zip o formulario .tar.gz) desde la página Versiones de GitHub del agente de Azure Pipelines.

  2. Transfiera los archivos de paquete descargados a cada Azure DevOps Server nivel de aplicación mediante un método de su elección (como la unidad USB, la transferencia de red, etc.). Coloque los archivos del agente en la %ProgramData%\Microsoft\Azure DevOps\Agents carpeta .

  3. ¡Estás listo! El Azure DevOps Server ahora usará los archivos locales cada vez que se actualicen los agentes. Cada agente se actualiza automáticamente cuando ejecuta una tarea que requiere una versión más reciente del agente. Pero si desea actualizar manualmente algunos agentes, haga clic con el botón derecho en el grupo y, a continuación, elija Actualizar todos los agentes.

¿Los agentes autohospedados tienen alguna ventaja de rendimiento con respecto a los agentes hospedados por Microsoft?

En muchos casos, sí. Concretamente:

  • Si usa un agente autohospedado, puede ejecutar compilaciones incrementales. Por ejemplo, si define una canalización que no limpia el repositorio y no realiza una compilación limpia, las compilaciones normalmente se ejecutarán más rápido. Cuando se usa un agente hospedado por Microsoft, no se obtienen estas ventajas porque el agente se destruye una vez completada la canalización de compilación o versión.

  • Un agente hospedado por Microsoft puede tardar más tiempo en iniciar la compilación. Aunque a menudo tarda unos segundos en asignarse el trabajo a un agente hospedado por Microsoft, a veces puede tardar varios minutos en asignarse un agente en función de la carga en nuestro sistema.

¿Puedo instalar varios agentes autohospedados en la misma máquina?

Sí. Este enfoque puede funcionar bien para los agentes que ejecutan trabajos que no consumen muchos recursos compartidos. Por ejemplo, podría probarlo para los agentes que ejecutan versiones que organizan principalmente las implementaciones y no hacen mucho trabajo en el propio agente.

Es posible que en otros casos no obtenga mucha eficacia ejecutando varios agentes en la misma máquina. Por ejemplo, es posible que no valga la pena para los agentes que ejecutan compilaciones que consumen mucho disco y recursos de E/S.

También puede experimentar problemas si los trabajos de compilación paralelos usan la misma implementación de la herramienta singleton, como los paquetes npm. Por ejemplo, una compilación podría actualizar una dependencia mientras que otra compilación está en pleno uso de ella, lo que podría provocar resultados y errores de baja fiabilidad.

¿Cuál es el comportamiento de los agentes cuando se cancelan los trabajos de canalización?

En el caso de los agentes hospedados por Microsoft, el agente se descompone y se devuelve al grupo de Azure Pipelines.

Para agentes autohospedados:

Cuando se cancela una canalización, el agente envía una secuencia de comandos al proceso que ejecuta el paso actual. El primer comando se envía con un tiempo de espera de 7,5 segundos. Si el proceso no ha finalizado, se envía un segundo comando con un tiempo de espera de 2,5 segundos. Si el proceso no ha finalizado, el agente emite un comando para terminar el proceso. Si el proceso no respeta las dos solicitudes de finalización iniciales, se eliminará. La solicitud inicial a la finalización tarda aproximadamente 10 segundos.

Los comandos emitidos para el proceso son diferentes en función del sistema operativo del agente.

  • macOS y Linux: los comandos enviados son SIGINT, seguido de SIGTERM, seguido de SIGKILL.
  • Windows: los comandos enviados al proceso son Ctrl+C, seguido de Ctrl+Interrumpir, seguido de Process.Kill.

¿Cómo puedo desencadenar las actualizaciones del agente mediante programación para un grupo de agentes específico?

Puede desencadenar actualizaciones del agente para el grupo mediante la SIGUIENTE API:

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

Parámetros de identificador URI

Nombre En Obligatorio Tipo Descripción
agentId Query False string Agente que se va a actualizar. Si no se especifica, la actualización se desencadenará para todos los agentes.
organization path True string El nombre de la organización de Azure DevOps.
poolId path True integer int32 Grupo de agentes que se va a usar
api-version Query False string Versión de la API que se va a usar. Debe establecerse en "6.0" para usar esta versión de la API.

Para desencadenar la actualización del agente: el cuerpo de la solicitud debe estar vacío.

Nota

El agente de Azure Pipelines se código abierto en GitHub.

Más información

Para más información sobre los agentes, consulte los siguientes módulos de la ruta de aprendizaje Compilación de aplicaciones con Azure DevOps .