Agentes hospedado por Microsoft

Azure DevOps Services

Los agentes hospedados por Microsoft solo están disponibles con Azure DevOps Services, que se hospeda en la nube. No puede usar agentes hospedados por Microsoft ni el grupo de agentes de Azure Pipelines con TFS local o Azure DevOps Server. Con estas versiones locales, debe usar agentes autohospedados.

Importante

Seleccione una versión en el selector de versiones del contenido de Azure DevOps.

Seleccione la versión de este artículo que corresponde a su plataforma y versión. El selector de versiones está encima de la tabla de contenido. Busque la versión y la plataforma de Azure DevOps.

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.

Software

El grupo de agentes de Azure Pipelines ofrece varias imágenes de máquina virtual entre las que elegir, cada una de las cuales incluye una amplia gama de herramientas y software.

Imagen Especificación de agentes del editor clásico Etiqueta de imagen de máquina virtual de YAML Software incluido
Windows Server 2022 con Visual Studio 2022 windows-2022 windows-latest owindows-2022 Vínculo
Windows Server 2019 con Visual Studio 2019 windows-2019 windows-2019 Vínculo
Ubuntu 22.04 ubuntu-22.04 ubuntu-latest oubuntu-22.04 Vínculo
Ubuntu 20.04 ubuntu-20.04 ubuntu-20.04 Vínculo
macOS 13 Ventura macOS-13 macOS-13 Vínculo
macOS 12 Monterey macOS-12 macOS-latest omacOS-12 Vínculo
macOS 11 Big Sur (en desuso) macOS-11 macOS-11 Vínculo

La imagen de agente predeterminada para canalizaciones de compilación clásicas es windows-2019 y la imagen de agente predeterminada para canalizaciones de compilación de YAML es ubuntu-latest. Para más información, consulte Designación de un grupo en la canalización.

Para ver el software instalado para cada agente hospedado, elija el vínculo Software incluido de la tabla. Al usar imágenes de macOS, puede seleccionar manualmente las versiones de herramientas. Más información.

Actualizaciones recientes

Se recomienda a los clientes migrar a versiones más recientes o a un agente autohospedado.

Para más información e instrucciones sobre cómo actualizar las canalizaciones que usan esas imágenes, consulte Eliminación de imágenes anteriores en grupos hospedados de Azure Pipelines.

Nota:

Actualmente, la capacidad de macOS está limitada. A diferencia de las imágenes de Linux y Windows, donde la capacidad está restringida por la capacidad ascendente de Azure, la capacidad de macOS está restringida por la cantidad de hardware disponible. Aunque estamos trabajando para que haya capacidad adicional disponible a lo largo del segundo trimestre de 2024, algunos trabajos pueden experimentar una ejecución retrasada. Siempre que sea posible, por ejemplo, para trabajos que no crean aplicaciones del ecosistema de Apple, los clientes deben elegir imágenes de Linux o Windows.

Nota:

El grupo hospedado de Azure Pipelines reemplaza a los grupos hospedados anteriores que tenían nombres asignados a las imágenes correspondientes. Todos los trabajos que tuviese en los anteriores grupos hospedados se redirigirán automáticamente a la imagen correcta en el nuevo grupo hospedado de Azure Pipelines. En algunas circunstancias, es posible que siga viendo los antiguos nombres de grupo, pero entre bastidores los trabajos hospedados se ejecutan usando el grupo de Azure Pipelines. Para más información sobre esta actualización, consulte las notas de la versión de Grupo hospedado único de 1 de julio de 2019: notas de la versión de Sprint 154.

Importante

Para solicitar que se instale software adicional en agentes hospedados por Microsoft, no cree una solicitud de comentarios en este documento ni abra una incidencia de soporte técnico. En su lugar, abra un problema en nuestro repositorio, donde administramos los scripts para generar varias imágenes.

Identificación de canalizaciones mediante una imagen hospedada en desuso

Para identificar las canalizaciones que usan una imagen en desuso, vaya a la siguiente ubicación de la organización: https://dev.azure.com/{organization}/{project}/_settings/agentqueues y filtre por el nombre de la imagen que se va a comprobar. En el ejemplo siguiente se comprueba la imagen vs2017-win2016.

