Azure Operator Service Manager (AOSM) を使用すると、ネットワーク関数定義バージョン (NFDV) と Azure Resource Manager (ARM) テンプレートをネットワーク サービス デザイン バージョン (NSDV) に組み合わせることができます。 NSDV は、ネットワーク関数と実行に必要な Azure インフラストラクチャの両方を含むネットワーク サービスの 1 つのテンプレートになります。 オペレーターは、ネットワーク関数 (NF) とそのインフラストラクチャを 1 回の操作でデプロイできます。
このハウツー ガイドでは、Azure CLI AOSM 拡張機能を使用して、コンテナー化されたネットワーク関数 (CNF) と Azure Resource Manager (ARM) リソースの両方を含む NSDV をビルドして発行する方法について説明します。
オンボーディングは複数ステップのプロセスです。 前提条件を満たしたら、Azure CLI AOSM 拡張機能を使用して次の処理を行います。
- 以前にオンボードされた CNF の既存の NSDV 入力ファイルを変更します。
- AOSM リソース定義を作成するために必要な情報を入力ファイルに入力します。
- 入力ファイルと ARM テンプレートに基づいてネットワーク サービス デザイン グループとバージョン (NSDV) を定義する Bicep ファイルを生成します。
- NSDV を発行し、ARM テンプレートをアーティファクト ストア (AOSM で管理される Azure Container Registry (ACR)) にアップロードします。
このハウツー ガイドでは、Azure リソースの例として Azure Key Vault (AKV) を使用しますが、同じ手順に従って任意の Azure リソースをオンボードできます。 この記事では、NF の例として CNF を使用します。このプロセスは、NSDV 入力ファイルの小さな違いとは別に、仮想化ネットワーク関数 (VNF) と同じです。
[前提条件]
- Azure サブスクリプションで AOSM が有効になっています。
- CNF が Azure Operator Nexus 上で実行されることを意図している場合は、Azure Operator Nexus インスタンスにアクセスでき、 ワークロードのデプロイの前提条件が満たされています。
-
CNF をオンボードし、CLI を実行しているコンピューターのローカル ストレージで使用できる
az aosm nsd generate-config
ファイルで生成した入力ファイルを用意しました。
アクセス許可を構成する
- リソース グループまたは共同作成者ロールを持つ既存のリソース グループを作成するには、サブスクリプションに対する共同作成者ロールが必要です。
- AOSM マネージド アーティファクト ストアを含むサブスクリプションに対して、
Contributor
ロールとAcrPush
ロールの割り当てが必要です。- 会社のポリシーによって、サブスクリプションスコープのアクセス許可を持てなくなることがあるかもしれません。
--no-subscription-permissions
コマンドで利用できるaz aosm nsd publish
パラメーターは、AOSM サービスから派生した厳密に範囲が限定されたアクセス権を使用し、ローカルコンピューターとの間での2段階コピーのプロセスを調整します。 この2段階のコピーは遅いですが、サブスクリプション範囲のアクセス許可は必要ありません。
- 会社のポリシーによって、サブスクリプションスコープのアクセス許可を持てなくなることがあるかもしれません。
ARM テンプレート
- CLI を実行するマシンのローカル ストレージに存在するデプロイする Azure リソースを定義する ARM テンプレートが必要です。
- NSDV をデプロイするオペレーターに公開するパラメーターは、ARM テンプレートでパラメーターとして定義する必要があります。
注
Az CLI AOSM 拡張機能では、Bicep ファイルで定義されている Azure リソースのオンボードはサポートされていません。 ただし、 bicep build
コマンドを使用して、BICEP ファイルを ARM テンプレートに変換できます。 詳細と手順については 、bicep CLI のドキュメント を参照してください。
Helm と Docker エンジン
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 環境を使用してください。
AOSM CLI 拡張機能をインストールする
Az CLI AOSM 拡張機能には、Azure CLI のバージョン 2.54.0 以降が必要です。
-
az version
を実行し、インストールされているバージョンおよび依存ライブラリを表示します。 -
az upgrade
を実行し、Azure CLI の現在のバージョンにアップグレードします。
次のコマンドを使用して、AOSM CLI 拡張機能をインストールします。
az extension add --name aosm
ネットワーク サービス デザイン グループとバージョンを構築する
CNF のオンボード時に生成した NSDV 入力ファイルを開きます。
注
CNF オンボードから NSDV 入力ファイルがない場合は、
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
コマンドを使用して新しい入力ファイルを生成できます。入力ファイルのインライン コメントを使用して、必要な値を入力します。 この例では、架空の 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" } } ] }
注
リソース要素テンプレート セクションでは、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>
フォルダーとファイルの構造を確認し、必要に応じて変更を加えることができます。
ネットワーク サービス デザイン グループとバージョンを公開する
この手順では、ネットワーク サービス デザイン グループとバージョンを定義する AOSM リソースを作成します。 また、NSDV で必要な成果物をアーティファクト ストア (NF ARM テンプレートと AKV ARM テンプレート) にアップロードします。
- 次のコマンドを実行して、ネットワーク サービス デザイン グループとバージョンを発行します。 サブスクリプション スコープの
Contributor
ロールとAcrPush
ロールがない場合は、コマンドに--no-subscription-permissions
を含めます。
az aosm nsd publish --build-output-folder nsd-cli-output
これで、AOSM パブリッシャー リソースの完全なセットが完成し、オペレーター フローを実行する準備が整いました。