Agentes de Linux autohospedados

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

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 ejecutar los trabajos, necesitará al menos un agente. Un agente de Linux puede compilar e implementar diferentes tipos de aplicaciones, incluidas las aplicaciones De Java y Android. Se admite Ubuntu, Red Hat y CentOS.

Antes de empezar:

  • Si las canalizaciones están Azure Pipelines y un agente hospedado por Microsoft satisface sus necesidades, puede omitir la configuración de un agente linux privado.
  • De lo contrario, ha llegado al lugar adecuado para configurar un agente en Linux. Continúe con la sección siguiente.

Más información sobre los agentes

Si ya sabe qué es un agente y cómo funciona, no dude en ir directamente a las secciones siguientes. Pero si desea obtener más información sobre lo que hacen y cómo funcionan, consulte Azure Pipelines agentes.

Comprobación de los requisitos previos

El agente se basa en .NET Core 3.1. Puede ejecutar este agente en varias distribuciones de Linux. Se admite el siguiente subconjunto de distribuciones compatibles con .NET Core:

  • x64
    • CentOS 7, 6 (vea la nota 1)
    • Debian 9
    • Fedora 30, 29
    • Linux Mint 18, 17
    • openSUSE 42.3 o posterior
    • Oracle Linux 7
    • Red Hat Enterprise Linux 8, 7, 6 (consulte la nota 1)
    • SUSE Enterprise Linux 12 SP2 o posterior
    • Ubuntu 20.04, 18.04, 16.04
  • ARM32 (consulte la nota 2)
    • Debian 9
    • Ubuntu 18.04
  • ARM64
    • Debian 9
    • Ubuntu 21.04, 20.04, 18.04

Nota

Nota 1: RHEL 6 y CentOS 6 requieren la instalación de la versión rhel.6-x64 especializada del agente.

Nota

Nota 2: Se requiere el conjunto de instrucciones ARM ARMv7 o superior. Ejecute uname -a para ver el conjunto de instrucciones de la distribución de Linux.

Independientemente de la plataforma, deberá instalar Git 2.9.0 o posterior. Se recomienda encarecidamente instalar la versión más reciente de Git.

Si va a usar TFVC, también necesitará Oracle Java JDK 1.6 o posterior. (El JRE de Oracle y OpenJDK no son suficientes para este propósito).

Nota

El instalador del agente sabe cómo buscar otras dependencias. Puede instalar esas dependencias en plataformas Linux compatibles mediante la ejecución ./bin/installdependencies.sh en el directorio del agente.

Tenga en cuenta que algunas de estas dependencias requeridas por .NET Core se capturan de sitios de terceros, como packages.efficios.com . Revise el script y asegúrese de que todos los sitios de terceros a los que se hace referencia sean accesibles desde la máquina installdependencies.sh Linux antes de ejecutar el script.

Asegúrese también de que todos los repositorios necesarios están conectados al administrador de paquetes correspondiente que se usa installdependencies.sh en (como apt o zypper ).

Para problemas con la instalación de dependencias (como "no se encontró la dependencia en el repositorio" o "problema al recuperar el archivo de índice del repositorio"): puede comunicarse con el propietario de la distribución para obtener más compatibilidad.

TFS 2018 RTM yversiones anteriores: el agente enviado se basa en CoreCLR 1.0. Se recomienda que, si es posible, actualice a una versión posterior del agente (2.125.0 o posterior). Consulte Azure Pipelines requisitos previos del agente para obtener más información sobre lo que se necesita para ejecutar un agente más reciente.

Si debe permanecer en el agente anterior, asegúrese de que la máquina está preparada con nuestros requisitos previos para cualquiera de las distribuciones admitidas:

Subversion

Si va a compilar desde un repositorio de Subversion, debe instalar el cliente de Subversion en la máquina.

Debe ejecutar el programa de instalación del agente manualmente la primera vez. Una vez que tenga una sensación de cómo funcionan los agentes o si desea automatizar la configuración de muchos agentes, considere la posibilidad de usar la configuración desatendida.

Preparación de permisos

Seguridad de la información para agentes auto hospedados

El usuario que configura el agente necesita permisos de administrador de grupo, pero el usuario que ejecuta el agente no.

