マネージャからポリシーへのインポート プロセスでは、まず最初に、ルーター、IP ブロックとプール、NsGroups などの共有リソースをインポートします。
ポリシー モードの NCP は、ncp.ini の NSX リソースのポリシー ID を受け入れるだけです。共有リソースは、次のように表示名から派生したポリシー ID を使用して、マネージャからポリシーにインポートされます。
- スペース「 」はアンダースコア「_」に代わります。
- スラッシュ「/」はアンダースコア「_」に代わります。
- ピリオドのみの表示名(「.」、「.....」など)は、名前の先頭に 1 個のアンダースコア「_」が付きます。
例:
- 「mp display name」のポリシー ID は「mp_display_name」になります。
- 「mp display/name」のポリシー ID は「mp_display_name」になります。
- 「.....」のポリシー ID は「_.....」になります。
作成したすべての NSX リソースに一意の表示名が生成されるようにする必要があります。
必要であれば、上記のルールを参考にして、ncp.ini で NSX リソース ID に関連する箇所を更新します。
user-spec.yaml の編集
user-spec.yaml を編集して、インポートするリソースを指定する必要があります。次のものを指定できます。
- マネージャ API で display_name または ID のいずれかを使用するリソース。マネージャ API で見つからないリソースは無視されます。
- 任意の IP プールにインポートされる IP 割り当て。user-spec.yaml の ip-allocations に指定します。2 つのシナリオ:
- この IpPool のカスタム IpPoolAllocations を使用する
IpAllocations を手動で作成した場合は、ここで指定してください。キーは IpPoolAllocation の allocation_id、値は想定されるポリシー ID です。IpBlock、Tier-0 などのその他のリソースはインポートしないでください。インポートが完了したら、次の手順 2 のようにスクリプトを再度実行して shared_resources をインポートします。
- この IpPool のカスタム IpPoolAllocations を使用しない(デフォルト)
IpPool で ip-allocations の編集または指定を行いません。インポートする仕様には、IpBlock、Tier-0 などの他のすべてのリソースを追加します。
- この IpPool のカスタム IpPoolAllocations を使用する
- Tier-1 ルーターにインポートされるスタティック ルートとルーター ポート。
仕様で key と value の識別子は変更しません。割り当てられた値のみを変更します。Key はマネージャ ID で、値は想定されるポリシー ID です。
user-spec.yaml に共有リソースを指定する方法については、リソースの指定順序を参照してください。
共有リソースのインポート手順
- config.yaml に必要な情報を入力し、import_shared_resources_only を True に設定します。config.yaml のサンプル を参照してください。
- user-spec.yaml に共有リソースの情報を入力します。user-spec.yaml のサンプル を参照してください。
- 構成ファイルまたはコマンドライン引数を使用して mp_to_policy_importer を実行します。次はその例です。
python3 mp_to_policy_importer.py --config-file config.yaml