Share via


Azure Operator Service Manager (AOSM) CLI 拡張機能を使用する

このハウツー ガイドでは、ネットワーク関数パブリッシャーとサービス デザイナーが Azure CLI 拡張機能を使用して、ネットワーク関数定義 (NFD) とネットワーク サービス デザイン (NSD) の使用を開始する方法について説明します。

az aosm CLI 拡張機能は、Azure Operator Service Manager の設計と定義を発行するためのサポートを提供することを目的としています。 CLI 拡張機能は、Azure Operator Service Manager で使用するネットワーク関数定義 (NFD) とネットワーク サービス デザイン (NSG) を公開するプロセスを支援します。

前提条件

Microsoft アカウント チームに連絡して、Azure Operator Service Manager (AOSM) にアクセスするための Azure サブスクリプションを登録するか、パートナー登録フォームで関心を示してください。

Azure CLI をダウンロードしてインストールする

Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Cloud Shell を起動して Azure Cloud Shell で Bash 環境を使用する」を参照してください

CLI 参照コマンドをローカルで実行するユーザーについては、「Azure CLI をインストールする方法」を参照してください。

Window または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

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

Azure Operator Service Manager (AOSM) CLI 拡張機能をインストールする

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

az extension add --name aosm
  1. 実行 az version して、インストールされているバージョンと依存ライブラリを確認します。
  2. 実行 az upgrade して、現在のバージョンの Azure CLI にアップグレードします。

必要なリソース プロバイダーを登録して確認する

Azure Operator Service Manager の使用を開始する前に、必要なリソース プロバイダーを登録してください。 次のコマンドを実行します。 この登録プロセスには最大 5 分かかることがあります。

# Register Resource Provider
az provider register --namespace Microsoft.HybridNetwork
az provider register --namespace Microsoft.ContainerRegistry

リソース プロバイダーの登録状態を確認します。 次のコマンドを実行します。

# Query the Resource Provider
az provider show -n Microsoft.HybridNetwork --query "{RegistrationState: registrationState, ProviderName: namespace}"
az provider show -n Microsoft.ContainerRegistry --query "{RegistrationState: registrationState, ProviderName: namespace}"

Note

リソース プロバイダーの登録が完了するまでに数分かかる場合があります。 登録が成功したら、Azure Operator Service Manager (AOSM) の使用に進むことができます。

コンテナー化されたネットワーク関数 (CNF) の要件

コンテナー化されたネットワーク関数を利用する場合は、CLI を実行するコンピューターに次のパッケージがインストールされていることを確認する必要があります。

  • Helm をインストールします。Helm CLI のインストールを参照してください。
  • 状況によっては、Docker をインストールし、「Docker エンジンのインストール」を参照してください。 ソース イメージがローカル Docker リポジトリにある場合、またはグラフとイメージをプッシュするためにサブスクリプション全体のアクセス許可が必要ない場合にのみ必要です。

アクセス許可

アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 Azure サブスクリプションをお持ちでない場合は、開始する前に、「無料で開始してアカウントを作成する」の手順に従ってください。

リソース グループまたは共同作成者ロールを持つ既存のリソース グループを作成するには、このサブスクリプションに対する共同作成者ロールが必要です。

CMF を発行するためのアクセス許可

既存の ACR から CNF イメージをソーシングする場合、新しい成果物ストアにインポートできるようにするには、この ACR からのアクセス許可が必要です。理想的には、ロール + AcrPush ロール (または、アクションとAcrPushサブスクリプション全体を許可importImageするカスタム ロール) を持っているAcrPull/Reader必要があります。 Contributor これらを使用している場合は、Docker をローカルにインストールする必要がなく、イメージのコピーがすばやく行われます。

サブスクリプション全体のアクセス許可がない場合は、フラグを az aosm nfd publish 使用してコマンドを実行して --no-subscription-permissions ローカル コンピューターにイメージをプルし、ストアのみにスコープが設定されたマニフェスト資格情報を使用して成果物ストアにプッシュできます。 Docker をローカルにインストールする必要があります。

