Agentes de Azure Pipelines.

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

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 la canalización se ejecuta, el sistema inicia uno o varios trabajos. Un agente es una infraestructura informática con software de agente instalado que ejecuta un trabajo de uno en uno.

Azure Pipelines proporciona varios tipos diferentes de agentes.

Tipo de agente Descripción Disponibilidad
Agentes hospedado por Microsoft Agentes hospedados y administrados por Microsoft Azure DevOps Services
Agentes autohospedados Agentes que configure y administre, hospedados en las máquinas virtuales Azure DevOps Services, Azure DevOps Server
Agentes de conjunto de escalado de máquinas virtuales de Azure Una forma de agentes autohospedados mediante Azure Virtual Machine Scale Sets, que se puede escalar automáticamente para satisfacer las demandas Azure DevOps Services

Agentes hospedado por Microsoft

Si las canalizaciones están en Azure Pipelines, dispone de una práctica opción 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. Siempre obtendrá la versión más reciente de la imagen de máquina virtual que especifique en la canalización. Cada vez que ejecute una canalización, obtendrá una máquina virtual nueva 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 la extracción de código del repositorio, 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 llamado Azure Pipelines con agentes hospedados por Microsoft.

Para muchos equipos, esta es la manera más sencilla de ejecutar sus trabajos. Puede probarlo en primer lugar y ver si funciona para la compilación o la implementación. Si no es así, puede usar agentes de conjunto de escalado o 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 autohospedado es un tipo de agente que se configura y administra por su cuenta para ejecutar trabajos. 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 de una ejecución a otra, lo que puede aumentar la velocidad.

Nota:

Aunque se pueden instalar varios agentes por máquina, se recomienda 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 se ejecute ./config.sh. 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.

Versiones del ejecutor de Node

El agente se incluye con varias versiones de las bibliotecas NodeJS para admitir tareas de destino que usan diferentes controladores de Node.

Sin embargo, todas las tareas oficiales de Azure DevOps usan Node 10 como controlador universal. En cualquier caso, los clientes pueden seguir usando tareas personalizadas que usan la biblioteca de Node 6 obsoleta. Para admitir la compatibilidad con versiones anteriores con una versión de Node que haya alcanzado el final del ciclo de vida, proporcionamos los siguientes métodos de autoservicio para instalar manualmente el ejecutor de Node designado.

  • Instale manualmente el ejecutor de Node 6. Para obtener más información sobre cómo instalar manualmente el ejecutor de Node 6, consulte Compatibilidad con Node 6 para obtener más detalles.

  • Use la tarea NodeTaskRunnerInstaller@0 en las canalizaciones que requieren la biblioteca de Node 6 obsoleta.

  • Instale un paquete de agente que incluya Node 6.

    Azure Pipelines proporciona dos versiones de paquetes de agente.

    • Los paquetes vsts-agent-* admiten Node 6.
    • Los paquetes pipelines-agent-* no admiten Node 6. Esta versión del paquete se convertirá en el paquete de agente predeterminado en el futuro.

    Si sabe que no usa ninguna tarea dependiente de Node 6 y no quiere tener Node 6 instalado en el equipo del agente, puede instalar el agente desde la sección Descargas alternativas del agente de https://github.com/microsoft/azure-pipelines-agent/releases.

Agentes de 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, consulte Agentes del 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. El usuario solo está limitado por el número de agentes que tiene.

Funcionalidades

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 variable de entorno VSO_AGENT_IGNORE, 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. Al usar agentes hospedados por Microsoft, debe seleccionar una imagen para el agente que coincida 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 demandas

Para agregar una demanda a la canalización de compilación de YAML, agregue la línea demands: a la sección pool.

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