Captura de pantalla de filtrado de canalizaciones por nombre de imagen.

También puede consultar el historial de trabajos de las imágenes en desuso en proyectos mediante el script que se encuentra aquí, como se muestra en el ejemplo siguiente.

./QueryJobHistoryForRetiredImages.ps1 -accountUrl https://dev.azure.com/{org} -pat {pat}

Uso de un agente hospedado por Microsoft

En las canalizaciones YAML, si no especifica un grupo, estas tendrán como valor predeterminado el grupo de agentes de Azure Pipelines. Solo tiene que especificar qué imagen de máquina virtual quiere usar.

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo hello from Linux
- job: macOS
  pool:
    vmImage: 'macOS-latest'
  steps:
  - script: echo hello from macOS
- job: Windows
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo hello from Windows

Nota:

La especificación de un grupo se puede realizar en varios niveles en un archivo YAML. Si observa que la canalización no se ejecuta en la imagen esperada, asegúrese de comprobar la especificación del grupo a nivel de canalización, fase y trabajo.

Evitar referencias codificadas de forma rígida

Cuando use un agente hospedado por Microsoft, utilice siempre variables para hacer referencia al entorno de compilación y a los recursos del agente. Por ejemplo, no codifique de forma rígida la letra de unidad o carpeta que contiene el repositorio. El diseño preciso de los agentes hospedados está sujeto a cambios sin previo aviso.

Hardware

Los agentes hospedados por Microsoft que ejecutan imágenes de Windows y Linux se aprovisionan en máquinas virtuales de uso general de Azure con una CPU de 2 núcleos, 7 GB de RAM y 14 GB de espacio en disco SSD. Estas máquinas virtuales se encuentran en la misma geografía que la organización de Azure DevOps.

Los agentes que ejecutan imágenes de macOS se aprovisionan en profesionales de Mac con una CPU de 3 núcleos, 14 GB de RAM y 14 GB de espacio en disco SSD. Estos agentes siempre se ejecutan en Estados Unidos, independientemente de la ubicación de la organización de Azure DevOps. Si la soberanía de datos es importante para usted y su organización no está en Estados Unidos, no debe usar imágenes de macOS. Más información.

Todas estas máquinas tienen al menos 10 GB de espacio libre en disco disponible para que se ejecuten las canalizaciones. Este espacio disponible se consume cuando la canalización extrae el código fuente del repositorio, descarga paquetes, extrae imágenes de Docker o genera archivos intermedios.

Importante

No podemos atender solicitudes para aumentar el espacio en disco de los agentes hospedados por Microsoft ni para aprovisionar máquinas más poderosas. Si las especificaciones de los agentes hospedados por Microsoft no satisfacen sus necesidades, debe considerar los agentes autohospedados o los agentes de conjunto de escalado.

Redes

En algunas configuraciones, es posible que tenga que conocer el intervalo de direcciones IP donde se implementan los agentes. Por ejemplo, si necesita conceder a los agentes hospedados acceso mediante un firewall, puede que quiera restringir ese acceso por dirección IP. Dado que Azure DevOps usa la red global de Azure, los intervalos IP varían con el tiempo. Microsoft publica un archivo JSON semanal donde se enumeran los intervalos IP de los centros de datos de Azure, desglosados por región. Este archivo se actualiza semanalmente con nuevos intervalos IP planeados. Solo está disponible para su descarga la versión más reciente del archivo. Si necesita las versiones anteriores, debe descargarlas y archivarlas cada semana a medida que estén disponibles. Los nuevos intervalos IP se hacen efectivos la semana siguiente. Se recomienda comprobarla con frecuencia (al menos una vez cada semana) para asegurarse de mantener una lista actualizada. Si los trabajos de agente comienzan a experimentar errores, un primer paso de solución de problemas clave es asegurarse de que la configuración coincida con la lista más reciente de direcciones IP. Los intervalos de direcciones IP de los agentes hospedados se enumeran en el archivo semanal en AzureCloud.<region>, como AzureCloud.westus para la región Oeste de EE. UU.

