Azure Operator Nexus にデプロイするための仮想化されたネットワーク機能 (VNF) を Azure Operator Service Manager (AOSM) にオンボードする

この攻略ガイドでは、ネットワーク機能パブリッシャーとサービス デザイナーが Azure CLI AOSM 拡張機能を使用して、仮想化されたネットワーク機能を AOSM にオンボードする方法について学習します。 この VNF は、後で Azure Operator Nexus にデプロイできます。 オンボードは複数ステップのプロセスです。 前提条件を満たしたら、Azure CLI AOSM 拡張機能を使用して次の処理を行います。

  1. ネットワーク機能定義 (NFD) のグループとバージョンを定義する BICEP ファイルを生成します。
  2. NFD を発行し、VNF イメージを成果物ストア (AOSM マネージド Azure Container Registry (ACR)) にアップロードします。
  3. 発行された NFD を、ネットワーク サービス設計 (NSD) のグループとバージョンを定義する BICEP ファイルに追加します。
  4. NSD を発行します。

前提条件

Note

VNF を AOSM にオンボードする前に、Azure Operator Nexus インスタンスで VM のデプロイが成功するかどうかをテストすることを強くお勧めします。

Azure Operator Nexus 仮想マシン (VM) イメージと Azure Resource Manager (ARM) テンプレート

  • Azure Operator Nexus 仮想マシンのイメージを作成しました。 このイメージは ACR で使用できる必要があります。

  • Azure Operator Nexus 仮想マシンをデプロイする ARM テンプレートを作成しました。

  • VM ARM テンプレート (AzureCore と Azure Operator Nexus の両方用) は、次のリソース プロバイダーからの ARM リソースのみをデプロイできます

    • Microsoft.Compute
    • Microsoft.Network
    • Microsoft.NetworkCloud
    • Microsoft.Storage
    • Microsoft.NetworkFabric
    • Microsoft.Authorization
    • Microsoft.ManagedIdentity
  • VNF ARM テンプレートでは、1 つの VM をデプロイする必要があります。 NSDV に NFDV の複数のインスタンスを含めることで、複数の VM をデプロイできます。

権限の構成

  • リソース グループを作成するためのあなたのサブスクリプションに対する共同作成者ロール、または共同作成者ロールを持つ既存のリソース グループが必要です。
  • イメージを含むソース ACR で Reader/AcrPull ロールの割り当てが必要です。
  • AOSM マネージド成果物ストアを含むサブスクリプションに対して、Contributor および AcrPush ロールの割り当てが必要です。 これらのアクセス許可により、Azure CLI AOSM 拡張機能は ACR 間の直接コピーを実行できるようになります。 直接コピーは、ACR 間でイメージを転送する最速の方法です。
    • 会社のポリシーによっては、サブスクリプションにスコープされたアクセス許可を持つことができなくなる場合があります。 az aosm nfd publish および az aosm nsd publish コマンドで使用できる --no-subscription-permissions パラメーターは、AOSM サービスから派生した厳密なスコープのアクセス許可を使用して、ローカル コンピューターとの間で 2 ステップのコピーを調整します。 この 2 ステップのコピーは低速ですが、サブスクリプションにスコープされたアクセス許可は必要ありません。

Azure CLI のダウンロードとインストール

Azure CLI をローカルにインストールするには、「Azure CLI をインストールする方法」を参照してください。

Azure CLI にサインインするには、az login コマンドを使用し、ターミナルに表示されるプロンプトを完了して認証を完了します。 その他のサインイン オプションについては、「Azure CLI を使用してサインインする」を参照してください。

Note

Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。 Azure Cloud Shell で Bash 環境を使用することもできます。 詳細については、「Cloud Shell を開始する」を参照して Azure Cloud Shell で Bash 環境を使用してください。

Helm と Docker エンジン

  • ホスト コンピューターに Helm CLI をインストールします。 Helm v3.8.0 以降を使用する必要があります。
  • ホスト コンピューターに Docker をインストールします。

AOSM CLI 拡張機能をインストールする