Las carpetas controladas por el agente deben restringirse al menor número posible de usuarios y contienen secretos que se podrían descifrar o filtrar.

El agente de canalizaciones de ADO es un producto de software diseñado para ejecutar código que descarga desde orígenes externos. De forma inherente, podría ser un destino para los ataques de ejecución remota de código (RCE).

Por lo tanto, es importante tener en cuenta el modelo de amenazas que rodea cada uso individual de los agentes de Pipelines para realizar el trabajo y decidir cuáles son los permisos mínimos que se pueden conceder al usuario que ejecuta el agente, a la máquina donde se ejecuta el agente, a los usuarios que tienen acceso de escritura a la definición de canalización, a los repositorios git donde se almacena el yaml. o el grupo de usuarios que controlan el acceso al grupo para nuevas canalizaciones.

Es un procedimiento recomendado que la identidad que ejecuta el agente sea diferente de la identidad con permisos para conectar el agente al grupo. El usuario que genera las credenciales (y otros archivos relacionados con el agente) es diferente del usuario que necesita leerlas. Por lo tanto, es más seguro considerar cuidadosamente el acceso concedido a la propia máquina del agente y a las carpetas del agente que contienen archivos confidenciales, como registros y artefactos.

Tiene sentido conceder acceso a la carpeta del agente solo para DevOps administradores y la identidad de usuario que ejecuta el proceso del agente. Es posible que los administradores necesiten investigar el sistema de archivos para comprender los errores de compilación u obtener archivos de registro para poder notificar Azure DevOps errores.

Decidir qué usuario va a usar

Como paso único, debe registrar el agente. Alguien con permiso para administrar la cola del agente debe completar estos pasos. El agente no usará las credenciales de esta persona en la operación diaria, pero es necesario que complete el registro. Obtenga más información sobre cómo los agentes comunican.