Los agentes hospedados se ejecutan en la misma geografía de Azure que la organización. Cada geografía incluye una o varias regiones. Aunque el agente se puede ejecutar en la misma región que la organización, no se garantiza que lo haga. Para obtener la lista completa de intervalos IP posibles para el agente, debe usar los intervalos IP de todas las regiones contenidas en la geografía. Por ejemplo, si su organización se encuentra en la geografía Estados Unidos, debe usar los intervalos IP con todas las regiones de esa geografía.

Para determinar la geografía, vaya a https://dev.azure.com/<your_organization>/_settings/organizationOverview, obtenga la región y busque la geografía asociada en la tabla Geografía de Azure. Cuando haya identificado la geografía, use los intervalos IP del archivo semanal con todas las regiones de esa geografía.

Importante

No puede usar conexiones privadas, como ExpressRoute o VPN, para conectar agentes hospedados por Microsoft a la red corporativa. El tráfico entre los agentes hospedados por Microsoft y los servidores se realizará a través de la red pública.

Identificación de los posibles intervalos IP de los agentes hospedados por Microsoft

  1. Identifique la región de la organización en Configuración de la organización.
  2. Identifique la geografía de Azure para la región de su organización.
  3. Asigne los nombres de las regiones de la geografía siguiendo el formato usado en el archivo semanal: AzureCloud.<region>, como AzureCloud.westus. Puede asignar los nombres de las regiones de la lista Geografía de Azure siguiendo el formato usado en el archivo semanal; para ello, revise los nombres de región pasados al constructor de las regiones definidas en el código fuente de la clase Region, desde las bibliotecas de administración de Azure para .NET.

    Nota:

    Dado que no hay ninguna API en las bibliotecas de administración de Azure para .NET para enumerar las regiones de una geografía, debe hacerlo manualmente como se muestra en el ejemplo siguiente.

  4. Recupere las direcciones IP de todas las regiones de la geografía del archivo semanal. Si su región es Sur de Brasil u Oeste de Europa, debe incluir intervalos IP adicionales basados en la geografía de reserva, como se describe en la nota siguiente.

Nota:

Debido a las restricciones de capacidad, algunas organizaciones de las regiones Sur de Brasil u Oeste de Europa pueden encontrarse en ocasiones con que sus agentes hospedados están ubicados fuera de su geografía esperada. En estos casos, además de incluir los intervalos IP para todas las regiones de la geografía, como se describe en la sección anterior, se deben incluir intervalos IP adicionales para las regiones de la geografía de reserva de capacidad.

Si su organización se encuentra en la región Sur de Brasil, la geografía de reserva de capacidad es Estados Unidos.

Si su organización se encuentra en la región Oeste de Europa, la geografía de reserva de capacidad es Francia.

Nuestros intervalos IP de Mac no se incluyen en las direcciones IP de Azure anteriores, ya que se hospedan en la nube macOS de GitHub. Los intervalos IP se pueden recuperar mediante la API de metadatos de GitHub con las instrucciones proporcionadas aquí.

Ejemplo

En el ejemplo siguiente, los intervalos de direcciones IP del agente hospedado de una organización de la región Oeste de EE. UU. se recuperan del archivo semanal. Dado que la región Oeste de EE. UU. se encuentra en la geografía de Estados Unidos, se incluyen las direcciones IP de todas las regiones de geografía de Estados Unidos. En este ejemplo, las direcciones IP se escriben en la consola.

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace WeeklyFileIPRanges
{
    class Program
    {
        // Path to the locally saved weekly file
        const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20230904.json";

        static void Main(string[] args)
        {
            // United States geography has the following regions:
            // Central US, East US, East US 2, East US 3, North Central US, 
            // South Central US, West Central US, West US, West US 2, West US 3
            // This list is accurate as of 9/8/2023
            List<string> USGeographyRegions = new List<string>
            {
                "centralus",
                "eastus",
                "eastus2",
                "eastus3",
                "northcentralus",
                "southcentralus",
                "westcentralus",
                "westus",
                "westus2",
                "westus3"
            };

            // Load the weekly file
            JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
            JArray values = (JArray)weeklyFile["values"];

            foreach (string region in USGeographyRegions)
            {
                string tag = $"AzureCloud.{region}";
                Console.WriteLine(tag);

                var ipList =
                    from v in values
                    where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
                    select v["properties"]["addressPrefixes"];

                foreach (var ip in ipList.Children())
                {
                    Console.WriteLine(ip);
                }
            }
        }
    }
}

