このハウツー ガイドでは、ネットワーク関数パブリッシャーとサービス デザイナーが Azure CLI AOSM 拡張機能を使用して、仮想化されたネットワーク関数を AOSM にオンボードする方法について説明します。 この VNF は、その後 、Azure Operator Nexus にデプロイできます。 オンボーディングは複数ステップのプロセスです。 前提条件を満たしたら、Azure CLI AOSM 拡張機能を使用して次の処理を行います。
- ネットワーク関数定義グループとバージョン (NFD) を定義する Bicep ファイルを生成します。
- NFD を発行し、VNF イメージをアーティファクト ストア (AOSM で管理される Azure Container Registry (ACR)) にアップロードします。
- 公開された NFD を、ネットワーク サービス デザイン グループとバージョン (NSD) を定義する Bicep ファイルに追加します。
- NSD を発行します。
[前提条件]
- Azure Operator Nexus インスタンスにアクセスでき、 ワークロードのデプロイの前提条件を満たしている。
- Azure サブスクリプションで AOSM が有効になっています。
注
VNF を AOSM にオンボードする前に、Azure Operator Nexus インスタンスで VM のデプロイが成功することをテストすることを強くお勧めします。
Azure Operator Nexus 仮想マシン (VM) イメージと Azure Resource Manager (ARM) テンプレート
Azure Operator Nexus 仮想マシンのイメージを作成しました。 このイメージは ACR で使用できる必要があります。
VM ARM テンプレート (AzureCore と Azure Operator Nexus の両方) は、次のリソース プロバイダーからの ARM リソースのみをデプロイできます
- Microsoft.Compute
- Microsoft.Network
- Microsoft.NetworkCloud
- Microsoft.Storage
- マイクロソフト・ネットワークファブリック
- Microsoft.Authorization
- Microsoft.ManagedIdentity
VNF ARM テンプレートでは、1 つの VM をデプロイする必要があります。 NSDV に NFDV の複数のインスタンスを含めることで、複数の VM をデプロイできます。
アクセス許可を構成する
- リソース グループまたは共同作成者ロールを持つ既存のリソース グループを作成するには、サブスクリプションに対する共同作成者ロールが必要です。
- イメージを含むソース ACR で
Reader
/AcrPull
ロールの割り当てが必要です。 - AOSM マネージド アーティファクト ストアを含むサブスクリプションに対して、
Contributor
ロールとAcrPush
ロールの割り当てが必要です。 これらのアクセス許可により、Azure CLI AOSM 拡張機能は ACR から ACR への直接コピーを実行できます。 直接コピーは、ある ACR から別の ACR に画像を転送する最速の方法です。- 貴社のポリシーによって、サブスクリプションに関連する権限が付与されないことがあります。
--no-subscription-permissions
コマンドとaz aosm nfd publish
コマンドで使用できるaz aosm nsd publish
パラメーターは、AOSM サービスから派生した厳密なスコープのアクセス許可を使用して、ローカル コンピューターとの間で2段階コピーを調整します。 この2段階のコピーは遅いですが、サブスクリプション範囲のアクセス許可は必要ありません。
- 貴社のポリシーによって、サブスクリプションに関連する権限が付与されないことがあります。
Azure CLI のダウンロードとインストール
Azure CLI をローカルにインストールするには、「 Azure CLI をインストールする方法」を参照してください。
Azure CLI にサインインするには、 az login
コマンドを使用し、ターミナルに表示されるプロンプトを完了して認証を完了します。 その他のサインイン オプションについては、「Azure CLI を使用してサインインする」を参照してください。
注
Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。 Azure Cloud Shell で Bash 環境を使用することもできます。 詳細については、「Cloud Shell を開始する」を参照して Azure Cloud Shell で Bash 環境を使用してください。
Helm と Docker エンジン
AOSM CLI 拡張機能をインストールする
Az CLI AOSM 拡張機能には、Azure CLI のバージョン 2.54.0 以降が必要です。
-
az version
を実行し、インストールされているバージョンおよび依存ライブラリを表示します。 -
az upgrade
を実行し、Azure CLI の現在のバージョンにアップグレードします。
次のコマンドを使用して、AOSM CLI 拡張機能をインストールします。
az extension add --name aosm
ネットワーク関数定義グループとバージョンをビルドする
このセクションでは、ネットワーク関数定義グループとバージョンを定義する AOSM リソースの Bicep ファイルとアーティファクト ストアを使用して、 vnf-cli-output
という名前の作業ディレクトリにフォルダーを作成します。 これらのリソースは最終的にネットワーク サービス設計に含まれます
VNF の Azure CLI AOSM 拡張機能入力ファイルを生成します。
az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
前の手順で生成した入力ファイルを開き、インライン コメントを使用して必要な値を入力します。 この例では、Azure Operator Nexus で実行される架空の Contoso VNF の Az CLI AOSM 拡張入力ファイルを示します。
注
Azure CLI AOSM 拡張機能では、既定で入力 ARM テンプレートに既定値なしで必要なパラメーターのみが公開されます。
expose_all_parameters
をtrue
に設定して、ネットワーク関数定義バージョン (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"] }```
次のコマンドを実行して、ネットワーク関数定義グループとバージョンをビルドします。
az aosm nfd build --definition-type vnf-nexus --config-file <filename.jsonc>
ネットワーク関数定義グループとバージョンを公開する
この手順では、ネットワーク関数の定義を定義する AOSM リソースと、ネットワーク関数の VM イメージの格納に使用される成果物ストアを作成します。 また、ソース ACR から直接コピーするか、サブスクリプション スコープの Contributor
および AcrPush
ロールがない場合は、Docker イメージをローカルに再タグ付けし、AOSM サービスから生成された厳密にスコープされた資格情報を使用してアーティファクト ストアにアップロードすることで、成果物ストアにイメージをアップロードします。
- 次のコマンドを実行して、ネットワーク関数定義グループとバージョンを発行します。 サブスクリプション スコープの
Contributor
ロールとAcrPush
ロールがない場合は、コマンドに--no-subscription-permissions
を含めます。
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
フォルダーとファイルの構造を確認し、必要に応じて変更を加えることができます。
ネットワーク サービス デザイン グループとバージョンを構築する
このセクションでは、 nsd-cli-output
という名前の作業ディレクトリにフォルダーを作成します。 このフォルダーには、ネットワーク サービス デザイン グループとバージョンを定義する AOSM リソースの Bicep ファイルが含まれています。 このネットワーク サービス設計は、前のセクションでオンボードしたネットワーク関数をデプロイする Site Network Service リソースで使用されるテンプレートです。
Azure CLI AOSM 拡張機能 NSD 入力ファイルを生成します。
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
前の手順で生成した入力ファイルを開き、インライン コメントを使用して必要な値を入力します。 生成された入力ファイルには、
resource_element_type
型の追加のArmTemplate
が含まれています。 これは、VNF のオンボード時には不要です。削除できます。 この例では、架空の Contoso VNF を Azure Operator Nexus インスタンスにデプロイするために使用できる架空の Contoso NSD の Az 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" } } ] }
注
リソース要素テンプレート セクションでは、NSD に含める NFD を定義します。 プロパティは、
az aosm nfd build
コマンドに渡された入力ファイルで使用されているものと一致する必要があります。 これは、NSD をビルドするときに、Azure CLI AOSM 拡張機能によって NFD が正しくオンボードされたことが検証されるためです。次のコマンドを実行して、Network Service Design Group ファイルとバージョン Bicep ファイルをビルドします。
az aosm nsd build --config-file <nsd-output-filename.jsonc>
フォルダーとファイルの構造を確認し、必要に応じて変更を加えることができます。
ネットワーク サービス設計 (NSD) を公開する
この手順では、ネットワーク サービス デザイン グループとバージョンを定義する AOSM リソースを作成します。 また、NSD で必要な成果物をアーティファクト ストア (ネットワーク関数 ARM テンプレート) にアップロードします。
- 次のコマンドを実行して、ネットワーク サービス デザイン グループとバージョンを発行します。 サブスクリプション スコープの
Contributor
ロールとAcrPush
ロールがない場合は、コマンドに--no-subscription-permissions
を含めます。
az aosm nsd publish --build-output-folder nsd-cli-output
これで、AOSM パブリッシャー リソースの完全なセットが完成し、オペレーター フローを実行する準備が整いました。