Azure Operator Service Manager (AOSM) CLI 拡張機能の概要

ネットワーク関数パブリッシャーとサービス デザイナーは、Azure CLI 拡張機能を使用して、ネットワーク関数定義 (NFD) とネットワーク サービス デザイン (NSG) の公開に役立ちます。

ロールとインターフェイス説明されているように、ネットワーク関数パブリッシャーにはさまざまな役割があります。 CLI 拡張機能は、太字で示されている項目を支援します。

  • ネットワーク関数を作成します。
  • ネットワーク関数設計 (NFD) でエンコードします。
  • サービス デザイナーに公開するデプロイ パラメーターを決定します
  • ネットワーク関数設計 (NFD) を Azure Operator Service Manager (AOSM) にオンボードします。
  • 関連付けられている成果物をアップロードします
  • ネットワーク関数設計 (NFD) を検証します。

サービス デザイナーにはさまざまな役割もあり、CLI 拡張機能は太字で項目を支援します。

  • サービス デザインに含めるネットワーク関数定義を選択します。
  • ネットワーク サービス設計にエンコードします。
  • Azure インフラストラクチャをネットワーク サービス設計に組み合わせます。
  • 1 つ以上の構成グループ スキーマ (CGS) を定義して、サービスをパラメーター化する方法を決定します。
  • サービス オペレーターからの入力を、ネットワーク関数定義 と Azure インフラストラクチャで必要なパラメーターにマップする方法を決定します。
  • ネットワーク サービス 設計 (NSD) を Azure Operator Service Manager (AOSM) にオンボードします。
  • 関連付けられている成果物をアップロードします
  • ネットワーク サービス設計 (NSD) を検証します。

ワークフローの概要

CLI 拡張機能を使用する一般的なワークフローは次のとおりです。

  1. ユース ケースに必要な前提条件項目を見つけます。

  2. コマンドを generate-config 実行して、後続のコマンドの JSON 構成ファイルの例を出力します。

  3. 構成ファイルを入力します。

  4. コマンドを build 実行して、ネットワーク関数定義またはネットワーク サービス 設計用の 1 つ以上の bicep テンプレートを出力します。

  5. ビルド コマンドの出力を確認し、必要に応じて要件に合わせて出力を編集します。

  6. 次のコマンドを publish 実行します。

    • リソース グループ、パブリッシャー、アーティファクト ストア、グループなど、前提条件となるすべてのリソースを作成します。
    • これらの bicep テンプレートをデプロイします。
    • 成果物を成果物ストアにアップロードします。

VNF の開始点

VNF の場合は、仮想マシン、ディスク、NIC など、VNF 用の Azure リソースを作成する 1 つの ARM テンプレートが必要です。 ARM テンプレートは、CLI を実行するコンピューターに格納する必要があります。

仮想化ネットワーク関数定義バージョン (VNF NFDV) の場合、networkFunctionApplications リストには、1 つの VhdImageFile と 1 つの ARM テンプレートが含まれている必要があります。 複数の VhdImageFile と複数の ARM テンプレートを含めるのは珍しいことです。 強い理由がない限り、ARM テンプレートは 1 つの VM をデプロイする必要があります。 複数の VM をデプロイする場合、サービス デザイナーには、ネットワーク サービス デザイン (NSD) を含むネットワーク関数定義 (NFD) の多数のコピーが含まれている必要があります。 ARM テンプレート (AzureCore と Nexus の両方) は、次のリソース プロバイダーからのみ ARM リソースをデプロイできます。

  • Microsoft.Compute

  • Microsoft.Network

  • Microsoft.NetworkCloud

  • Microsoft.Storage

  • Microsoft.NetworkFabric

  • Microsoft.Authorization

  • Microsoft.ManagedIdentity

また、VNF 仮想マシンに使用される VHD イメージも必要です。 VHD イメージは、CLI を実行しているコンピューターまたは SAS URI を介してアクセスできる Azure BLOB ストレージに格納できます。

CNF の開始点