Etiquetas de servicio

Las etiquetas de servicio no pueden enumerar los agentes hospedados por Microsoft. Si intenta conceder a los agentes hospedados acceso a los recursos, deberá seguir el método de lista de intervalos IP permitidos.

Seguridad

Los agentes hospedados por Microsoft se ejecutan en una plataforma segura de Azure. No obstante, debe tener en cuenta las siguientes consideraciones de seguridad.

  • Aunque los agentes hospedados por Microsoft se ejecutan en la red pública de Azure, no tienen asignadas direcciones IP públicas. Por lo tanto, las entidades externas no pueden dirigirse a agentes hospedados por Microsoft.
  • Los agentes hospedados por Microsoft se ejecutan en máquinas virtuales individuales, de las que se vuelven a crear imágenes después de cada ejecución. Cada agente se dedica a una sola organización y cada máquina virtual hospeda un solo agente.
  • Desde la perspectiva de la seguridad, hay varias ventajas en la ejecución de la canalización en agentes hospedados por Microsoft. Si ejecuta código que no es de confianza en la canalización, como las contribuciones de bifurcaciones, es más seguro ejecutar la canalización en agentes hospedados por Microsoft que en agentes autohospedados que residen en la red corporativa.
  • Cuando una canalización necesita acceder a los recursos corporativos detrás de un firewall, se debe permitir el intervalo de direcciones IP de la geografía de Azure. Como consecuencia, su exposición puede aumentar, ya que el intervalo de direcciones IP es bastante grande y las máquinas de este intervalo pueden pertenecer a otros clientes también. La mejor manera de impedir este problema es evitar la necesidad de acceder a recursos internos. Para obtener información sobre cómo implementar artefactos en un conjunto de servidores, consulte Comunicación para implementar en servidores de destino.
  • Las imágenes hospedadas no se ajustan a las pruebas comparativas de protección de CIS. Para usar imágenes protegidas por CIS, debe crear agentes autohospedados o agentes de conjunto de escalado.

Funcionalidades y limitaciones

Agentes hospedados por Microsoft:

  • Tienen el software anterior. También puede agregar software durante la compilación o versión mediante las tareas del instalador de herramientas.
    • Se obtiene un agente con una imagen reciente para cada trabajo de la canalización.
  • Proporcionan 10 GB de almacenamiento para las salidas de origen y compilación.
  • Proporcionan un nivel gratis:
    • Proyecto público: 10 trabajos paralelos hospedados por Microsoft gratuitos que se pueden ejecutar durante 360 minutos (6 horas) como máximo cada vez, sin límite de tiempo total al mes. Póngase en contacto con nosotros para aumentar sus límites de nivel gratis.
    • Proyecto privado: un trabajo paralelo gratuito que se puede ejecutar durante 60 minutos como máximo cada vez, hasta que haya usado 1800 minutos (30 horas) al mes. Puede pagar por capacidad adicional por trabajo paralelo. Los trabajos paralelos de pago quitan el límite de tiempo mensual y le permiten ejecutar cada trabajo hasta 360 minutos (6 horas). Compre trabajos paralelos hospedados por Microsoft.
    • Al crear una nueva organización de Azure DevOps, no se le dan estas concesiones gratuitas de forma predeterminada. Para solicitar la concesión gratuita para proyectos públicos o privados, envíe una solicitud.
  • Se ejecutan en máquinas virtuales de uso general de Microsoft Azure Standard_DS2_v2.
  • Se ejecutan como administrador en Windows y como usuario sudo sin contraseña en Linux.
  • (Solo Linux) Ejecutan pasos en un objeto cgroup que ofrece 6 GB de memoria física y 13 GB de memoria total.
  • Use imágenes de máquina virtual que se actualicen periódicamente (cada 3 semanas).

