Краткое руководство. Создание управляемого пула DevOps с помощью Azure CLI
В этой статье показано, как создать управляемый пул DevOps с помощью Azure CLI и запустить конвейер в нем.
Необходимые компоненты
Прежде чем выполнить действия, описанные в этой статье, необходимо настроить подписку Azure и организацию Azure DevOps для использования с управляемыми пулами DevOps, как описано в статье "Предварительные требования". Эти действия необходимо выполнить только один раз для каждой подписки Azure и организации Azure DevOps.
Установка или запуск в Azure Cloud Shell
Самый простой способ узнать, как использовать Azure CLI, — запустить среду Bash в Azure Cloud Shell через браузер. Дополнительные сведения о Cloud Shell см. в кратком руководстве по Bash в Azure Cloud Shell.
Когда вы будете готовы установить Azure CLI, ознакомьтесь с инструкциями по установке контейнера Windows, Linux, macOS и Docker.
Проверьте версию, выполнив команду az --version
. Azure Cloud Shell всегда имеет последнюю версию предварительно установленного интерфейса командной строки Azure.
az version
Вход в Azure CLI
Откройте командную строку (в Windows, используйте командную строку Windows или PowerShell) и выполните следующие команды. Если вы используете Azure Cloud Shell , вам не нужно работать az login
, если вы не хотите использовать другую учетную запись.
Войдите в Azure CLI.
az login
Если у вас несколько подписок Azure, задайте подписку Azure по умолчанию.
az account set --subscription "My subscription name"
Чтобы получить список подписок, выполните следующую команду.
az account list -o table
Если у вас несколько клиентов или вы хотите просмотреть дополнительные сведения о работе с подпиской Azure с помощью Azure CLI, см. сведения об управлении подписками Azure с помощью Azure CLI.
Определение переменных среды
Выполните следующие команды, чтобы создать имена ресурсов в этом кратком руководстве. В этом примере используется
EastUS2
регион. ЗаменитеEastUS2
нужным регионом.export RANDOM_ID="$(openssl rand -hex 3)" export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID" export REGION=EastUS2 export POOL_NAME="mdpPool$RANDOM_ID" export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID" export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
Выполните следующие команды, чтобы просмотреть имена ресурсов.
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
Создание или изменение группы ресурсов
Выполните следующую команду, чтобы создать группу ресурсов, чтобы содержать ресурсы, используемые в этом кратком руководстве.
az group create --name $RESOURCE_GROUP_NAME --location $REGION
Создание проекта центра разработки и центра разработки
Установите расширение Azure CLI
devcenter
и убедитесь, что он обновлен до последней версии, если он уже установлен.az extension add --name devcenter --upgrade
Выполните следующие команды, чтобы создать центр разработки и проект центра разработки.
# Create a dev center az devcenter admin devcenter create -n $DEV_CENTER_NAME \ -g $RESOURCE_GROUP_NAME \ -l $REGION # Save the id of the newly created dev center DEVCID=$( \ az devcenter admin devcenter show -n $DEV_CENTER_NAME \ -g $RESOURCE_GROUP_NAME \ --query id -o tsv) # Create a dev center project az devcenter admin project create -n $DEV_CENTER_PROJECT_NAME \ --description "My dev center project." \ -g $RESOURCE_GROUP_NAME \ -l $REGION \ --dev-center-id $DEVCID # Save the dev center project for use when creating # the Managed DevOps Pool DEVCPID=$( \ az devcenter admin project show -n $DEV_CENTER_PROJECT_NAME \ -g $RESOURCE_GROUP_NAME \ --query id -o tsv)
Через несколько секунд выходные данные указывают на то, что центр разработки был создан. Созданный
id
центр разработки сохраняетсяDEVCID
и используется для создания проекта центра разработки.{ "devCenterUri": "https://...", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/devcenters/devCenterName", "location": "eastus", "name": "devCenterName", "provisioningState": "Succeeded", "resourceGroup": "resourceGroupName", "systemData": { ... }, "type": "microsoft.devcenter/devcenters" }
Через несколько секунд выходные данные указывают на то, что проект центра разработки был создан. Созданный
id
проект центра разработки сохраняетсяDEVCPID
и используется при создании управляемого пула DevOps в следующем разделе.{ "description": "My dev center project.", "devCenterId": "...", "devCenterUri": "https://...", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/projects/devCenterProjectName", "location": "eastus", "name": "devCenterProjectName", "provisioningState": "Succeeded", "resourceGroup": "resourceGroupName", "systemData": { ... }, "type": "microsoft.devcenter/projects" }
Подготовка файлов конфигурации управляемого пула DevOps
Метод mdp pool create
имеет несколько параметров, которые принимают значения JSON, которые настраивают различные аспекты пула.
agent-profile
указывает, является ли пул отслеживанием состояния или без отслеживания состояния и содержит расписание резервного агента. Это словарь с одним ключом с именемStateful
илиStateless
в зависимости от требуемой конфигурации агента. Дополнительные сведения о свойствах см. вagent-profile
разделе "Настройка масштабирования".fabric-profile
указывает размер агента, образы виртуальных машин, диск ОС и подключенное хранилище. Дополнительные сведения о свойствах см. вfabric-profile
разделе "Настройка параметров пула " и "Настройка дополнительного хранилища".organization-profile
указывает организации и проекты Azure DevOps, которые могут использовать пул. Дополнительные сведения о параметрах см. вorganization-profile
разделе "Настройка параметров безопасности" — настройка доступа к организации.
Создайте следующие три файла и сохраните их в папке, в которой планируется запустить команды Azure CLI для создания пула.
Создайте имя файла agent-profile.json со следующим содержимым.
{ "Stateless": {} }
Эта конфигурация указывает агент без отслеживания состояния для пула.
Создайте файл с именем fabric-profile.json со следующим содержимым.
{ "vmss": { "sku": { "name": "Standard_D2as_v5" }, "images": [ { "aliases": [ "ubuntu-22.04" ], "buffer": "*", "wellKnownImageName": "ubuntu-22.04/latest" } ], "osProfile": { "secretsManagementSettings": { "observedCertificates": [], "keyExportable": false }, "logonType": "Service" }, "storageProfile": { "osDiskStorageAccountType": "Standard", "dataDisks": [] } } }
Эта конфигурация указывает пул с помощью образа Standard_D2as_v5, образа Ubuntu-22.04 Azure Pipelines и типа диска ОПЕРАЦИОННОй системы "Стандартный " без подключенного диска данных.
Создайте файл с именем organization-profile.json со следующим содержимым. Замените
<organization-name>
именем организации Azure DevOps.{ "azure-dev-ops": { "organizations": [ { "url": "https://dev.azure.com/<organization-name>", "projects": [], "parallelism": 1 } ], "permissionProfile": { "kind": "CreatorOnly" } } }
Эта конфигурация указывает пул, доступный для всех проектов в организации Azure DevOps.
Создание управляемого пула DevOps
mdp
Установите расширение и убедитесь, что оно обновлено до последней версии, если оно уже установлено.az extension add --name mdp --upgrade
Создайте управляемый пул DevOps, выполнив следующую команду az mdp pool create .
az mdp pool create -n $POOL_NAME \ -g $RESOURCE_GROUP_NAME \ -l $REGION \ --devcenter-project-id $DEVCPID \ --maximum-concurrency 1 \ --agent-profile agent-profile.json \ --fabric-profile fabric-profile.json \ --organization-profile organization-profile.json
Если у вашей подписки нет емкости для настройки пула с требуемым номером SKU виртуальной машины Azure и максимальным числом агентов, создание пула завершается ошибкой, аналогичной приведенному ниже сообщению.
Cores needed to complete this request is 2, which exceeds the current limit of 0 for SKU family standardDDSv4Family in region eastus. Please choose a different region if possible, or request additional quota at https://portal.azure.com/#view/Microsoft_Azure_Support/NewSupportRequestV3Blade/issueType/quota/subscriptionId/subscription_id_placeholder/topicId/3eadc5d3-b59a-3658-d8c6-9c729ba35b97
. Чтобы устранить проблему, ознакомьтесь с квотами управляемых пулов DevOps.
Просмотр созданного пула в портал Azure
Войдите на портал Azure.
Найдите управляемые пулы DevOps и выберите его из доступных вариантов.
Выберите новый управляемый пул DevOps из списка.
Выберите представление JSON, чтобы просмотреть формат JSON ресурса Управляемых пулов DevOps.
Просмотр пула агентов в Azure DevOps
Перейдите на портал Azure DevOps и войдите в свою организацию Azure DevOps (
https://dev.azure.com/{your-organization}
).Перейдите к параметрам организации Azure DevOps>.
Перейдите в пулы агентов Pipelines>и убедитесь, что в списке указан новый пул. Если вы только что создали пул Managed DevOps, в списке агентов может потребоваться несколько минут.
Запуск конвейера в новом пуле
На этом шаге мы создадим простой конвейер в репозитории по умолчанию проекта Azure DevOps и запустите его в новом управляемом пуле DevOps.
Перейдите на портал Azure DevOps и войдите в свою организацию Azure DevOps (
https://dev.azure.com/{your-organization}
).Перейдите в проект, в котором вы хотите запустить конвейер, и выберите конвейеры.
Выберите новый конвейер (или создать конвейер, если это первый конвейер).
Выберите Azure Repos Git.
Выберите репозиторий с тем же именем, что и проект. В этом примере проект называется FabrikamFiber, поэтому мы выбираем репозиторий с тем же именем.
Выберите конвейер Starter.
По умолчанию начальный шаблон использует агент Linux, размещенный корпорацией Майкрософт. Измените шаблон конвейера и измените
pool
раздел, чтобы он ссылается на пул, созданный на предыдущих шагах.# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
В этом примере управляемые пулы DevOps называются
fabrikam-managed-pool
, поэтому заменитеvmImage: ubuntu-latest
егоname: fabrikam-managed-pools
и укажите имя управляемого пула DevOps.# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
Нажмите кнопку "Сохранить и запустить" и нажмите кнопку "Сохранить" и " Сохранить" во второй раз, чтобы подтвердить.
Если это первый запуск конвейера в этом пуле, вам может потребоваться предоставить разрешения перед запуском конвейера.
Просмотрите запуск конвейера в Azure DevOps, и вы можете перейти на портал Azure и просмотреть запущенный агент в представлении агентов.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, удалите группу ресурсов, центр разработки, проект центра разработки и управляемый пул DevOps. В этом кратком руководстве были созданы все ресурсы в новой группе ресурсов, поэтому их можно удалить с помощью команды az group delete для удаления группы ресурсов и всех его ресурсов.
az group delete -n $RESOURCE_GROUP_NAME