コンテナー化されたネットワーク関数 (CMF) のデプロイでは、CLI を実行するコンピューターに次の情報を格納することが重要です。

  • Helm Packages with Schema - これらのパッケージはローカル ストレージに存在し、構成ファイル内で参照する input.json 必要があります。 このクイック スタートに従うときは、必要な helm パッケージをダウンロードします。

  • サンプル構成ファイル の作成 - CNF 展開を定義するためのサンプル構成ファイルを生成します。 このコマンドを発行して、特定の input.json 構成を設定する必要があるファイルを生成します。

    az aosm nfd generate-config
    
  • CNF の画像 - オプションを次に示します。

    • CNF のイメージを含む既存の Azure Container Registry への参照。 現在、CNF ごとにサポートされている ACR と名前空間は 1 つだけです。 この ACR からコピーされるイメージは、Helm パッケージ スキーマに基づいて自動的に設定されます。 この ACR に対する閲覧者/AcrPull アクセス許可が必要です。 このオプションを使用するには、input.json ファイルに入力し、必要にsource_registry_namespace応じて入力source_registryします。
    • ローカル コンピューターからのソース Docker イメージのイメージ名。 このイメージ名は、CNF がローカル Docker リポジトリに存在する単一の Docker イメージのみを必要とする限られたユース ケースを対象としています。 このオプションを使用するには、input.json ファイルを入力 source_local_docker_image します。 Docker をインストールする必要があります。 このクイック スタートでは、このオプションに使用する nginx Docker イメージをダウンロードする手順について説明します。
  • 省略可能: マッピング ファイル (path_to_mappings): 必要に応じて、path_to_mappingsという名前のファイル (ディスク上) を指定できます。 このファイルは、values.yaml選択した値をデプロイ パラメーターに置き換えてミラーする必要があります。 これにより、パラメーターとして CNF に公開されます。 または、この値を空白のままに input.json すると、CLI によってファイルが生成されます。 この場合、既定では、内 values.yaml のすべての値がデプロイ パラメーターとして公開されます。 または、CLI 引数を --interactive 使用して対話形式で選択します。 このクイック スタートでは、このファイルの作成について説明します。

ファイルを input.json 構成するときは、デプロイする順序で Helm パッケージが一覧表示されていることを確認します。 たとえば、パッケージ "B" の前にパッケージ "A" をデプロイする必要がある場合、 input.json 次の構造のようになります。

"helm_packages": [
    {
        "name": "A",
        "path_to_chart": "Path to package A",
        "path_to_mappings": "Path to package A mappings",
        "depends_on": [
            "Names of the Helm packages this package depends on"
        ]
    },
    {
        "name": "B",
        "path_to_chart": "Path to package B",
        "path_to_mappings": "Path to package B mappings",
        "depends_on": [
            "Names of the Helm packages this package depends on"
        ]
    }
]

これらのガイドラインに従うと、Helm パッケージと関連する構成を使用して Containerized Network Functions (CNF) をデプロイするための、適切に整理された構造化されたアプローチが保証されます。

NSD の開始点

NSG の場合は、ネットワーク関数定義 (NFD) の詳細を知って、設計に組み込む必要があります。

  • NFD パブリッシャー リソース グループ
  • NFD パブリッシャー名とスコープ
  • ネットワーク関数定義グループの名前
  • ネットワーク関数定義バージョンの場所、種類、バージョン

コマンドを az aosm nfd 使用して、これらすべてのリソースを作成できます。

Azure Operator Service Manager (AOSM) コマンド

開始する前に、次のコマンドを使用します。

  1. az login Azure CLI へのサインインに使用されます。

  2. az account set --subscription <subscription> は、作業するサブスクリプションを選択するために使用されます。

NFD コマンド

コマンド引数に関するヘルプを表示します。

  • az aosm -h

  • az aosm nfd -h

  • az aosm nfd build -h

定義の種類のコマンド

これらすべてのコマンドは、引数vnf--definition-type受け取ります。cnf

定義を作成するための構成ファイルの例を作成します。

  • az aosm nfd generate-config

このコマンドは、入力する必要がある、という名前 input.jsonのファイルを出力します。 構成ファイルが入力されたら、次のコマンドを実行できます。