Los agentes hospedados por Microsoft no ofrecen:

  • La capacidad de conectarse de forma remota.
  • La capacidad de colocar artefactos en un recurso compartido de archivos UNC.
  • La capacidad de unir máquinas directamente a la red corporativa.
  • La capacidad de obtener máquinas de compilación más grandes o más eficaces.
  • La capacidad de cargar previamente software personalizado. Puede instalar software durante una ejecución de canalización, por ejemplo, mediante tareas del instalador de herramientas o en un script.
  • Posibles ventajas de rendimiento que puede conseguir mediante el uso de agentes autohospedados que podrían iniciar y ejecutar compilaciones más rápido. Más información
  • La capacidad de ejecutar compilaciones XAML.
  • La capacidad de revertir a una versión anterior de la imagen de máquina virtual. Utilice siempre la versión más reciente.

Si los agentes hospedados por Microsoft no satisfacen sus necesidades, puede implementar sus propios agentes autohospedados o usar agentes de conjunto de escalado.

Preguntas más frecuentes

¿Cómo puedo ver qué software se incluye en una imagen?

Para ver el software instalado para cada agente hospedado, elija el vínculo Software incluido en la tabla Software.

Nota:

De forma predeterminada, el agente de Windows usa la versión de Git que se incluye con el software de agente. Microsoft recomienda usar la versión de Git que se incluye con el agente, pero tiene varias opciones para invalidar este comportamiento predeterminado y usar la versión de Git que la máquina del agente haya instalado en la ruta de acceso.

  • Establezca una variable de canalización denominada System.PreferGitFromPath en true en las canalizaciones.
  • En los agentes autohospedados, puede crear un archivo denominado .env en el directorio raíz del agente y agregar una línea System.PreferGitFromPath=true al archivo. Para más información, consulte ¿Cómo se establecen diferentes variables de entorno para cada agente?

Para ver la versión de Git que se usa en una canalización, puede examinar los registros de un paso checkout de la canalización, como se muestra en el ejemplo siguiente.

Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1

¿Cómo elige Microsoft el software y las versiones que se colocan en la imagen?

Puede encontrar más información sobre las versiones de software incluidas en las imágenes en Directrices de elementos instalados.

¿Cuándo se actualizan las imágenes?

Normalmente, las imágenes se actualizan semanalmente. Puede comprobar las notificaciones de estado que están en el formato 20200113.x, donde la primera parte indica la fecha en que se actualizó la imagen.

¿Qué puedo hacer si el software que necesito se quita o se reemplaza por una versión más reciente?

Para que tengamos conocimiento de ello, abra una incidencia de GitHub mediante los vínculos Software incluido de la tabla Usar un agente hospedado por Microsoft.

También puede usar un agente autohospedado que incluya las versiones exactas del software que necesita. Para más información, consulte Agentes autohospedados.

¿Y si necesito una máquina más grande con mayor poder de procesamiento, memoria o espacio en disco?

No podemos aumentar la memoria, el poder de procesamiento ni el espacio en disco de los agentes hospedados por Microsoft, pero puede usar agentes autohospedados o agentes de conjunto de escalado hospedados en máquinas con las especificaciones deseadas.

No puedo seleccionar un agente hospedado por Microsoft ni puedo poner en cola la compilación o implementación. ¿Cuál debo hacer?

Los agentes hospedados por Microsoft solo están disponibles en Azure Pipelines y no en TFS o Azure DevOps Server.

De forma predeterminada, todos los colaboradores del proyecto de una organización tienen acceso a los agentes hospedados por Microsoft. Sin embargo, el administrador de la organización puede limitar el acceso a estos para algunos usuarios o proyectos. Pida al propietario de su organización de Azure DevOps que le conceda permiso para usar un agente hospedado por Microsoft. Consulte Seguridad del grupo de agentes.

Mis canalizaciones que se ejecutan en agentes hospedados por Microsoft tardan más tiempo en completarse. ¿Cómo puedo acelerarlas?

