Azure Resource Manager (ARM) リソースを Azure Operator Service Manager (AOSM) ネットワーク サービス設計のバージョン (NSDV) に追加する

Azure Operator Service Manager (AOSM) を使用すると、ネットワーク関数定義バージョン (NFDV) と Azure Resource Manager (ARM) テンプレートをネットワーク サービス設計のバージョン (NSDV) に結合できます。 NSDV は、ネットワーク関数と実行に必要な Azure インフラストラクチャの両方を含むネットワーク サービスの単一のテンプレートになります。 オペレーターは、ネットワーク関数 (NF) とそのインフラストラクチャを 1 回の操作でデプロイできます。

この攻略ガイドでは、Azure CLI AOSM 拡張機能を使用して、コンテナー化されたネットワーク関数 (CNF) と Azure Resource Manager (ARM) リソースの両方を含む NSDV をビルドして発行する方法について説明します。

オンボードは複数ステップのプロセスです。 前提条件を満たしたことを確認し、Azure CLI AOSM 拡張機能で次の処理を行います。

  1. 以前にオンボードされた CNF 用の既存の NSDV 入力ファイルを変更します。
  2. AOSM リソース定義を作成するために必要な情報を入力ファイルに入力します。
  3. 入力ファイルと ARM テンプレートに基づいてネットワーク サービス設計のグループおよびバージョン (NSDV) を定義する BICEP ファイルを生成します。
  4. NSDV を発行し、ARM テンプレートを成果物ストア (AOSM で管理される Azure Container Registry (ACR)) にアップロードします。

この攻略ガイドでは、Azure リソースの例として Azure Key Vault (AKV) を使用しますが、どの Azure リソースも同じ手順でオンボードできます。 この記事では、NF の例として CNF を使用します。このプロセスは、仮想化ネットワーク機能 (VNF) の場合、NSDV の入力ファイルが若干異なるだけで、プロセスは同じです。

前提条件

  • Azure サブスクリプションで AOSM を有効にしました。
  • CNF が Azure Operator Nexus 上で実行されることを意図している場合は、Azure Operator Nexus インスタンスにアクセスでき、ワークロードのデプロイの前提条件を完了している必要があります。
  • CNF をオンボードし、CLI を実行するマシンのローカル ストレージに、az aosm nsd generate-config ファイルで生成した入力ファイルを取得済です。

権限の構成

  • リソース グループを作成するには、あなたのサブスクリプションに対する共同作成者ロール、または共同作成者ロールを持つ既存のリソース グループが必要です。
  • AOSM マネージド成果物ストアを含むサブスクリプションに対して、ContributorAcrPush ロールの割り当てが必要です。
    • 会社のポリシーによっては、サブスクリプションにスコープされたアクセス許可を持つことができなくなる場合があります。 az aosm nsd publish コマンドで使用できる --no-subscription-permissions パラメーターは、AOSM サービスから派生した厳密なスコープのアクセス許可を使用して、ローカル コンピューターとの間で 2 ステップのコピーを調整します。 この 2 ステップのコピーは低速ですが、サブスクリプションにスコープされたアクセス許可は必要ありません。

ARM テンプレート

  • CLI を実行するマシンのローカル ストレージに存在する、デプロイする Azure リソースを定義する ARM テンプレートが必要です。
  • NSDV をデプロイするオペレーターに公開するパラメーターは、ARM テンプレートでパラメーターとして定義する必要があります。

Note

Az CLI AOSM 拡張機能では、BICEP テンプレートで定義されている Azure リソースのオンボードはサポートされていません。 ただし、bicep build コマンドを使用して、BICEP ファイルを ARM テンプレートに変換できます。 詳細と手順については、bicep CLI のドキュメントをご覧ください。

Helm と Docker エンジン

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

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 環境を使用してください。

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

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

  1. CNF のオンボード時に生成した NSDV 入力ファイルを開きます。

    Note

    CNF オンボードからの NSDV 入力ファイルがない場合は、az aosm nsd generate-config --output-file <nsd-output-filename.jsonc> コマンドを使用して新しい入力ファイルを生成できます。

  2. 入力ファイルのインライン コメントを使用して、必要な値を入力します。 この例では、架空の Contoso NSDV 用の Az CLI AOSM 拡張入力ファイルを示します。このファイルを使用して、架空の Contoso CNF を、Arc に接続された Nexus Kubernetes クラスターと Azure の場所の AKV インスタンスにデプロイできます。

    {
        // 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",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-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-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-cnf NFD and an Azure Key Vault",
        // 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",
                    // 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-cnf-nfd",
                    // 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": "cnf"
                }
            },
            {
                // Type of Resource Element. Either NF or ArmTemplate
                "resource_element_type": "ArmTemplate",
                // Properties of the Resource Element.
                "properties": {
                    // Name of the artifact. Used as internal reference only.
                    "artifact_name": "contoso-keyvault",
                    // 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": "./contoso-keyvault.json"
                }
            }
        ]
    }
    

    Note

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

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

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

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

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

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

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

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

次のステップ