Puede comprobar la existencia de una funcionalidad o realizar una comparación con el valor de una funcionalidad. Para obtener más información, consulte Esquema YAML: demandas.

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. Inicie sesión en su organización (https://dev.azure.com/{yourorganization}).

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

      Seleccione Configuración de organización.

    3. Seleccione Grupos de agentes.

      Seleccione la pestaña Grupos de agentes.

    1. Inicie sesión en la colección de proyectos (http://your-server/DefaultCollection).

    2. Seleccione Azure DevOps, Configuración de colección.

      Seleccione Configuración de colección.

    3. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes.

    1. Seleccione Azure DevOps, Configuración de colección.

      Configuración de colección, 2019.

    2. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes, 2019.

  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. Selecciona la pestaña Funcionalidades.

      Seleccione la pestaña Capacidades.

      Nota:

      Los agentes hospedados por Microsoft no muestran las funcionalidades del sistema. Para 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. Selecciona la pestaña Funcionalidades.

      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. Selecciona la pestaña Funcionalidades.

      Seleccione la pestaña Capacidades, 2019.

  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 más información, consulte Reiniciar agente de Windows, Reiniciar agente de Linux y Reiniciar agente de Mac.

Comunicación

Comunicación con Azure Pipelines

Comunicación con Azure DevOps Server

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.

Enlaces de servicio 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 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 cliente 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. Este token se genera mediante Azure Pipelines o Azure DevOps Server 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.

Nota:

El agente proporciona compatibilidad con la salida de codificación de cliente UTF-8. Sin embargo, si el sistema tiene una codificación diferente de UTF-8, es posible que encuentre algunos problemas con la salida de los registros. Por ejemplo, los registros pueden contener caracteres que la codificación del sistema no reconoce y que, por tanto, aparecen como símbolos que faltan o están mal formados.

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.

Cuando registre un agente, elija entre los siguientes tipos de autenticación, y la configuración del agente le pedirá la información adicional específica necesaria para cada tipo de autenticación. Para obtener más información, consulte Opciones de autenticación del agente autohospedado.

  • Token de acceso personal
  • Alternativa Conéctese a Azure DevOps Server o a TFS mediante la autenticación básica. Al seleccionar Alternativa se le pedirán sus credenciales.

Los agentes de Windows tienen las dos opciones de autenticación adicionales siguientes en Azure DevOps Server.

  • Negotiate Conéctese a Azure DevOps Server como 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. Después de seleccionar negotiate, se le pedirán credenciales.
  • Integrado (valor predeterminado) Conecte un agente de Windows a Azure DevOps Server con las credenciales del usuario que ha iniciado sesión a través de un esquema de autenticación de Windows, como NTLM o Kerberos. No se le pedirán credenciales después de elegir este método.

Importante

El servidor debe configurarse de tal forma que admita el método de autenticación para usar la autenticación Alternativa, Negociada o Integrada.

El método de autenticación para el registro del agente se usa solo durante dicho registro. Para obtener más información sobre la forma en que los agentes se comunican con Azure Pipelines después del registro, consulte Comunicación con Azure Pipelines o Azure DevOps Server.

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 un 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 buscar una exención de la directiva de dominio o ejecutar el agente en un equipo de grupo de trabajo en el que no se aplican 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 que otros usuarios pasen al equipo y usen 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 inicio de sesión automático, limitarse a cerrar Escritorio remoto hará que el equipo se bloquee y puede causar errores en las pruebas de interfaz de usuario que se ejecuten en este agente. Para evitarlo, use el comando tscon para desconectarse de Escritorio remoto. Por ejemplo:

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

Nombre de la cuenta del agente.

Tanto si ejecuta un agente como un servicio como de forma interactiva, puede elegir qué cuenta del 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 de 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 con una cuenta con acceso a ese servicio. Sin embargo, si está ejecutando pruebas de IU como Selenium o pruebas de IU codificadas que requieren un explorador, el explorador se inicia en el contexto de la cuenta del agente.

En Windows, debe considerar el uso de 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; el valor predeterminado está habilitado) por Azure Pipelines. 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.

    Actualizar la confirmación de todos los agentes

  4. Se pone en cola una solicitud de actualización para cada agente del grupo y se ejecuta cuando se completan los trabajos en ejecución. La actualización normalmente solo tarda unos instantes, el tiempo suficiente 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. 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 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 hay disponible una versión principal más reciente del agente, debe actualizarlo manualmente. Puede hacerlo fácilmente desde la pestaña Grupos de agentes en 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, tal como se describe en Configuración de las 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:

Para los servidores sin acceso a Internet, copie manualmente el archivo ZIP del agente en la carpeta siguiente para usarlo como archivo local. Cree la carpeta Agentes si no está presente.

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • macOS: usr/share/Microsoft/Azure DevOps/Agents

Cree la carpeta Agentes si no está presente.

Preguntas más frecuentes

¿Cómo puedo asegurarme de que tengo la versión más reciente del agente v2?

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

    1. Inicie sesión en su organización (https://dev.azure.com/{yourorganization}).

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

      Seleccione Configuración de organización.

    3. Seleccione Grupos de agentes.

      Seleccione la pestaña Grupos de agentes.

    1. Inicie sesión en la colección de proyectos (http://your-server/DefaultCollection).

    2. Seleccione Azure DevOps, Configuración de colección.

      Seleccione Configuración de colección.

    3. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes.

    1. Seleccione Azure DevOps, Configuración de colección.

      Configuración de colección, 2019.

    2. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes, 2019.

  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. Selecciona la pestaña Funcionalidades.

      Seleccione la pestaña Capacidades.

      Nota:

      Los agentes hospedados por Microsoft no muestran las funcionalidades del sistema. Para 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. Selecciona la pestaña Funcionalidades.

      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. Selecciona la pestaña Funcionalidades.

      Seleccione la pestaña Capacidades, 2019.

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

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

¿Puedo actualizar los 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 incluida con el servidor en el momento de la publicación. 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 formato .zip o .tar.gz) desde la página Versiones de GitHub del agente de Azure Pipelines.

  2. Transfiera los archivos de paquete descargados a cada nivel de aplicación de Azure DevOps Server mediante el método que prefiera (USB, transferencia por la red, etc.). Coloque los archivos del agente en la carpeta %ProgramData%\Microsoft\Azure DevOps\Agents. Cree la carpeta Agentes si no está presente.

  3. ¡Ya está a punto! Azure DevOps Server ahora usará los archivos locales cada vez que se actualicen los agentes. Los agentes se actualizan automáticamente cuando ejecutan una tarea que requiere una versión más reciente. Pero si desea actualizar manualmente algunos agentes, haga clic con el botón derecho en el grupo y 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 (a menos use características como almacenamiento en caché) porque el agente se destruye después de que se complete 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 el trabajo tarda unos segundos en asignarse 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.

En otros casos, es posible que no obtenga mucha eficacia mediante la ejecución de varios agentes en la misma máquina. Por ejemplo, puede que no valga la pena para los agentes que ejecutan compilaciones que consumen muchos recursos de disco y de E/S.

También podría tener problemas si los trabajos de compilación paralelos usan la misma implementación de 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 eliminar el proceso. Si el proceso no respeta las dos solicitudes de finalización iniciales, se eliminará. Desde la solicitud inicial hasta la finalización tarda aproximadamente 10 segundos.

Los comandos emitidos al proceso para cancelar la canalización difieren en función del sistema operativo del agente.

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

¿Cómo puedo desencadenar actualizaciones de 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
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

Nota:

Para obtener más información sobre la asignación de versiones de API y Azure DevOps Server, consulte Asignación de versiones de API y Azure DevOps Server

Parámetros de identificador URI

Nombre En Obligatorio Type Descripción
agentId Query False string Agente que se va a actualizar. Si no se especifica, se desencadenará la actualización 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 es de 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.