クイックスタート: Ubuntu 仮想マシン (VM) を仮想ネットワーク機能 (VNF) として公開する
このクイック スタートでは、az aosm
Azure CLI 拡張機能を使用して、基本的なネットワーク機能定義を作成して公開する方法について説明します。 その目的は、Publisher Azure Operator Service Manager (AOSM) リソースのワークフローを示すことです。 ここで説明する基本的な概念は、ユーザーがより優れたサービスを構築するための準備を目的としています。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 Azure サブスクリプションをお持ちでない場合は、開始する前に、こちらの「無料で始める」の手順に従ってアカウントを作成してください。
「クイック スタート: Azure Operator Service Manager で仮想化されたネットワーク機能をデプロイするための前提条件を完了する」を完了する
共同作成者ロールがある既存のリソース グループ、またはこのサブスクリプションに対する共同作成者ロール (AOSM CLI 拡張機能でリソース グループを作成できるようにするため)。
入力ファイルを作成する
次のコマンドを実行して、ネットワーク機能定義 (NFD) の入力構成ファイルを生成します。
az aosm nfd generate-config --definition-type vnf
このコマンドを実行すると、vnf-input.jsonc ファイルが生成されます。
Note
vnf-input.jsonc ファイルを編集し、サンプルに示されている値に置き換えます。 input-vnf-nfd.json としてファイルを保存します。
既存のリソース グループを使用している場合は、それに合わせて publisher_resource_group_name
フィールドを変更します。
input-vnf-nfd.jsonc ファイルのサンプルを次に示します。
{
// Azure location to use when creating resources e.g uksouth
"location": "uksouth",
// Name of the Publisher resource you want your definition published to.
// Will be created if it does not exist.
"publisher_name": "ubuntu-publisher",
// Resource group for the Publisher resource.
// Will be created if it does not exist
"publisher_resource_group_name": "ubuntu-publisher-rg",
// Name of the ACR Artifact Store resource.
// Will be created if it does not exist.
"acr_artifact_store_name": "ubuntu-acr",
// Name of the network function.
"nf_name": "ubuntu-vm",
// 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,
// Optional. Name of the storage account Artifact Store resource.
// Will be created if it does not exist (with a default name if none is supplied).
"blob_artifact_store_name": "ubuntu-blob-store",
// 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": "ubuntu-template",
// 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": "ubuntu-template.json"
}
],
// VHD image configuration.
"vhd": {
// Optional. Name of the artifact. Name will be generated if not supplied.
"artifact_name": "",
// Version of the artifact in A-B-C format. Note the '-' (dash) not '.' (dot).
"version": "1-0-0",
// Supply either file_path or blob_sas_url, not both.
// File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
// Leave as empty string if not required. Use Linux slash (/) file separator even if running on Windows.
"file_path": "livecd.ubuntu-cpc.azure.vhd",
// Optional. Specifies the size of empty data disks in gigabytes.
// This value cannot be larger than 1023 GB. Delete if not required.
"image_disk_size_GB": "30",
// Optional. Specifies the HyperVGenerationType of the VirtualMachine created from the image.
// Valid values are V1 and V2. V1 is the default if not specified. Delete if not required.
"image_hyper_v_generation": "V1",
// Optional. The ARM API version used to create the Microsoft.Compute/images resource.
// Delete if not required.
"image_api_version": "2023-03-01"
}
}
変数 | 説明 |
---|---|
publisher_name | 定義を発行する発行元リソースの名前。 存在しない場合は作成されます。 |
publisher_resource_group_name | 発行元リソースのリソース グループ。 存在しない場合は作成されます。 |
acr_artifact_store_name | ACR 成果物ストア リソースの名前。 存在しない場合は作成されます。 |
location | リソースの作成時に使用する Azure の場所。 |
nf_name | NF 定義の名前。 |
version | A.B.C 形式の NF 定義のバージョン。 |
blob_artifact_store_name | ストレージ アカウントの成果物ストア リソースの名前。 存在しない場合は作成されます。 |
expose_all_parameters | すべての NFD 構成パラメーターをデザイナーで使用できるようにするかどうか。 |
arm_template | artifact_name: 成果物の名前。 |
file_path: 省略可能。 ローカル ディスクからアップロードする成果物のファイル パス。 不要な場合は削除してください。 相対パスは、構成ファイルに対する相対パスです。 Windows では、円記号を追加の円記号でエスケープします。 | |
version: 成果物のバージョン。 ARM テンプレートの場合、バージョンは A.B.C 形式である必要があります。 | |
vhd | artifact_name: 成果物の名前。 |
file_path: 省略可能。 ローカル ディスクからアップロードする成果物のファイル パス。 不要な場合は削除してください。 相対パスは、構成ファイルに対する相対パスです。 Windows では、円記号を追加の円記号でエスケープします。 | |
blob_sas_url: 省略可能。 成果物ストアにコピーする BLOB 成果物の SAS URL。 不要な場合は削除してください。 | |
version: 成果物のバージョン。 成果物のバージョン。 VHD の場合、バージョンは A-B-C 形式である必要があります。 | |
"image_disk_size_GB: 省略可能。 空のデータ ディスクのサイズをギガバイト単位で指定します。 この値は 1023 GB 以下にする必要があります。 不要な場合は削除してください。 | |
image_hyper_v_generation: 省略可能。 イメージから作成された VirtualMachine の HyperVGenerationType を指定します。 有効な値は V1 と V2 です。 V1 は、指定されていない場合の既定値です。 不要な場合は削除してください。 | |
image_api_version: 省略可能。 Microsoft.Compute/images リソースの作成に使用される ARM API バージョン。 不要な場合は削除してください。 |
Note
file_path オプションを使用する場合、VHD イメージは通常非常に大きいため、十分なアップロード帯域幅で信頼性の高いインターネット接続を用意することが不可欠です。
重要
前の表で説明した各変数は一意である必要があります。 たとえば、リソース グループ名が既に存在していてはならず、発行元と成果物ストアの名前はリージョン内で一意である必要があります。
ネットワーク機能定義 (NFD) をビルドする
ネットワーク機能定義 (NFD) を構築するには、ビルド プロセスを開始します。
az aosm nfd build --config-file input-vnf-nfd.jsonc --definition-type vnf
ビルドが完了したら、生成されたファイルを調べて、ネットワーク機能定義 (NFD) 構造について理解を深めます。
これらのファイルは、vnf-cli-output という名前のサブディレクトリに作成されます。
ディレクトリ/ファイル | 説明 |
---|---|
vnf-cli-output/artifactManifest | |
deploy.bicep | 入力ファイルから成果物が設定された成果物マニフェストを作成するための Bicep テンプレート |
vnf-cli-output/artifacts | |
artifacts.json | 発行時にアップロードする成果物 (イメージと ARM テンプレート) の一覧。 成果物マニフェストとの関連付け |
vnf-cli-output/base | |
deploy.bicep | NF を起動するために必要な基になる AOSM リソースを作成するための Bicep テンプレート (パブリッシャー、acr、nfdg) |
vnf-cli-output/nfDefinition | |
deploy.bicep | 入力ファイルで提供される ARM テンプレートのネットワーク機能アプリケーション情報を使用して、ネットワーク機能定義バージョン (NFDV) を作成する Bicep |
deployParameters.json | このネットワーク機能定義バージョン (NFDV) からネットワーク機能 (NF) を作成するために必要なデプロイ パラメーターを定義するスキーマ。 |
<arm-template-name>-templateParameters.json | 仮想マシン (VM) ARM テンプレートに必要なパラメーターにマップされたネットワーク機能定義バージョン (NFDV) に指定されたデプロイ パラメーターが含まれるファイル。 これらの VM ARM テンプレート パラメーターは、入力ファイルで提供される ARM テンプレートから取得されます |
vhdParameters.json | VHD イメージに必要なパラメーターにマップされたネットワーク機能定義バージョン (NFDV) に指定されたデプロイ パラメーターが含まれるファイル。 VHD 構成パラメーターは、入力ファイルの VHD セクションから取得されます |
vnf-cli-output | |
all_deploy.parameters.json | すべての NF のデプロイ パラメーターのスーパーセット。リソース名をカスタマイズするための 1 つのファイルを提供します。 ビルド コマンドによってこのファイルに出力される値は vnf-input.jsonc ファイルから取得されますが、発行を実行する前にこのファイルで編集できます (たとえば、別の場所に発行する場合や別のパブリッシャー名を使用する場合など) |
index.json | リソースのパブリッシュ時に内部的に使用されるファイル。 編集できません |
Note
エラーが発生した場合、修正する唯一のオプションは、適切な選択でコマンドを再実行することです。
ネットワーク機能定義を公開して成果物をアップロードする
ネットワーク機能定義 (NFD) を公開して関連する成果物をアップロードするには、次のコマンドを実行します。
Note
発行元名は、リージョン内で一意である必要があります。 構成ファイルの例の中で定義した 'ubuntu-publisher' が、既に存在している可能性は非常に高いです。
"'ubuntu-publisher' という名前のプライベート発行元リソースは既にこの指定されたリージョンに存在します" というエラーが発生した場合は、構成ファイル内の publisher_name
フィールドを一意になるように編集し (たとえば、ランダムな文字列サフィックスを追加する)、build
コマンド (上記) を再実行してから、この publish
コマンドを再実行します。
ネットワーク サービス設計の作成に進む場合は、resource_element_templates
配列内でこの新しい発行元名を使用する必要があります。
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
コマンドが完了したら、Publisher リソース グループ内のリソースを調べて、作成されたコンポーネントと成果物を確認します。
これらのリソースが作成されます。
リソース名 | リソースの種類 |
---|---|
ubuntu-vm | ネットワーク機能定義。 |
1.0.0 | ネットワーク機能定義バージョン。 |
ubuntu-publisher | Publisher。 |
ubuntu-vm-acr-manifest-1-0-0 | 発行元成果物マニフェスト。 |
ubuntu-vm-sa-manifest-1-0-0 | 発行元成果物マニフェスト。 |
ubuntu-acr | 発行元成果物ストア。 |
ubuntu-blob-store | 発行元成果物ストア。 |