Поделиться через


Краткое руководство. Создание управляемого пула 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 , если вы не хотите использовать другую учетную запись.

  1. Войдите в Azure CLI.

    az login
    
  2. Если у вас несколько подписок Azure, задайте подписку Azure по умолчанию.

    az account set --subscription "My subscription name"
    

    Чтобы получить список подписок, выполните следующую команду.

    az account list -o table
    

    Если у вас несколько клиентов или вы хотите просмотреть дополнительные сведения о работе с подпиской Azure с помощью Azure CLI, см. сведения об управлении подписками Azure с помощью Azure CLI.

Определение переменных среды

  1. Выполните следующие команды, чтобы создать имена ресурсов в этом кратком руководстве. В этом примере используется 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"
    
  2. Выполните следующие команды, чтобы просмотреть имена ресурсов.

    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    echo $REGION
    

Создание или изменение группы ресурсов

  1. Выполните следующую команду, чтобы создать группу ресурсов, чтобы содержать ресурсы, используемые в этом кратком руководстве.

    az group create --name $RESOURCE_GROUP_NAME --location $REGION
    

Создание проекта центра разработки и центра разработки

  1. Установите расширение Azure CLI devcenter и убедитесь, что он обновлен до последней версии, если он уже установлен.

    az extension add --name devcenter --upgrade
    
  2. Выполните следующие команды, чтобы создать центр разработки и проект центра разработки.

    # 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 для создания пула.

  1. Создайте имя файла agent-profile.json со следующим содержимым.

    {
      "Stateless": {}
    }
    

    Эта конфигурация указывает агент без отслеживания состояния для пула.

  2. Создайте файл с именем 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 и типа диска ОПЕРАЦИОННОй системы "Стандартный " без подключенного диска данных.

  3. Создайте файл с именем 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

  1. mdp Установите расширение и убедитесь, что оно обновлено до последней версии, если оно уже установлено.

     az extension add --name mdp --upgrade
    
  2. Создайте управляемый пул 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

  1. Войдите на портал Azure.

  2. Найдите управляемые пулы DevOps и выберите его из доступных вариантов.

  3. Выберите новый управляемый пул DevOps из списка.

  4. Выберите представление JSON, чтобы просмотреть формат JSON ресурса Управляемых пулов DevOps.

    Снимок экрана: кнопка представления JSON в обзоре пула.

Просмотр пула агентов в Azure DevOps

  1. Перейдите на портал Azure DevOps и войдите в свою организацию Azure DevOps (https://dev.azure.com/{your-organization}).

  2. Перейдите к параметрам организации Azure DevOps>.

    Снимок экрана: кнопка

  3. Перейдите в пулы агентов Pipelines>и убедитесь, что в списке указан новый пул. Если вы только что создали пул Managed DevOps, в списке агентов может потребоваться несколько минут.

    Снимок экрана: список пулов агентов.

Запуск конвейера в новом пуле

На этом шаге мы создадим простой конвейер в репозитории по умолчанию проекта Azure DevOps и запустите его в новом управляемом пуле DevOps.

  1. Перейдите на портал Azure DevOps и войдите в свою организацию Azure DevOps (https://dev.azure.com/{your-organization}).

  2. Перейдите в проект, в котором вы хотите запустить конвейер, и выберите конвейеры.

    Снимок экрана: список проектов.

  3. Выберите новый конвейер (или создать конвейер, если это первый конвейер).

    Снимок экрана: новая кнопка конвейера.

  4. Выберите Azure Repos Git.

    Снимок экрана: типы репозитория.

  5. Выберите репозиторий с тем же именем, что и проект. В этом примере проект называется FabrikamFiber, поэтому мы выбираем репозиторий с тем же именем.

    Снимок экрана репозитория FabrikamFiber.

  6. Выберите конвейер Starter.

    Снимок экрана: список шаблонов конвейера.

  7. По умолчанию начальный шаблон использует агент 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
    
  8. Нажмите кнопку "Сохранить и запустить" и нажмите кнопку "Сохранить" и " Сохранить" во второй раз, чтобы подтвердить.

    Снимок экрана: кнопка сохранения и запуска.

  9. Если это первый запуск конвейера в этом пуле, вам может потребоваться предоставить разрешения перед запуском конвейера.

  10. Просмотрите запуск конвейера в Azure DevOps, и вы можете перейти на портал Azure и просмотреть запущенный агент в представлении агентов.

Очистка ресурсов

Если вы не собираетесь продолжать использовать это приложение, удалите группу ресурсов, центр разработки, проект центра разработки и управляемый пул DevOps. В этом кратком руководстве были созданы все ресурсы в новой группе ресурсов, поэтому их можно удалить с помощью команды az group delete для удаления группы ресурсов и всех его ресурсов.

az group delete -n $RESOURCE_GROUP_NAME

См. также