Размещенные агенты Майкрософт
Azure DevOps Services | Azure DevOps Server 2022 г. - Azure DevOps Server 2019 г. | TFS 2018
Агенты, размещенные в Майкрософт, доступны только в Azure DevOps Services, размещенных в облаке. Вы не можете использовать размещенные в Майкрософт агенты или пул агентов Azure Pipelines с локальной службой TFS или Azure DevOps Server. В этих локальных версиях необходимо использовать локальные агенты.
Важно!
Чтобы просмотреть содержимое, доступное для вашей платформы, убедитесь, что в селекторе версии над содержанием выбрана правильная версия этой статьи. Поддержка функций зависит от того, работаете ли вы в Azure DevOps Services или в локальной версии Azure DevOps Server, которая ранее называлась Team Foundation Server (TFS).
Сведения о том, какую локальную версию вы используете, см. в статье Поиск платформы и версии Azure DevOps.
Если конвейеры находятся в Azure Pipelines, у вас есть удобный вариант для выполнения заданий с помощью агента, размещенного в Майкрософт. С агентами, размещенными в Майкрософт, можно не волноваться об обновлениях и обслуживании. Каждый раз при запуске конвейера вы получаете новую виртуальную машину для каждого задания в конвейере. Виртуальная машина удаляется после одного задания (это означает, что любое изменение, которое задание вносит в файловую систему виртуальной машины, например извлечение кода, будет недоступно для следующего задания). Агенты, размещенные в Майкрософт, могут выполнять задания непосредственно на виртуальной машине или в контейнере.
Azure Pipelines предоставляет предопределенный пул агентов с именем Azure Pipelines с размещенными агентами Майкрософт.
Для многих команд это самый простой способ выполнения заданий. Вы можете попробовать его сначала и оценить, подходит ли он для ваших процессов сборки или развертывания. Если это не так, вы можете использовать локальный агент.
Совет
Вы можете попробовать агент, размещенный в Майкрософт, бесплатно.
Программное обеспечение
Пул агентов Azure Pipelines предлагает несколько образов виртуальных машин на выбор, каждый из которых включает широкий спектр средств и программного обеспечения.
Image | Спецификация агента классического редактора | Метка образа виртуальной машины YAML | Входящее программное обеспечение |
---|---|---|---|
Windows Server 2022 с Visual Studio 2022 | windows-2022 | windows-latest ИЛИ windows-2022 |
Ссылка |
Windows Server 2019 с Visual Studio 2019 | windows-2019 | windows-2019 |
Ссылка |
Ubuntu 22.04 | ubuntu-22.04 | ubuntu-latest ИЛИ ubuntu-22.04 |
Ссылка |
Ubuntu 20.04 | ubuntu-20.04 | ubuntu-20.04 |
Ссылка |
macOS 13 Ventura | macOS-13 | macOS-13 |
Ссылка |
macOS 12 Monterey | macOS-12 | macOS-latest ИЛИ macOS-12 |
Ссылка |
macOS 11 Big Sur | macOS-11 | macOS-11 |
Ссылка |
Образ агента по умолчанию для классических конвейеров сборки — windows-2019, а образ агента по умолчанию для конвейеров сборки YAML — ubuntu-latest
. Дополнительные сведения см. в статье Назначение пула в конвейере.
Чтобы просмотреть установленное программное обеспечение для каждого размещенного агента, щелкните ссылку Включено программное обеспечение в таблице. При использовании образов macOS можно вручную выбрать версию средства. См. ниже.
Последние обновления
- Доступен образ macOS 13
- Образ macOS 10.15 будет полностью неподдерживаемым до 24.04.2023 г.
- Поддержка Ubuntu 18.04 прекращена
ubuntu-latest
в образах будет использоватьсяubuntu-22.04
.- Общая доступность Ubuntu 22.04 для размещенных пулов Azure Pipelines.
- Образ Ubuntu 18.04 начнет устаревание 22.08.08.2023 и будет полностью не поддерживаться до 01.04.2023.
- Образ macOS 10.15 начнет устаревание 31.05.22 и будет полностью не поддерживаться до 12.01.2022.
windows-latest
в образах будет использоватьсяwindows-2022
.macOS-latest
в образах будет использоватьсяmacOS-11
.- Размещенный образ Ubuntu 16.04 был удален в сентябре 2021 г.
- Windows Server 2016 с образом Visual Studio 2017 устарела и будет прекращена 30 июня 2022 г. Прочтите эту запись блога о том, как определить конвейеры с помощью устаревших образов.
- В декабре 2021 г. мы удалили следующий размещенный образ Azure Pipelines:
- macOS X Mojave 10.14 (
macOS-10.14
)
- macOS X Mojave 10.14 (
- В марте 2020 г. мы удалили следующие образы, размещенные в Azure Pipelines:
- Windows Server 2012R2 с Visual Studio 2015 (
vs2015-win2012r2
) - macOS X High Sierra 10.13 (
macOS-10.13
) - Windows Server Core 1803 (
win1803
)
- Windows Server 2012R2 с Visual Studio 2015 (
Клиентам рекомендуется перейти на более новые версии или локальный агент.
Дополнительные сведения и инструкции по обновлению конвейеров, использующих эти образы, см. в статье Удаление старых образов в размещенных пулах Azure Pipelines.
Примечание
Размещенный пул Azure Pipelines заменяет предыдущие размещенные пулы с именами, сопоставленными с соответствующими образами. Все задания, которые были в предыдущих размещенных пулах, автоматически перенаправляются на правильный образ в новом размещенном пуле Azure Pipelines. В некоторых случаях вы можете по-прежнему видеть старые имена пулов, но в фоновом режиме размещенные задания выполняются с помощью пула Azure Pipelines. Дополнительные сведения об этом обновлении см. в заметках о выпуске отдельного размещенного пула за 1 июля 2019 г. — Sprint 154.
Важно!
Чтобы запросить установку дополнительного программного обеспечения на агенты, размещенные в Майкрософт, не создавайте запрос на отзыв по этому документу или не открывайте запрос в службу поддержки. Вместо этого откройте проблему в нашем репозитории, где мы управляем скриптами для создания различных образов.
Определение конвейеров с помощью устаревшего размещенного образа
Чтобы определить конвейеры, использующие нерекомендуемый образ, перейдите в следующее расположение в организации: https://dev.azure.com/{organization}/{project}/_settings/agentqueues
и отфильтруйте имя образа, чтобы проверка. В следующем примере проверяется vs2017-win2016
изображение.
Вы также можете запросить в журнале заданий устаревшие образы в проектах с помощью скрипта, расположенного здесь, как показано в следующем примере.
./QueryJobHistoryForRetiredImages.ps1 -accountUrl https://dev.azure.com/{org} -pat {pat}
Использование агента, размещенного в Корпорации Майкрософт
Если в конвейерах YAML не указан пул, конвейеры по умолчанию будут использовать пул агентов Azure Pipelines. Необходимо просто указать, какой образ виртуальной машины вы хотите использовать.
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
Примечание
Спецификация пула может выполняться на нескольких уровнях в ФАЙЛЕ YAML. Если вы заметили, что конвейер не выполняется на ожидаемом образе, проверьте спецификацию пула на уровне конвейера, этапа и задания.
Избегайте жестко заданных ссылок
При использовании агента, размещенного в Майкрософт, всегда используйте переменные для ссылки на среду сборки и ресурсы агента. Например, не нужно жестко писать букву диска или папку, содержащую репозиторий. Точный макет размещенных агентов может быть изменен без предупреждения.
Оборудование
Размещенные в Майкрософт агенты под управлением образов Windows и Linux подготавливаются на виртуальных машинах Azure общего назначения с 2 ядрами ЦП, 7 ГБ ОЗУ и 14 ГБ дискового пространства SSD. Эти виртуальные машины расположены в том же географическом регионе, что и ваша организация Azure DevOps.
Агенты под управлением образов macOS подготавливаются на компьютерах Mac Pro с 3 ядрами ЦП, 14 ГБ ОЗУ и 14 ГБ дискового пространства SSD. Эти агенты всегда работают в США независимо от расположения вашей организации Azure DevOps. Если для вас важна независимость данных и ваша организация находится не в США, то не следует использовать образы macOS. Подробнее.
На всех этих компьютерах доступно не менее 10 ГБ свободного места на диске для запуска конвейеров. Это свободное пространство используется, когда конвейер извлекает исходный код, загружает пакеты, извлекает образы Docker или создает промежуточные файлы.
Важно!
Мы не можем учитывать запросы на увеличение места на диске на агентах, размещенных в Майкрософт, или на подготовку более мощных компьютеров. Если спецификации агентов, размещенных в Майкрософт, не соответствуют вашим потребностям, следует рассмотреть возможность использования локальных агентов или агентов масштабируемого набора.
Сеть
В некоторых конфигурациях может потребоваться знать диапазон IP-адресов, на которых развертываются агенты. Например, если необходимо предоставить размещенным агентам доступ через брандмауэр, вы можете ограничить этот доступ по IP-адресу. Так как Azure DevOps использует глобальную сеть Azure, диапазоны IP-адресов со временем различаются. Мы публикуем еженедельный JSON-файл с диапазонами IP-адресов для центров обработки данных Azure, разбитый по регионам. Этот файл обновляется еженедельно новыми запланированными диапазонами IP-адресов. Новые диапазоны IP-адресов вступает в силу на следующей неделе. Мы рекомендуем часто проверка обратно (по крайней мере раз в неделю), чтобы обеспечить актуальность списка. Если задания агента начинают завершаться сбоем, первым шагом по устранению неполадок является проверка соответствия конфигурации последнему списку IP-адресов. Диапазоны IP-адресов для размещенных агентов перечислены в еженедельном файле в разделе AzureCloud.<region>
, например AzureCloud.westus
для региона "Западная часть США".
Размещенные агенты работают в той же географической области Azure, что и ваша организация. Каждая география содержит один или несколько регионов. Хотя агент может работать в том же регионе, что и ваша организация, это не гарантируется. Чтобы получить полный список возможных диапазонов IP-адресов для агента, необходимо использовать диапазоны IP-адресов из всех регионов, содержащихся в вашей географической области. Например, если ваша организация находится в США географическом регионе, необходимо использовать диапазоны IP-адресов для всех регионов в этой географической области.
Чтобы определить географию, перейдите по адресу https://dev.azure.com/<your_organization>/_settings/organizationOverview
, получите свой регион и найдите связанный географический регион из таблицы географии Azure . Определив географию, используйте диапазоны IP-адресов из еженедельного файла для всех регионов в этом географическом регионе.
Важно!
Вы не можете использовать частные подключения, такие как ExpressRoute или VPN, для подключения агентов, размещенных в Корпорации Майкрософт, к корпоративной сети. Трафик между размещенными агентами Майкрософт и серверами будет осуществляться через общедоступную сеть.
Определение возможных диапазонов IP-адресов для агентов, размещенных в Майкрософт
- Определите регион для вашей организации в разделе Параметры организации.
- Определите географию Azure для региона вашей организации.
- Сопоставьте имена регионов в географическом регионе с форматом, используемым в еженедельном файле, в формате
AzureCloud.<region>
, напримерAzureCloud.westus
. Имена регионов из списка География Azure можно сопоставить с форматом, используемым в еженедельном файле, просмотрев имена регионов, переданные конструктору регионов, определенных в исходном коде для класса Region, из библиотек управления Azure для .NET.Примечание
Так как в библиотеках управления Azure для .NET нет API для перечисления регионов для географического региона, их необходимо перечислить вручную, как показано в следующем примере.
- Получите IP-адреса для всех регионов в географическом регионе из еженедельного файла. Если ваш регион — Южная Бразилия или Западная Европа, необходимо включить дополнительные диапазоны IP-адресов на основе резервного географического региона, как описано в следующем примечании.
Примечание
Из-за ограничений емкости некоторые организации в регионах "Южная Бразилия " или "Западная Европа" могут иногда видеть своих размещенных агентов за пределами ожидаемой географической области. В таких случаях в дополнение к включению диапазонов IP-адресов для всех регионов в географическом регионе, как описано в предыдущем разделе, необходимо включить дополнительные диапазоны IP-адресов для регионов в резервную географию емкости.
Если ваша организация находится в регионе "Южная Бразилия", резервная география ресурсов США.
Если ваша организация находится в регионе Западная Европа , резервная география емкости — Франция.
Диапазоны IP-адресов Mac не включены в приведенные выше IP-адреса Azure, так как они размещаются в облаке macOS GitHub. Диапазоны IP-адресов можно получить с помощью API метаданных GitHub , следуя приведенным здесь инструкциям.
Пример
В следующем примере диапазоны IP-адресов размещенного агента для организации в регионе "Западная часть США" извлекаются из еженедельного файла. Так как регион Западная часть США находится в США географическом регионе, ip-адреса для всех регионов в США географическом регионе включаются. В этом примере IP-адреса записываются в консоль.
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_20210823.json";
static void Main(string[] args)
{
// United States geography has the following regions:
// Central US, East US, East US 2, North Central US,
// South Central US, West Central US, West US, West US 2
// This list is accurate as of 8/26/2021
List<string> USGeographyRegions = new List<string>
{
"centralus",
"eastus",
"eastus2",
"northcentralus",
"southcentralus",
"westcentralus",
"westus",
"westus2"
};
// Load the weekly file
JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
JArray values = (JArray)weeklyFile["values"];
foreach (string region in USGeographyRegions)
{
string azureCloudRegion = $"AzureCloud.{region}";
Console.WriteLine(azureCloudRegion);
var ipList =
from v in values
where (string)v["name"] == azureCloudRegion
select v["properties"]["addressPrefixes"];
foreach (var ip in ipList.Children())
{
Console.WriteLine(ip);
}
}
}
}
}
Теги служб
Агенты, размещенные в Майкрософт, не могут быть перечислены с помощью тегов служб. Если вы пытаетесь предоставить размещенным агентам доступ к ресурсам, необходимо следовать методу включения списка диапазонов IP-адресов.
Безопасность
Агенты, размещенные в Майкрософт, выполняются на безопасной платформе Azure. Однако необходимо учитывать следующие аспекты безопасности.
- Хотя размещенные в Майкрософт агенты работают в общедоступной сети Azure, им не назначаются общедоступные IP-адреса. Таким образом, внешние сущности не могут быть нацелены на агентов, размещенных в Майкрософт.
- Агенты, размещенные в Майкрософт, выполняются на отдельных виртуальных машинах, которые повторно создаются после каждого запуска. Каждый агент предназначен для одной организации, и на каждой виртуальной машине размещается только один агент.
- С точки зрения безопасности запуск конвейера на агентах, размещенных в Майкрософт, имеет несколько преимуществ. Если вы запускаете ненадежный код в конвейере, например вклады из вилок, безопаснее запускать конвейер на агентах, размещенных в Майкрософт, чем на локальных агентах, которые находятся в корпоративной сети.
- Если конвейеру требуется доступ к корпоративным ресурсам за брандмауэром, необходимо разрешить диапазон IP-адресов для географического региона Azure. Это может увеличить вашу уязвимость, так как диапазон IP-адресов довольно велик, и поскольку компьютеры в этом диапазоне также могут принадлежать другим клиентам. Лучший способ предотвратить это — избежать необходимости доступа к внутренним ресурсам.
- Размещенные образы не соответствуют эталонам усиления защиты CIS. Чтобы использовать образы, защищенные CIS, необходимо создать локальные агенты или агенты масштабируемого набора.
Возможности и ограничения
Агенты, размещенные в Майкрософт:
- У вас есть указанное выше программное обеспечение. Вы также можете добавить программное обеспечение во время сборки или выпуска с помощью задач установщика инструментов.
- Вы получаете новый образ агента для каждого задания в конвейере.
- Предоставьте 10 ГБ хранилища для выходных данных источника и сборки.
- Укажите уровень "Бесплатный".
- Общедоступный проект: 10 бесплатных параллельных заданий, размещенных корпорацией Майкрософт, которые могут выполняться до 360 минут (6 часов) каждый раз без общего ограничения по времени в месяц. Свяжитесь с нами , чтобы увеличить лимиты уровня "Бесплатный".
- Частный проект: одно бесплатное параллельное задание, которое может выполняться до 60 минут каждый раз, пока вы не будете использовать 1800 минут (30 часов) в месяц. Вы можете оплатить дополнительную емкость для каждого параллельного задания. Платные параллельные задания удаляют ежемесячное ограничение по времени и позволяют выполнять каждое задание до 360 минут (6 часов). Приобретение параллельных заданий, размещенных в Майкрософт.
- При создании новой организации Azure DevOps эти бесплатные гранты по умолчанию не предоставляются. Чтобы запросить бесплатный грант для общедоступных или частных проектов, отправьте запрос.
- Запуск на виртуальных машинах общего назначения Microsoft Azure Standard_DS2_v2
- Запуск от имени администратора в Windows и пользователя sudo без пароля в Linux
- (только Linux) Выполнение шагов в ,
cgroup
который предлагает 6 ГБ физической памяти и 13 ГБ общей памяти
Агенты, размещенные в Майкрософт, не предлагают:
- Возможность удаленного подключения.
- Возможность перетаскивания артефактов в общую папку UNC.
- Возможность напрямую присоединять компьютеры к корпоративной сети.
- Возможность получения больших или более мощных машин сборки.
- Возможность предварительной загрузки пользовательского программного обеспечения. Программное обеспечение можно установить во время выполнения конвейера, например с помощью задач установщика инструментов или в скрипте.
- Потенциальные преимущества производительности, которые можно получить с помощью локальных агентов, которые могут быстрее запускать и запускать сборки. Подробнее
- Возможность запуска сборок XAML.
Если агенты, размещенные в Майкрософт, не соответствуют вашим потребностям, вы можете развернуть собственные локальные агенты или использовать агенты масштабируемого набора.
Вопросы и ответы
Как узнать, какое программное обеспечение входит в образ?
Чтобы просмотреть установленное программное обеспечение для каждого размещенного агента, щелкните ссылку Включено программное обеспечение в таблице Программное обеспечение .
Примечание
По умолчанию агент Windows использует версию Git, которая входит в состав программного обеспечения агента. Корпорация Майкрософт рекомендует использовать версию Git, которая входит в состав агента, но у вас есть несколько вариантов переопределить это поведение по умолчанию и использовать версию Git, установленную компьютером агента в пути.
- Задайте переменную конвейера с именем
System.PreferGitFromPath
вtrue
конвейерах. - На локальных агентах можно создать файл с именем .env в корневом каталоге агента и добавить
System.PreferGitFromPath=true
строку в файл. Дополнительные сведения см. в статье Разделы справки задать разные переменные среды для каждого отдельного агента?
Чтобы просмотреть версию Git, используемую конвейером, можно просмотреть журналы для checkout
шага в конвейере, как показано в следующем примере.
Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1
Как корпорация Майкрософт выбирает программное обеспечение и версии для использования образа?
Дополнительные сведения о версиях программного обеспечения, включаемых в образы, см. в разделе Рекомендации по установке.
Когда обновляются образы?
Изображения обычно обновляются еженедельно. Вы можете проверка индикаторы состояния в формате20200113.x
, в котором первая часть указывает дату обновления изображения.
Что делать, если нужное программное обеспечение удалено или заменено более новой версией?
Вы можете сообщить нам об этом, отправив сообщение о проблеме на GitHub, выбрав ссылки включено программное обеспечение в таблице Использование агента, размещенного в Майкрософт .
Вы также можете использовать локальный агент, включающий точные версии программного обеспечения, которые вам нужны. Дополнительные сведения см. в разделе Локальные агенты.
Что делать, если мне нужен компьютер большего размера с большей вычислительной мощностью, памятью или дискового пространства?
Мы не можем увеличить память, вычислительную мощность или дисковое пространство для агентов, размещенных в Майкрософт, но вы можете использовать локальные агенты или агенты масштабируемого набора , размещенные на компьютерах с требуемыми спецификациями.
Не удается выбрать размещенный агент Майкрософт, и я не могу ставить сборку или развертывание в очередь. Что следует делать?
Агенты, размещенные в Майкрософт, доступны только в Azure Pipelines, но не в TFS или Azure DevOps Server.
По умолчанию все участники проекта в организации имеют доступ к агентам, размещенным в Корпорации Майкрософт. Но администратор вашей организации может ограничить доступ агентов, размещенных в Майкрософт, для выбора пользователей или проектов. Попросите владельца организации Azure DevOps предоставить вам разрешение на использование агента, размещенного в Майкрософт. См. раздел Безопасность пула агентов.
Мои конвейеры в агентах, размещенных в Майкрософт, выполняются дольше других. Как ускорить их выполнение?
Если в последнее время конвейер стал выполняться медленнее, просмотрите страницу состояния, чтобы узнать, нет ли каких-либо сбоев. Возможно, возникли проблемы с нашей службой. Или же просмотрите все изменения, внесенные в код приложения или конвейер. Возможно, размер репозитория увеличился во время извлечения, вы отправляете артефакты большего размера или выполняете дополнительные тесты.
Если вы только настраиваете конвейер и сравниваете производительность агентов, размещенных в Майкрософт, с производительностью локальных компьютеров или локальных агентов, обратите внимание на спецификации оборудования, которое мы используем для выполнения заданий. Мы не можем предоставить вам более мощные компьютеры или компьютеры с большим объемом пространства. Вы можете использовать локальные агенты или агенты масштабируемого набора, если такая производительность неприемлема.
Мне нужно больше агентов. Что можно сделать?
Всем организациям Azure DevOps предоставляется несколько бесплатных параллельных заданий для проектов с открытым кодом, а также одно бесплатное параллельное задание и ограниченные минуты каждый месяц для частных проектов. Если вам нужны дополнительные минуты или параллельные задания для проекта с открытым кодом, обратитесь в службу поддержки. Если вам нужны дополнительные минуты или параллельные задания для частного проекта, вы можете приобрести дополнительные сведения.
Мой конвейер завершается успешно на локальном агенте, но завершается сбоем на агентах, размещенных в Майкрософт. Что следует делать?
Вероятно, на локальном агенте установлены все необходимые зависимости, в то время как те же зависимости, средства и программное обеспечение не установлены на агентах, размещенных в Майкрософт. Во-первых, внимательно просмотрите список программного обеспечения, установленного на агентах, размещенных в Корпорации Майкрософт, по ссылке включено программное обеспечение в таблице выше. Затем сравните это с программным обеспечением, установленным на локальном агенте. В некоторых случаях агенты, размещенные в Майкрософт, могут иметь необходимые средства (например, Visual Studio), но все необходимые дополнительные компоненты, возможно, не были установлены. Если вы обнаружите различия, у вас есть два варианта:
Вы можете создать новую проблему в репозитории, где мы отслеживаем запросы на дополнительное программное обеспечение. Обращение в службу поддержки не поможет вам настроить новое программное обеспечение на агентах, размещенных в Майкрософт.
Можно использовать локальные агенты или агенты масштабируемого набора. С помощью этих агентов вы полностью контролируете образы, используемые для запуска конвейеров.
Сборка выполняется успешно на локальном компьютере, но завершается сбоем на агентах, размещенных в Майкрософт. Что следует делать?
Вероятно, на локальном компьютере установлены все необходимые зависимости, в то время как те же зависимости, средства и программное обеспечение не установлены на размещенных агентах Майкрософт. Во-первых, внимательно просмотрите список программного обеспечения, установленного на агентах, размещенных в Корпорации Майкрософт, по ссылке включено программное обеспечение в таблице выше. Затем сравните это с программным обеспечением, установленным на локальном компьютере. В некоторых случаях агенты, размещенные в Майкрософт, могут иметь необходимые средства (например, Visual Studio), но все необходимые дополнительные компоненты, возможно, не были установлены. Если вы обнаружите различия, у вас есть два варианта:
Вы можете создать новую проблему в репозитории, где мы отслеживаем запросы на дополнительное программное обеспечение. Это ваш лучший вариант для установки нового программного обеспечения. Обращение в службу поддержки не поможет вам настроить новое программное обеспечение на агентах, размещенных в Майкрософт.
Можно использовать локальные агенты или агенты масштабируемого набора. С помощью этих агентов вы полностью контролируете образы, используемые для запуска конвейеров.
Мой конвейер завершается сбоем с ошибкой "на устройстве не осталось места".
На размещенных агентах Майкрософт доступно только 10 ГБ дискового пространства для выполнения ваших заданий. Это пространство используется при проверка исходного кода, при скачивании пакетов, при скачивании образов Docker или при создании промежуточных файлов. К сожалению, мы не можем увеличить свободное пространство, доступное на образах, размещенных в Корпорации Майкрософт. Вы можете реструктурировать конвейер таким образом, чтобы он помещался в это пространство. Кроме того, можно использовать локальные агенты или агенты масштабируемого набора.
Для конвейера, работающего на агентах, размещенных в Майкрософт, требуется доступ к серверам в нашей корпоративной сети. Как получить список IP-адресов, разрешенных в брандмауэре?
См. раздел Диапазоны IP-адресов агента.
Нашему конвейеру, работающему на размещенных агентах Майкрософт, не удается разрешить имя сервера в корпоративной сети. Как это исправить?
Если вы ссылаетесь на сервер по его DNS-имени, убедитесь, что сервер является общедоступным в Интернете через его DNS-имя. Если вы ссылаетесь на сервер по его IP-адресу, убедитесь, что IP-адрес является общедоступным в Интернете. В обоих случаях убедитесь, что для любого брандмауэра между агентами и корпоративной сетью разрешены диапазоны IP-адресов агента .
Я получаю ошибку авторизации SAS IP из учетной записи хранения Azure
Если вы получаете код ошибки SAS, скорее всего, это связано с тем, что диапазоны IP-адресов от размещенных агентов Майкрософт не разрешены из-за правил службы хранилища Azure. Существует несколько обходных решений.
- Управляйте правилами IP-сети для учетной записи хранения Azure и добавьте диапазоны IP-адресов для размещенных агентов.
- В конвейере используйте Azure CLI, чтобы обновить набор правил сети для учетной записи хранения Azure непосредственно перед доступом к хранилищу, а затем восстановить предыдущий набор правил.
- Используйте локальные агенты или агенты масштабируемого набора.
Как вручную выбрать версии средств в размещенном агенте macOS?
Xamarin
Размещенный агент macOS хранит версии пакета SDK Xamarin и связанные версии Mono в виде набора символьных ссылок на расположения пакета SDK для Xamarin, доступные по одной символьной ссылке пакета.
Чтобы вручную выбрать версию пакета SDK для Xamarin для размещенного агента macOS , выполните следующую команду bash перед задачей сборки Xamarin, указав необходимую ссылку на пакет версий Xamarin.
/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"
Список всех доступных версий пакета SDK для Xamarin и символьных ссылок можно найти в документации по агентам:
Эта команда не выбирает версию Mono за пределами пакета SDK для Xamarin. Чтобы вручную выбрать версию Mono, см. инструкции ниже.
Если для создания приложений Xamarin.iOS или Xamarin.Mac используется нестандартная версия Xcode, необходимо дополнительно выполнить следующую командную строку:
/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"
Где $(xcodeRoot)
= /Applications/Xcode_13.2.app
Версии Xcode в пуле размещенных агентов macOS можно найти здесь для macos-11
агента и здесь для macos-12
агента.
Xcode
Если вы используете задачу Xcode , включенную в Azure Pipelines и TFS, вы можете выбрать версию Xcode в свойствах этой задачи. В противном случае, чтобы вручную задать версию Xcode для использования в пуле размещенных агентов macOS , перед xcodebuild
задачей сборки выполните эту командную строку в рамках сборки, заменив номер версии Xcode 13.2 при необходимости:
/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"
Версии Xcode в пуле размещенных агентов macOS можно найти здесь для macos-11
агента и здесь для macos-12
агента.
Эта команда не работает для приложений Xamarin. Чтобы вручную выбрать версию Xcode для создания приложений Xamarin, см. инструкции выше.
Mono
Чтобы вручную выбрать версию Mono для использования в пуле размещенных агентов macOS , выполните этот скрипт в каждом задании сборки перед задачей сборки Mono, указав символьную ссылку с требуемой версией Mono (список всех доступных символьных ссылок можно найти в разделе Xamarin выше):
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"