Краткое руководство. Завершение необходимых компонентов для развертывания виртуализированной сетевой функции в Диспетчере служб оператора Azure

Прежде чем приступить к использованию Диспетчера служб оператора Azure, убедитесь, что вы зарегистрировали необходимых поставщиков ресурсов и установили необходимые средства для взаимодействия со службой.

Необходимые компоненты

Обратитесь к группе учетной записи Майкрософт, чтобы зарегистрировать подписку Azure для доступа к Azure Operator Service Manager (AOSM) или выразить свой интерес с помощью формы регистрации партнера.

Скачивание и установка Azure CLI

Среду Bash можно использовать в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

Если вы предпочитаете локально запускать справочные команды CLI, установите Azure CLI с помощью инструкции по установке Azure CLI.

Если вы работаете на компьютере под управлением Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

Для локальной az login установки войдите в Azure CLI с помощью команды.

Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других параметрах входа см. в статье "Вход с помощью Azure CLI".

Вход с помощью Azure CLI

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

az login

Выбор подписки

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

az account set --subscription "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Установка расширения CLI для оператора Azure Service Manager (AOSM)

Чтобы установить расширение ИНТЕРФЕЙСА командной строки диспетчера операторов Azure, выполните следующую команду.

az extension add --name aosm

Выполните команду az version , чтобы определить версию и зависимые библиотеки. Выполните обновление до последней версии, выполнив команду az upgrade.

Регистрация необходимых поставщиков ресурсов

Перед использованием Диспетчера служб оператора Azure необходимо сначала зарегистрировать необходимых поставщиков ресурсов, выполнив эти команды. Процесс регистрации может занять до 5 минут.

# Register Resource Provider
az provider register --namespace Microsoft.HybridNetwork
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.ContainerInstance

Проверка состояния регистрации

Чтобы проверить состояние регистрации поставщиков ресурсов, можно выполнить следующие команды:

# Query the Resource Provider
az provider show -n Microsoft.HybridNetwork --query "{RegistrationState: registrationState, ProviderName: namespace}"
az provider show -n Microsoft.ContainerRegistry --query "{RegistrationState: registrationState, ProviderName: namespace}"
az provider show -n Microsoft.ContainerInstance --query "{RegistrationState: registrationState, ProviderName: namespace}"

После успешного выполнения отображаются следующие выходные данные:

{
  "ProviderName": "Microsoft.HybridNetwork",
  "RegistrationState": "Registered"
}
{
  "ProviderName": "Microsoft.ContainerRegistry",
  "RegistrationState": "Registered"
}
{
  "ProviderName": "Microsoft.ContainerInstance",
  "RegistrationState": "Registered"
}

Примечание.

Для завершения регистрации поставщика ресурсов может потребоваться несколько минут. После успешной регистрации можно начать работу с диспетчером сетевых функций (NFM) или Диспетчером служб оператора Azure.

Требования к функции виртуальная сеть (VNF)

Скачивание и извлечение образа Ubuntu

Если у вас уже есть образ Ubuntu, доступный через URL-адрес SAS в хранилище BLOB-объектов Azure, можно сэкономить время, опустив этот шаг. Имейте в виду, что образ Ubuntu доступен примерно в 650 МБ, поэтому процесс передачи может занять некоторое время.

# Download the Ubuntu image
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-azure.vhd.tar.gz

# Extract the downloaded image
tar -xzvf jammy-server-cloudimg-amd64-azure.vhd.tar.gz

Шаблон ARM виртуальной машины

В этом кратком руководстве используется следующий пример шаблона ARM для виртуальной машины Ubuntu.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.21.1.54444",
      "templateHash": "2626436546580286549"
    }
  },
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "subnetName": {
      "type": "string"
    },
    "ubuntuVmName": {
      "type": "string",
      "defaultValue": "ubuntu-vm"
    },
    "virtualNetworkId": {
      "type": "string"
    },
    "sshPublicKeyAdmin": {
      "type": "string"
    },
    "imageName": {
      "type": "string"
    }
  },
  "variables": {
    "imageResourceGroup": "[resourceGroup().name]",
    "subscriptionId": "[subscription().subscriptionId]",
    "vmSizeSku": "Standard_D2s_v3"
  },
  "resources": [
    {
      "type": "Microsoft.Network/networkInterfaces",
      "apiVersion": "2021-05-01",
      "name": "[format('{0}_nic', parameters('ubuntuVmName'))]",
      "location": "[parameters('location')]",
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "subnet": {
                "id": "[format('{0}/subnets/{1}', parameters('virtualNetworkId'), parameters('subnetName'))]"
              },
              "primary": true,
              "privateIPAddressVersion": "IPv4"
            }
          }
        ]
      }
    },
    {
      "type": "Microsoft.Compute/virtualMachines",
      "apiVersion": "2021-07-01",
      "name": "[parameters('ubuntuVmName')]",
      "location": "[parameters('location')]",
      "properties": {
        "hardwareProfile": {
          "vmSize": "[variables('vmSizeSku')]"
        },
        "storageProfile": {
          "imageReference": {
            "id": "[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('subscriptionId'), variables('imageResourceGroup')), 'Microsoft.Compute/images', parameters('imageName'))]"
          },
          "osDisk": {
            "osType": "Linux",
            "name": "[format('{0}_disk', parameters('ubuntuVmName'))]",
            "createOption": "FromImage",
            "caching": "ReadWrite",
            "writeAcceleratorEnabled": false,
            "managedDisk": "[json('{\"storageAccountType\": \"Premium_LRS\"}')]",
            "deleteOption": "Delete",
            "diskSizeGB": 30
          }
        },
        "osProfile": {
          "computerName": "[parameters('ubuntuVmName')]",
          "adminUsername": "azureuser",
          "linuxConfiguration": {
            "disablePasswordAuthentication": true,
            "ssh": {
              "publicKeys": [
                {
                  "path": "/home/azureuser/.ssh/authorized_keys",
                  "keyData": "[parameters('sshPublicKeyAdmin')]"
                }
              ]
            },
            "provisionVMAgent": true,
            "patchSettings": {
              "patchMode": "ImageDefault",
              "assessmentMode": "ImageDefault"
            }
          },
          "secrets": [],
          "allowExtensionOperations": true
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces', format('{0}_nic', parameters('ubuntuVmName')))]"
            }
          ]
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Network/networkInterfaces', format('{0}_nic', parameters('ubuntuVmName')))]"
      ]
    }
  ]
}

Сохраните предыдущий json-файл как ubuntu-template.json на локальном компьютере.

Следующие шаги