Si la canalización se ha vuelto más lenta recientemente, revise nuestra página de estado para ver si hay interrupciones. Podríamos tener problemas con nuestro servicio. O bien, revise los cambios realizados en el código de la aplicación o en la canalización. Es posible que el tamaño del repositorio durante la extracción del repositorio haya aumentado, que esté cargando artefactos más grandes o que esté ejecutando más pruebas.

Si está configurando una canalización y está comparando el rendimiento de los agentes hospedados por Microsoft con el equipo local o con un agente autohospedado, anote las especificaciones del hardware que usamos para ejecutar los trabajos. No podemos proporcionarle máquinas más grandes o potentes. Puede considerar el uso de agentes autohospedados o agentes de conjuntos de escalado si este rendimiento no es aceptable.

Necesito más agentes. ¿Qué se puede hacer?

A todas las organizaciones de Azure DevOps se les proporcionan varios trabajos paralelos gratuitos para proyectos de código abierto y un trabajo paralelo gratuito y minutos limitados cada mes para proyectos privados. Si necesita más minutos o trabajos paralelos para el proyecto de código abierto, póngase en contacto con el soporte técnico. Si necesita más minutos o trabajos paralelos para el proyecto privado, puede comprar más.

Mi canalización funciona en agentes autohospedados, pero no funciona en agentes hospedados por Microsoft. ¿Cuál debo hacer?

Es probable que el agente autohospedado tenga instaladas todas las dependencias adecuadas, mientras que las mismas dependencias, herramientas y software no están instalados en los agentes hospedados por Microsoft. En primer lugar, revise cuidadosamente la lista de software que está instalado en agentes hospedados por Microsoft; para ello, siga el vínculo Software incluido de la tabla anterior. A continuación, compárelo con el software instalado en el agente autohospedado. En algunos casos, los agentes hospedados por Microsoft pueden tener las herramientas que necesita (por ejemplo, Visual Studio), pero es posible que no se hayan instalado todos los componentes opcionales necesarios. Si encuentra diferencias, tiene dos opciones:

  • Puede crear una nueva incidencia en el repositorio, donde realizamos un seguimiento de las solicitudes de software adicional. Ponerse en contacto con el soporte técnico no le ayudará a configurar software nuevo en agentes hospedados por Microsoft.

  • Puede usar agentes autohospedados o agentes de conjunto de escalado. Con estos agentes, tiene control total de las imágenes que se usan para ejecutar las canalizaciones.

Mi compilación funciona correctamente en la máquina local, pero no en los agentes hospedados por Microsoft. ¿Cuál debo hacer?

Es probable que la máquina local tenga instaladas todas las dependencias adecuadas, mientras que las mismas dependencias, herramientas y software no están instalados en los agentes hospedados por Microsoft. En primer lugar, revise cuidadosamente la lista de software que está instalado en agentes hospedados por Microsoft; para ello, siga el vínculo Software incluido de la tabla anterior. A continuación, compárela con el software instalado en la máquina local. En algunos casos, los agentes hospedados por Microsoft pueden tener las herramientas que necesita (por ejemplo, Visual Studio), pero es posible que no se hayan instalado todos los componentes opcionales necesarios. Si encuentra diferencias, tiene dos opciones:

  • Puede crear una nueva incidencia en el repositorio, donde realizamos un seguimiento de las solicitudes de software adicional. Esta es la mejor opción para instalar nuevo software. Ponerse en contacto con el soporte técnico no le ayudará a configurar software nuevo en agentes hospedados por Microsoft.

  • Puede usar agentes autohospedados o agentes de conjunto de escalado. Con estos agentes, tiene control total de las imágenes que se usan para ejecutar las canalizaciones.

La canalización no funciona y se muestra el error: "no queda espacio en el dispositivo".

Los agentes hospedados por Microsoft solo tienen 10 GB de espacio en disco disponible para ejecutar el trabajo. Este espacio se consume al extraer el código fuente del repositorio, al descargar paquetes, al descargar imágenes de Docker o al generar archivos intermedios. Por desgracia, no podemos aumentar el espacio disponible en las imágenes hospedadas por Microsoft. Puede reestructurar la canalización para que se ajuste a este espacio. O bien, puede considerar el uso de agentes autohospedados o agentes de conjunto de escalado.