Autenticación con un token de acceso personal (PAT)

  1. Inicie sesión con la cuenta de usuario que planea usar en el portal web de Team Foundation Server ( https://{your-server}:8080/tfs/ ).
  1. Inicie sesión con la cuenta de usuario que planea usar en Azure DevOps Server portal web ( https://{your-server}/DefaultCollection/ ).
  1. Inicie sesión con la cuenta de usuario que planea usar en su Azure DevOps organización ( https://dev.azure.com/{your_organization} ).
  1. En la página principal, abra el perfil. Vaya a los detalles de seguridad.

    Vaya a los detalles de seguridad.

  2. Cree un token de acceso personal.

    Cree un token de acceso personal.

  1. En la página principal, abra la configuración de usuario y, a continuación, seleccione Tokens de acceso personal.

    Vaya a los detalles de seguridad.

  2. Cree un token de acceso personal.

    Cree un token de acceso personal.

  1. Para el ámbito, seleccione Grupos de agentes (leer, administrar) y asegúrese de que todos los demás cuadros estén desactivados. Si se trata de un agente de grupo de implementación, para el ámbito, seleccione Grupo de implementación (leer, administrar) y asegúrese de que todos los demás cuadros estén desactivados.

    Seleccione Mostrar todos los ámbitos en la parte inferior de la ventana Crear un nuevo token de acceso personal para ver la lista completa de ámbitos.

  2. Copie el token. Usará este token al configurar el agente.

Autenticación como Windows usuario (TFS 2015 y TFS 2017)

Como alternativa, en TFS 2017, puede usar un usuario de dominio o un usuario de Windows local en cada uno de los niveles de aplicación de TFS.

En TFS 2015, solo para macOS y Linux, se recomienda crear un usuario de Windows local en cada uno de los niveles de aplicación de TFS y dedicar ese usuario para implementar agentes de compilación.

Confirmación de que el usuario tiene permiso

Asegúrese de que la cuenta de usuario que va a usar tiene permiso para registrar el agente.

¿Es el usuario propietario Azure DevOps organización, TFS o Azure DevOps Server administrador? Detenga aquí, tiene permiso.

De lo contrario:

  1. Abra un explorador y vaya a la pestaña Grupos de agentes de su Azure Pipelines organización o Azure DevOps Server o servidor TFS:

    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 colección.

      Elija Configuración de recopilación.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes.

    1. Elija Azure DevOps, Configuración de colecció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.

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

      Elija configuración, Colas del agente, 2017.

    2. Elija Administrar grupos.

      Elija Administrar grupos, 2017.

    1. Vaya al proyecto y elija Administrar proyecto (icono de engranaje).

      Administración del proyecto, 2015.

    2. Elija Panel de control.

      Elija Panel de control, 2015.

    3. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes, 2015.

  2. Seleccione el grupo en el lado derecho de la página y, a continuación, haga clic en Seguridad.

  3. Si no se muestra la cuenta de usuario que va a usar, haga que un administrador la agregue. El administrador puede ser un administrador del grupo de agentes, un Azure DevOps propietario dela organización o un administrador de TFS Azure DevOps Server administrador.

    Si se trata de un agente de grupo de implementación, el administrador puede ser un administrador del grupo de implementación, un propietario de la organización de Azure DevOpso un administrador de TFS Azure DevOps Server .

    Puede agregar un usuario al rol de administrador del grupo de implementación en la pestaña Seguridad de la página Grupos de implementación Azure Pipelines.

Nota

Si ve un mensaje como este: Lo sentimos, no se pudo agregar la identidad. Pruebe otra identidad., probablemente haya seguido los pasos anteriores para un propietario de la organización, TFS o Azure DevOps Server administrador. No es necesario hacer nada; ya tiene permiso para administrar la cola del agente.

Descarga y configuración del agente

Azure Pipelines

  1. Inicie sesión en la máquina con la cuenta para la que ha preparado los permisos, como se explicó anteriormente.

  2. En el explorador web, inicie sesión en Azure Pipelines y 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 colección.

      Elija Configuración de recopilación.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes.

    1. Elija Azure DevOps, Configuración de colecció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.

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

      Elija configuración, Colas del agente, 2017.

    2. Elija Administrar grupos.

      Elija Administrar grupos, 2017.

    1. Vaya al proyecto y elija Administrar proyecto (icono de engranaje).

      Administración del proyecto, 2015.

    2. Elija Panel de control.

      Elija Panel de control, 2015.

    3. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes, 2015.

  3. Seleccione el grupo Predeterminado, seleccione la pestaña Agentes y elija Nuevo agente.

  4. En el cuadro de diálogo Obtener el agente , haga clic en Linux.

  5. En el panel izquierdo, seleccione el tipo específico. Ofrecemos x64 o ARM para la mayoría de las distribuciones de Linux. También ofrecemos una compilación específica para Red Hat Enterprise Linux 6.

  6. En el panel derecho, haga clic en el botón Descargar.

  7. Siga las instrucciones de la página.

  8. Desempaquete el agente en el directorio que prefiera. cd en ese directorio y ejecute ./config.sh .

Azure DevOps Server 2019 y Azure DevOps Server 2020

  1. Inicie sesión en la máquina con la cuenta para la que ha preparado los permisos, como se explicó anteriormente.

  2. En el explorador web, inicie sesión en Azure DevOps Server 2019 y 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 colección.

      Elija Configuración de recopilación.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes.

    1. Elija Azure DevOps, Configuración de colecció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.

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

      Elija configuración, Colas del agente, 2017.

    2. Elija Administrar grupos.

      Elija Administrar grupos, 2017.

    1. Vaya al proyecto y elija Administrar proyecto (icono de engranaje).

      Administrar proyecto, 2015.

    2. Elija Panel de control.

      Elija Panel de control, 2015.

    3. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes, 2015.

  3. Haga clic en Descargar agente.

  4. En el cuadro de diálogo Obtener agente , haga clic en Linux.

  5. En el panel izquierdo, seleccione el tipo específico. Ofrecemos x64 o ARM para la mayoría de las distribuciones de Linux. También ofrecemos una compilación específica para Red Hat Enterprise Linux 6.

  6. En el panel derecho, haga clic en el botón Descargar.

  7. Siga las instrucciones de la página.

  8. Desempaquete el agente en el directorio que prefiera. cd en ese directorio y ejecute ./config.sh .

TFS 2017 y TFS 2018

  1. Inicie sesión en la máquina con la cuenta para la que ha preparado los permisos, como se explicó anteriormente.

  2. En el explorador web, inicie sesión en TFS y vaya a la pestaña Grupos de agentes:

    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.

  3. Haga clic en Descargar agente.

  4. En el cuadro de diálogo Obtener agente , haga clic en Linux.

  5. Haga clic en el botón Descargar.

  6. Siga las instrucciones de la página.

  7. Desempaquete el agente en el directorio que prefiera. cd en ese directorio y ejecute ./config.sh . Asegúrese de que la ruta de acceso al directorio no contiene espacios porque las herramientas y los scripts no siempre tienen espacios de escape correctos.

TFS 2015

  1. Vaya a la versión más reciente en GitHub.

  2. Siga las instrucciones de esa página para descargar el agente.

  3. Configure el agente.

    ./config.sh
    

Dirección URL del servidor

Azure Pipelines:https://dev.azure.com/{your-organization}

Azure DevOps Server 2019:https://{your_server}/DefaultCollection

TFS 2017 y versiones más recientes: https://{your_server}/tfs

TFS 2015: http://{your_server}:8080/tfs

Tipo de autenticación

Azure Pipelines

Elija PATy pegue el token de PAT que creó en la ventana del símbolo del sistema.

Nota

Cuando se usa PAT como método de autenticación, el token pat solo se usa para la configuración inicial del agente. Obtenga más información en Comunicación con Azure Pipelines o TFS.

TFS o Azure DevOps Server

Importante

Asegúrese de que el servidor está configurado para admitir el método de autenticación que desea usar.

Al configurar el agente para conectarse a TFS, tiene las siguientes opciones:

  • Alternativa Conectar a TFS o Azure DevOps Server mediante la autenticación básica. Después de seleccionar Alternativa, se le pedirán sus credenciales.

  • Integrado No se admite en macOS o Linux.

  • Negociar (valor predeterminado) Conectar a TFS o Azure DevOps Server como un usuario distinto del 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 Negociar, se le pedirán las credenciales.

  • PALMADITA Solo se admite en Azure Pipelines y TFS 2017 y versiones más recientes. Después de elegir PAT, pegue el token de PAT que creó en la ventana del símbolo del sistema. Use un token de acceso personal (PAT) si la instancia Azure DevOps Server o TFS y la máquina del agente no están en un dominio de confianza. La autenticación PAT se controla mediante la Azure DevOps Server o la instancia de TFS en lugar del controlador de dominio.

Nota

Cuando se usa PAT como método de autenticación, el token pat solo se usa para la configuración inicial del agente en Azure DevOps Server y las versiones más recientes de TFS. Obtenga más información en Comunicación con Azure Pipelines o TFS.

Ejecución interactiva

Para obtener instrucciones sobre si se debe ejecutar el agente en modo interactivo o como servicio, vea Agentes: interactivo frentea servicio.

Para ejecutar el agente de forma interactiva:

  1. Si ha estado ejecutando el agente como servicio, desinstale el servicio.

  2. Ejecute el agente.

    ./run.sh
    

Para reiniciar el agente, presione Ctrl+C y, a continuación, ejecute run.sh para reiniciarlo.

Para usar el agente, ejecute un trabajo con el grupo del agente. Si no ha elegido otro grupo, el agente estará en el grupo Predeterminado.

Ejecutar una vez

En el caso de los agentes configurados para ejecutarse de forma interactiva, puede optar por que el agente acepte solo un trabajo. Para ejecutar en esta configuración:

./run.sh --once

Los agentes de este modo solo aceptarán un trabajo y, a continuación, se pondrán en marcha correctamente (útil para ejecutarse en Docker en un servicio como Azure Container Instances).

Ejecución como un servicio systemd

Si el agente se ejecuta en estos sistemas operativos, puede ejecutarlo como systemd servicio:

  • Ubuntu 16 LTS o posterior
  • Red Hat 7.1 o posterior

Proporcionamos un ./svc.sh script de ejemplo para que ejecute y administre el agente como systemd servicio. Este script se generará después de configurar el agente. Le recomendamos que revise y, si es necesario, actualice el script antes de ejecutarlo.

Algunas advertencias importantes:

  • Si ejecuta el agente como servicio, no podrá ejecutar el servicio del agente como root usuario.
  • Los usuarios que ejecutan SELinux han notificado dificultades con el script proporcionado. Consulte este problema del agente como punto de partida. SELinux no es una configuración admitida oficialmente.

Nota

Si tiene una distribución diferente o prefiere otros enfoques, puede usar cualquier tipo de mecanismo de servicio que prefiera. Consulte Archivos de servicio.

Comandos

Cambio al directorio del agente

Por ejemplo, si instaló en la myagent subcarpeta del directorio principal:

cd ~/myagent$

Instalar

Comando:

sudo ./svc.sh install [username]

Este comando crea un archivo de servicio que apunta a ./runsvc.sh . Este script configura el entorno (más detalles a continuación) e inicia el host de agentes. Si no se especifica el parámetro , el nombre de usuario se toma de la variable de entorno username $SUDO_USER que se establece mediante el comando sudo. Esta variable siempre es igual al nombre del usuario que invocó el sudo comando.

Inicio

sudo ./svc.sh start

Estado

sudo ./svc.sh status

Stop

sudo ./svc.sh stop

Desinstalación

Debe detenerse antes de desinstalar.

sudo ./svc.sh uninstall

Actualización de variables de entorno

Al configurar el servicio, toma una instantánea de algunas variables de entorno útiles para el usuario de inicio de sesión actual, como PATH, LANG, JAVA_HOME, ANT_HOME y MYSQL_PATH. Si necesita actualizar las variables (por ejemplo, después de instalar algún software nuevo):

./env.sh
sudo ./svc.sh stop
sudo ./svc.sh start

La instantánea de las variables de entorno se almacena en el archivo ( se almacena en ) en el directorio raíz del agente; también puede cambiar estos archivos directamente para aplicar cambios .env en las variables de PATH.path entorno.

Instrucciones de ejecución antes de que se inicie el servicio

También puede ejecutar sus propias instrucciones y comandos para que se ejecuten cuando se inicie el servicio. Por ejemplo, puede configurar el entorno o llamar a scripts.

  1. Edite runsvc.sh.

  2. Reemplace la siguiente línea por sus instrucciones:

    # insert anything to setup env when running as a service
    

Archivos de servicio

Al instalar el servicio, algunos archivos de servicio se ponen en su lugar.

archivo de servicio systemd

Se crea un archivo de servicio systemd:

/etc/systemd/system/vsts.agent.{tfs-name}.{agent-name}.service

Por ejemplo, ha configurado un agente (vea más arriba) con el nombre our-linux-agent . El archivo de servicio será:

  • Azure Pipelines: el nombre de la organización. Por ejemplo, si se conecta a https://dev.azure.com/fabrikam , el nombre del servicio sería /etc/systemd/system/vsts.agent.fabrikam.our-linux-agent.service

  • TFS o Azure DevOps Server: el nombre del servidor local. Por ejemplo, si se conecta a http://our-server:8080/tfs , el nombre del servicio sería /etc/systemd/system/vsts.agent.our-server.our-linux-agent.service

sudo ./svc.sh install genera este archivo a partir de esta plantilla: ./bin/vsts.agent.service.template

Archivo .service

sudo ./svc.sh start busca el servicio leyendo el archivo .service , que contiene el nombre del archivo de servicio systemd descrito anteriormente.

Mecanismos de servicio alternativos

Proporcionamos el script como una manera cómoda de ejecutar ./svc.sh y administrar el agente como un servicio systemd. Pero puede usar cualquier tipo de mecanismo de servicio que prefiera (por ejemplo: initd o upstart).

Puede usar la plantilla descrita anteriormente como para facilitar la generación de otros tipos de archivos de servicio.

Uso de un cgroup para evitar errores del agente

Es importante evitar situaciones en las que el agente produce un error o deja de ser utilizable porque, de lo contrario, el agente no puede transmitir registros de canalización ni notificar el estado de la canalización al servidor. Puede mitigar el riesgo de que este tipo de problema se deba a una presión de memoria alta mediante cgroups y un menor oom_score_adj . Una vez hecho esto, Linux reclama la memoria del sistema de los procesos de trabajo de canalización antes de reclamar memoria del proceso del agente. Obtenga información sobre cómo configurar cgroups y puntuación de OOM.

Reemplazo de un agente

Para reemplazar un agente, siga los pasos Descargar y configurar el agente de nuevo.

Al configurar un agente con el mismo nombre que un agente que ya existe, se le preguntará si desea reemplazar el agente existente. Si responde , asegúrese de quitar el agente (consulte a Y continuación) que va a reemplazar. De lo contrario, después de unos minutos de conflictos, uno de los agentes se apagará.

Quitar y volver a configurar un agente

Para eliminar el agente:

  1. Detenga y desinstale el servicio como se explicó anteriormente.

  2. Quite el agente.

    ./config.sh remove
    
  3. Escriba sus credenciales.

Después de quitar el agente, puede volver a configurarlo.

Configuración desatendida

El agente se puede configurar desde un script sin intervención humana. Debe pasar y --unattended las respuestas a todas las preguntas.

Para configurar un agente, debe conocer la dirección URL de la organización o la recopilación y las credenciales de alguien autorizado para configurar agentes. Todas las demás respuestas son opcionales. Cualquier parámetro de línea de comandos se puede especificar mediante una variable de entorno en su lugar: coloque su nombre en mayúsculas y anteponer VSTS_AGENT_INPUT_ . Por ejemplo, VSTS_AGENT_INPUT_PASSWORD en lugar de especificar --password .

Opciones necesarias

  • --unattended - El programa de instalación del agente no solicitará información y toda la configuración debe proporcionarse en la línea de comandos.
  • --url <url> : dirección URL del servidor. Por ejemplo, https://dev.azure.com/myorganization o http://my-azure-devops-server:8080/tfs.
  • --auth <type> : tipo de autenticación. Los valores válidos son:
    • pat (Token de acceso personal)
    • negotiate (Kerberos o NTLM)
    • alt (Autenticación básica)
    • integrated(Windows predeterminadas)

Opciones de autenticación

  • Si eligió --auth pat :
    • --token <token> : especifica el token de acceso personal.
  • Si eligió --auth negotiate o --auth alt :
    • --userName <userName>: especifica un nombre Windows nombre de usuario con el formato domain\userName ouserName@domain.com
    • --password <password> : especifica una contraseña.

Nombres de grupo y agente

  • --pool <pool> : nombre del grupo al que se unirá el agente.
  • --agent <agent> - nombre del agente
  • --replace : reemplace el agente en un grupo. Si otro agente escucha con el mismo nombre, empezará a dar error con un conflicto.

Configuración del agente

  • --work <workDirectory> : directorio de trabajo donde se almacenan los datos del trabajo. El valor predeterminado _work es en la raíz del directorio del agente. El directorio de trabajo es propiedad de un agente determinado y no debe compartirse entre varios agentes.
  • --acceptTeeEula: acepte el Team Explorer Everywhere licencia del usuario final (solo macOS y Linux)
  • --disableloguploads : no transmita ni envíe la salida del registro de la consola al servidor. En su lugar, puede recuperarlos del sistema de archivos del host del agente una vez completado el trabajo.

Windows inicio único

  • --runAsService: configure el agente para que se ejecute como Windows servicio (requiere permiso de administrador)
  • --runAsAutoLogon : configure el inicio de sesión automático y ejecute el agente en el inicio (requiere permiso de administrador).
  • --windowsLogonAccount <account>: se usa --runAsService con o para especificar Windows nombre de usuario en el formato --runAsAutoLogondomain\userName ouserName@domain.com
  • --windowsLogonPassword <password>: se usa con --runAsService o para especificar Windows contraseña de inicio de --runAsAutoLogon sesión
  • --overwriteAutoLogon : se usa con --runAsAutoLogon para sobrescribir el inicio de sesión automático existente en la máquina.
  • --noRestart : se usa --runAsAutoLogon con para impedir que el host se reinicie una vez completada la configuración del agente.

Solo grupo de implementación

  • --deploymentGroup : configure el agente como agente de grupo de implementación.
  • --deploymentGroupName <name> : se usa --deploymentGroup con para especificar el grupo de implementación al que se unirá el agente.
  • --projectName <name> : se usa --deploymentGroup con para establecer el nombre del proyecto.
  • --addDeploymentGroupTags : se usa con para indicar que se deben agregar etiquetas de --deploymentGroup grupo de implementación.
  • --deploymentGroupTags <tags> : se usa con para especificar la lista separada por comas de etiquetas para el agente del grupo de --addDeploymentGroupTags implementación, por ejemplo, "web, db".

Solo entornos

  • --addvirtualmachineresourcetags : se usa para indicar que se deben agregar etiquetas de recursos de entorno.
  • --virtualmachineresourcetags <tags> : se usa con para especificar la lista separada por comas de etiquetas para el agente de --addvirtualmachineresourcetags recursos de entorno, por ejemplo, "web, db".

./config.sh --help siempre enumera las respuestas obligatorias y opcionales más recientes.

Diagnóstico

Si tiene problemas con el agente auto hospedado, puede intentar ejecutar diagnósticos. Después de configurar el agente:

./run.sh --diagnostics

Esto se ejecutará a través de un conjunto de diagnósticos que puede ayudarle a solucionar el problema. La característica de diagnóstico está disponible a partir de la versión 2.165.0 del agente.

Ayuda sobre otras opciones

Para obtener información sobre otras opciones:

./config.sh --help

La ayuda proporciona información sobre las alternativas de autenticación y la configuración desatendida.

Funcionalidades

Las funcionalidades del agente se cataloga y anuncia en el grupo para que solo se le asignen las compilaciones y versiones que puede controlar. Consulte Build and release agent capabilities (Funcionalidades del agente de compilación y versión).

En muchos casos, después de implementar un agente, deberá instalar software o utilidades. Por lo general, debe instalar en los agentes el software y las herramientas que use en la máquina de desarrollo.

Por ejemplo, si la compilación incluye la tarea npm, la compilación no se ejecutará a menos que haya un agente de compilación en el grupo que tenga npm instalado.

Importante

Las funcionalidades incluyen todas las variables de entorno y los valores que se establecen cuando se ejecuta el agente. Si alguno de estos valores cambia mientras se ejecuta el agente, debe reiniciarse para seleccionar los nuevos valores. Después de instalar el nuevo software en un agente, debe reiniciar el agente para que la nueva funcionalidad se muestre en el grupo, de modo que se pueda ejecutar la compilación.

Si desea excluir variables de entorno como funcionalidades, puede designarlas estableciendo una variable de entorno con una lista delimitada por comas de variables que se VSO_AGENT_IGNORE omitirán.

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 colección.

      Elija Configuración de recopilación.

    2. Elija Grupos de agentes.

      Elija Grupos de agentes.

    1. Elija Azure DevOps, Configuración de colecció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.

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

      Elija configuración, Colas del agente, 2017.

    2. Elija Administrar grupos.

      Elija Administrar grupos, 2017.

    1. Vaya al proyecto y elija Administrar proyecto (icono de engranaje).

      Administración del proyecto, 2015.

    2. Elija Panel de control.

      Elija Panel de control, 2015.

    3. Seleccione Grupos de agentes.

      Seleccione Grupos de agentes, 2015.

  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 Funcionalidades.

      Elija la pestaña Funcionalidades.

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

      Elija la pestaña Funcionalidades, 2019.

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

    Pestaña Funcionalidades del agente, 2018.

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

    Pestaña Funcionalidades del agente, 2017.

    En la pestaña Grupos de agentes, seleccione el agente deseado y elija la pestaña Funcionalidades.

    Elija la pestaña Funcionalidades del agente, 2015.

  5. Busque la Agent.Version funcionalidad. Puede comprobar este valor con la versión más reciente del agente publicada. Consulte Azure Pipelines agente y compruebe en la página el número de versión más alto que aparece.

  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 cliente?

Sí. A partir 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 produjo 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 formato .zip o .tar.gz) desde la página Azure Pipelines Agent GitHub Releases.

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

  3. Ya está todo listo. El Azure DevOps Server usará ahora 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.

¿Por qué se necesita sudo para ejecutar los comandos de servicio?

./svc.sh usa systemctl , que requiere sudo .

Código fuente: systemd.svc.sh.template en GitHub

Estoy ejecutando un firewall y mi código está en Azure Repos. ¿Con qué direcciones URL necesita comunicarse el agente?

Si ejecuta un agente en una red segura detrás de un firewall, asegúrese de que el agente puede iniciar la comunicación con las direcciones URL y direcciones IP siguientes.

URL de dominio Description
https://{organization_name}.pkgs.visualstudio.com Azure DevOps Packaging API para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://{organization_name}.visualstudio.com Para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://{organization_name}.vsblob.visualstudio.com Azure DevOps telemetría para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://{organization_name}.vsrm.visualstudio.com Release Management Services para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://{organization_name}.vstmr.visualstudio.com Azure DevOps Test Management Services para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com Para organizaciones que usan el dev.azure.com dominio
https://*.vsassets.io Azure Artifacts a través de CDN
https://*.vsblob.visualstudio.com Azure DevOps telemetría para organizaciones que usan el dev.azure.com dominio
https://*.vssps.visualstudio.com Azure DevOps Platform Services para organizaciones que usan el dev.azure.com dominio
https://*.vstmr.visualstudio.com Azure DevOps Test Management Services para organizaciones que usan el dev.azure.com dominio
https://app.vssps.visualstudio.com Para organizaciones que usan el {organization_name}.visualstudio.com dominio
https://dev.azure.com Para organizaciones que usan el dev.azure.com dominio
https://login.microsoftonline.com Inicio de sesión de Azure Active Directory
https://management.core.windows.net Azure API de Administración de
https://vstsagentpackage.azureedge.net Paquete del agente

Para asegurarse de que su organización funciona con cualquier restricción de firewall o IP existente, asegúrese de que y están abiertas y actualice las direcciones IP que aparecen en la lista de permitidos para incluir las siguientes direcciones IP, en función de la versión dev.azure.com*dev.azure.com de IP. Si actualmente está permitido enumerar las direcciones IP y , déjelas en su lugar, ya que no es necesario 13.107.6.18313.107.9.183 quitarlas.

Intervalos IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

Intervalos IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Nota

Para obtener más información sobre las direcciones permitidas, vea Listas de direcciones permitidas y conexiones de red.

Cómo ejecutar el agente con un certificado autofirmado?

Ejecución del agente con certificado autofirmado

Cómo ejecutar el agente detrás de un proxy web?

Ejecución del agente detrás de un proxy web

Cómo reiniciar el agente

Si ejecuta el agente de forma interactiva, consulte las instrucciones de reinicio de Ejecución interactiva. Si está ejecutando el agente como un servicio systemd, siga los pasos para Detener y, a continuación, Iniciar el agente.

Cómo configurar el agente para omitir un proxy web y conectarse a Azure Pipelines?

Si desea que el agente omita el proxy y se conecte a Azure Pipelines directamente, debe configurar el proxy web para permitir que el agente acceda a las siguientes direcciones URL.

Para las organizaciones que usan el *.visualstudio.com dominio:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

Para las organizaciones que usan el dev.azure.com dominio:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

Para asegurarse de que su organización funciona con cualquier restricción de firewall o IP existente, asegúrese de que y están abiertas y actualice las direcciones IP que aparecen en la lista de permitidos para incluir las siguientes direcciones IP, en función de la versión dev.azure.com*dev.azure.com de IP. Si actualmente está permitido enumerar las direcciones IP y , déjelas en su lugar, ya que no es necesario 13.107.6.18313.107.9.183 quitarlas.

Intervalos IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

Intervalos IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Nota

Este procedimiento permite al agente omitir un proxy web. La canalización de compilación y los scripts todavía deben controlar la omisión del proxy web para cada tarea y herramienta que ejecute en la compilación.

Por ejemplo, si usa una tarea NuGet, debe configurar el proxy web para admitir la omisión de la dirección URL del servidor que hospeda la fuente de NuGet que está usando.

Uso TFS y las direcciones URL de las secciones anteriores no funcionan para mí. ¿Dónde puedo obtener ayuda?

Configuración y seguridad del sitio web

Utilizo TFS en el entorno local y no veo algunas de estas características. ¿Por qué no?

Algunas de estas características solo están disponibles en Azure Pipelines y todavía no lo están en el entorno local. Algunas características están disponibles en el entorno local si ha actualizado a la versión más reciente de TFS.