NFD 定義をローカルにビルドします。

  • az aosm nfd build --config-file input.json

NFD 定義をローカルで構築する際のその他のオプション:

  • NFD deploymentParameters として公開する VNF ARM テンプレート パラメーターを選択します。各パラメーターを対話形式で選択することもできます。

    • az aosm nfd build --config-file input.json --definition_type vnf --order_params
    • az aosm nfd build --config-file input.json --definition_type vnf --order_params --interactive

NFD deploymentParameters として公開する CNF Helm 値パラメーターを選択します。

  • az aosm nfd build --config-file input.json --definition_type cnf --interactive

事前構築済みの定義を発行します。

  • az aosm nfd publish --config-file input.json

パブリッシュされた定義を削除します。

  • az aosm nfd delete --config-file input.json

公開された定義と発行元、成果物ストア、NFD グループを削除します。

  • az aosm nfd delete --config-file input.json --clean

NSD コマンド

コマンド引数に関するヘルプを表示します。

  • az aosm -h

  • az aosm nsd -h

  • az aosm nsd build -h

定義を作成するための構成ファイルの例を作成します。

  • az aosm nsd generate-config

このコマンドは、入力する必要がある、という名前 input.jsonのファイルを出力します。 構成ファイルが入力されたら、次のコマンドを実行できます。

NSD をローカルにビルドします。

  • az aosm nsd build --config-file input.json

事前構築済みの設計を発行します。

  • az aosm nsd publish --config-file input.json

パブリッシュされたデザインを削除します。

  • az aosm nsd delete --config-file input.json

公開されたデザインと発行元、成果物ストア、NSD グループを削除します。

  • az aosm nsd delete --config-file input.json --clean

発行前にビルド出力を編集する

az aosm CLI 拡張機能は、Azure Operator Service Manager の設計と定義を発行するためのサポートを提供することを目的としています。 複雑なカスタム デザインと定義を作成するための構成要素を提供します。 コマンドを実行する前に、コマンドによって出力されたファイルをbuildpublish編集して、より複雑な機能やカスタム機能を追加できます。

Azure Operator Service Manager の完全な API リファレンスは、Azure Hybrid Network REST API です

次のセクションでは、発行前にビルドされたファイルを編集するために使用できる一般的な方法について説明します。

ネットワーク関数定義 (NFD)

  • リソースを versionState 次の networkfunctiondefinitionversions 値に Preview 変更します Active。 アクティブな NFDV は不変であるのに対し、プレビュー NFDV は変更可能であり、ドラフト状態です。
  • CMF の場合は、グラフがhelmMappingRuleProfileデプロイされる kubernetes 名前空間を変更する対象を変更releaseNamespaceします。

ネットワーク サービス 設計 (SSD)

  • ネットワーク サービス 設計 (NSD) に Azure インフラストラクチャを追加します。 Azure インフラストラクチャの追加には、次の作業が含まれます。
    • インフラストラクチャをデプロイするための ARM テンプレートの記述。
    • これらの ARM テンプレートの構成グループ スキーマ (CGS) の追加。
    • 型の ArmResourceDefinition RET を NSD に追加ResourceElementTemplatesします。 RET は、フィールド以外typeの RET と同じようにNetworkFunctionDefinition表示されます。
    • ファイルへのインフラストラクチャ ARM テンプレートの artifact_manifest.bicep 追加。
    • ファイルを configMappings 編集して、ResourceElementTemplates への NetworkFunctionDefinition 入力としてインフラストラクチャ テンプレートからの出力を組み込みます。 例: "customLocationId": "{outputparameters('infraretname').infraretname.customLocationId.value}"
    • dependsOnProfileNetworkFunctionDefinitionインフラストラクチャ RET が NF RET の前にデプロイされるように ResourceElementTemplates (RET) を編集する。
  • リソースを versionState 次の networkservicedesignversions 値に Preview 変更します Active。 アクティブな SSD は不変です。一方、プレビューの SSD は変更可能であり、ドラフト状態です。