La canalización que se ejecuta en agentes hospedados por Microsoft requiere acceso a los servidores de nuestra red corporativa. ¿Cómo se obtiene una lista de direcciones IP que se permiten en nuestro firewall?

Consulte la sección Intervalos IP del agente.

La canalización que se ejecuta en agentes hospedados por Microsoft no puede resolver el nombre de un servidor de nuestra red corporativa. ¿Cómo puedo solucionar esto?

Si hace referencia al servidor por su nombre DNS, asegúrese de que se pueda acceder a él públicamente en Internet por este nombre. Si hace referencia al servidor por su dirección IP, asegúrese de que se pueda acceder a ella públicamente en Internet. En ambos casos, asegúrese de que cualquier firewall entre los agentes y la red corporativa tenga permitidos los intervalos IP del agente.

Recibo un error de autorización de IP de SAS de una cuenta de Azure Storage

Si recibe un código de error de SAS, lo más probable es que los intervalos de direcciones IP de los agentes hospedados por Microsoft no se permitan debido a las reglas de Azure Storage. Hay algunas soluciones alternativas:

  1. Administre las reglas de red IP de la cuenta de Azure Storage y agregue los intervalos de direcciones IP de los agentes hospedados.
  2. En la canalización, use la CLI de Azure para actualizar el conjunto de reglas de red de la cuenta de Azure Storage justo antes de acceder al almacenamiento y, luego, restaure el conjunto de reglas anterior.
  3. Use agentes autohospedados o agentes de conjunto de escalado.

¿Cómo puedo seleccionar manualmente las versiones de las herramientas en el agente de macOS hospedado?

Xamarin

El agente de macOS hospedado almacena las versiones del SDK de Xamarin y las versiones de Mono asociadas como un conjunto de vínculos simbólicos a las ubicaciones del SDK de Xamarin que están disponibles mediante un único vínculo simbólico de agrupación.

Para seleccionar manualmente una versión del SDK de Xamarin que se va a usar en el agente de macOS hospedado, ejecute el siguiente comando de Bash antes de la tarea de compilación de Xamarin como parte de la compilación y especifique el vínculo simbólico a la agrupación de versiones de Xamarin que necesita.

/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"

La lista de todas las versiones y vínculos simbólicos disponibles del SDK de Xamarin se puede encontrar en la documentación de los agentes:

Este comando no selecciona la versión de Mono más allá del SDK de Xamarin. Para seleccionar manualmente una versión de Mono, consulte las instrucciones siguientes.

En caso de que use una versión no predeterminada de Xcode para compilar las aplicaciones de Xamarin.iOS o Xamarin.Mac, también debe ejecutar esta línea de comandos:

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"

donde $(xcodeRoot) = /Applications/Xcode_13.2.app

Las versiones de Xcode del grupo de agentes de macOS hospedado se pueden encontrar aquí para el agente macos-11 y aquí para el agente macos-12.

Xcode

Si usa la tarea Xcode incluida con Azure Pipelines y TFS, puede seleccionar una versión de Xcode en las propiedades de esa tarea. De lo contrario, para establecer manualmente la versión de Xcode que se usará en el grupo de agentes de macOS hospedado, antes de la tarea de compilación xcodebuild, ejecute esta línea de comandos como parte de la compilación, pero reemplace el número de versión 13.2 de Xcode según sea necesario:

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"

Las versiones de Xcode del grupo de agentes de macOS hospedado se pueden encontrar aquí para el agente macos-11 y aquí para el agente macos-12.

Este comando no funciona con aplicaciones de Xamarin. Para seleccionar manualmente una versión de Xcode para compilar aplicaciones de Xamarin, consulte las instrucciones anteriores.

Mono

Para seleccionar manualmente una versión de Mono que se va a usar en el grupo de agentes de macOS hospedado, ejecute este script en cada trabajo de la compilación antes de la tarea de compilación de Mono, y especifique el vínculo simbólico con la versión de Mono necesaria (puede encontrar la lista de todos los vínculos simbólicos disponibles en la sección de Xamarin anterior):

SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"