Az CLI AOSM 拡張機能には、Azure CLI のバージョン 2.54.0 以降が必要です。

  1. az version を実行し、インストールされているバージョンおよび依存ライブラリを表示します。
  2. az upgrade を実行し、Azure CLI の現在のバージョンにアップグレードします。

次のコマンドを使用して、AOSM CLI 拡張機能をインストールします。

az extension add --name aosm

ネットワーク機能定義のグループとバージョンをビルドする

このセクションでは、ネットワ機能定義のグループとバージョンを定義する AOSM リソースの BICEP テンプレートと成果物ストアを使用して、vnf-cli-output という名前のフォルダーを作業ディレクトリに作成します。 これらのリソースは最終的に、ネットワーク サービス設計に含まれます

  1. VNF 用の Azure CLI AOSM 拡張機能の入力ファイルを生成します。

    az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
    
  2. 前の手順で生成した入力ファイルを開き、インライン コメントを使用して必要な値を入力します。 この例では、Azure Operator Nexus で実行される架空の Contoso VNF の Azure CLI AOSM 拡張機能の入力ファイルを示します。

    Note

    Azure CLI AOSM 拡張機能では、既定で入力 ARM テンプレートに既定値なしで必要なパラメーターのみが公開されます。 expose_all_parameterstrue に設定して、ネットワーク機能定義バージョン (NFDV) と構成グループ スキーマ (CGS) 内のすべての ARM テンプレート パラメーターを公開できます。 詳細については、「AOSM CLI 拡張機能 を使用したパラメーターの公開」を参照してください。

    {
        // Azure location to use when creating resources e.g uksouth
        "location": "eastus",
        // Name of the Publisher resource you want your definition published to.
        // Will be created if it does not exist.
        "publisher_name": "contoso",
        // Resource group for the Publisher resource.
        // Will be created if it does not exist.
        "publisher_resource_group_name": "contoso-vnf",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-vnf-artifact-store",
        // Name of the network function.
        "nf_name": "contoso-vnf",
        // Version of the network function definition in 1.1.1 format (three integers separated by dots).
        "version": "1.0.0",
        // If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults.
        // If not set or set to false, only required parameters without defaults will be exposed.
        "expose_all_parameters": false,
        // ARM template configuration. The ARM templates given here would deploy a VM if run. They will be used to generate the VNF.
        "arm_templates": [
            {
                // Name of the artifact. Used as internal reference only.
                "artifact_name": "contoso-vnf",
                // Version of the artifact in 1.1.1 format (three integers separated by dots).
                "version": "1.0.0",
                // File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
                // Use Linux slash (/) file separator even if running on Windows.
                "file_path": "/home/contoso-vnf/contoso-vnf-arm-template.json"
            }
        ],
        // List of images to be pulled from the acr registry.
        // You must provide the source acr registry, the image name and the version.
        // For example: 'sourceacr.azurecr.io/imagename:imageversion'.
        "images": ["contoso-vnf.azurecr.io/contosovnf:1.0.0"]
    }```
    
    
  3. 次のコマンドを実行して、ネットワーク機能定義のグループとバージョンをビルドします。

az aosm nfd build --definition-type vnf-nexus --config-file <filename.jsonc>

ネットワーク機能定義のグループとバージョンを発行する

この手順では、ネットワーク機能の VM イメージの保存に使用されるネットワーク機能定義と成果物ストアを定義する AOSM リソースを作成します。 また、ソース ACR からイメージを直接コピーすることで、または、サブスクリプション スコープの Contributor および AcrPush ロールがない場合は、Docker イメージをローカルに再タグ付けし、AOSM サービスから生成された厳密にスコープされた資格情報を使用して成果物ストアにアップロードすることで、イメージを成果物ストアにアップロードします。

  1. 次のコマンドを実行して、ネットワーク機能定義のグループとバージョンを発行します。 サブスクリプション スコープの Contributor および AcrPush ロールがない場合は、コマンド --no-subscription-permissions をに含めます。
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf

フォルダーとファイルの構造を確認し、必要に応じて変更を加えることができます。

ネットワーク サービス設計のグループとバージョンをビルドする

このセクションでは、nsd-cli-output という名前のフォルダーを作業ディレクトリに作成します。 このフォルダーには、ネットワーク サービス設計のグループとバージョンを定義する AOSM リソースの BICEP テンプレートが含まれます。 このネットワーク サービス設計は、前のセクションでオンボードしたネットワーク機能をデプロイするサイト ネットワーク サービス リソースで使用されるテンプレートです。

  1. Azure CLI AOSM 拡張機能の NSD 入力ファイルを生成します。

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. 前の手順で生成した入力ファイルを開き、インライン コメントを使用して必要な値を入力します。 生成された入力ファイルには、ArmTemplate 型の追加の resource_element_typeが含まれます。 これは、VNF のオンボード時には不要であり、削除できます。 この例では、架空の Contoso VNF を Azure Operator Nexus インスタンスにデプロイするために使用できる架空の Contoso NSD の Azure CLI AOSM 拡張機能の入力ファイルを示します。

    {
        // Azure location to use when creating resources e.g uksouth
        "location": "eastus",
        // Name of the Publisher resource you want your definition published to.
        // Will be created if it does not exist.
        "publisher_name": "contoso",
        // Resource group for the Publisher resource.
        // Will be created if it does not exist.
        "publisher_resource_group_name": "contoso-vnf",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-vnf-artifact-store",
        // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
        "nsd_name": "contoso-vnf-nsd",
        // Version of the NSD to be created. This should be in the format A.B.C
        "nsd_version": "1.0.0",
        // Optional. Description of the Network Service Design Version (NSDV).
        "nsdv_description": "An NSD that deploys the onboarded contoso-vnf NFD",
        // List of Resource Element Templates (RETs).
        // There must be at least one NF RET.
        // ArmTemplate RETs are optional. Delete if not required.
        "resource_element_templates": [
            {
                // Type of Resource Element. Either NF or ArmTemplate
                "resource_element_type": "NF",
                "properties": {
                    // The name of the existing publisher for the NSD.
                    "publisher": "contoso",
                    // The resource group that the publisher is hosted in.
                    "publisher_resource_group": "contoso-vnf",
                    // The name of the existing Network Function Definition Group to deploy using this NSD.
                    // This will be the same as the NF name if you published your NFDV using the CLI.
                    "name": "contoso-vnf",
                    // The version of the existing Network Function Definition to base this NSD on.
                    // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version.
                    "version": "1.0.0",
                    // The region that the NFDV is published to.
                    "publisher_offering_location": "eastus",
                    // Type of Network Function. Valid values are 'cnf' or 'vnf'.
                    "type": "vnf"
                }
            }
        ]
    }
    

    Note

    リソース要素テンプレート セクションでは、NSD に含める NFD を定義します。 プロパティは、az aosm nfd build コマンドに渡される入力ファイルで使用されているものと一致する必要があります。 これは、NSD をビルドする際に、Azure CLI AOSM 拡張機能によって NFD が正しくオンボードされたことが検証されるためです。

  3. 次のコマンドを実行して、ネットワーク サービス設計のグループとバージョンの BICEP テンプレートをビルドします。

az aosm nsd build --config-file <nsd-output-filename.jsonc>

フォルダーとファイルの構造を確認し、必要に応じて変更を加えることができます。

ネットワーク サービス設計 (NSD) を公開する

この手順では、ネットワーク サービス設計のグループとバージョンを定義する AOSM リソースを作成します。 また、NSD で必要な成果物を成果物ストア (ネットワーク機能 ARM テンプレート) にアップロードします。

  1. 次のコマンドを実行して、ネットワーク サービス設計のグループとバージョンを発行します。 サブスクリプション スコープの Contributor および AcrPush ロールがない場合は、コマンド --no-subscription-permissions をに含めます。
az aosm nsd publish --build-output-folder nsd-cli-output

これで、AOSM パブリッシャー リソースの完全なセットが完成し、オペレーター フローを実行する準備が整いました。

次のステップ