はじめに
Import/Export for NSX は、VMware NSX の構成を zip ファイルにエクスポートするために使用できる新しい AWS オープンソースツールです。
re:Invent 2024 にて Preview として発表された Amazon Q Developer transformation capabilities for VMware でも活用できるこの Import/Export for NSX を使ってみました。
Import Export for NSX の概要
VMware NSX を使っていると、現時点の構成を保管しておきたいと思うことがあります。
例えば、検証環境構築後、環境を削除する前の構成のバックアップ、検証環境から本番環境への移行、リージョン間移行などのケースが当てはまると思います。
そこで活躍するのが今回紹介する "Import/Export for NSX" です。
Import/Export for NSX は、VMware NSX の構成を zip ファイルにエクスポートするために使用できる新しい AWS オープンソースツールです。
VMware Flings で公開されていた SDDC Import/Export for VMware Cloud on AWS Tool にも Contributor として参画していた Patrick Kremer 氏によって作成されております。
この観点から Import/Export for NSX の構成や使い方は、SDDC Import/Export for VMware Cloud on AWS Tool に非常に似ています
詳細や使い方の詳細については、GitHub に全て載っていますので、そちらをご覧ください。
使ってみた
今回は VMware Cloud on AWS の環境において NSX の構成情報を保存してみます。
-
Python3 を手元の環境で使えるようにします。バージョン 3.10 以降が必要です。
-
ツールのダウンロード(必要に応じて仮想環境をアクティブにして下さい)
git clone https://github.com/awslabs/import-export-for-nsx.git cd import-export-for-nsx pip3 install -r requirements.txt
上記を実行したうえで、
Successfully installed ~~
と表示されていれば問題ありません。 -
VMware Cloud on AWS の API トークンを生成
VVMware Cloud on AWS トークンを生成します。トークンには、VMware Cloud on AWS の Administrator ロールと NSX Cloud Admin ロールが必要です。トークンの生成手順については、VMware Docs を参照ください。
-
VMware Cloud on AWS SDDC から組織 ID と SDDC ID を取得します。これらは SDDC の [サポート] タブにあります。
-
環境変数を作成します。
EXP_source_refresh_token="xxxxx" export EXP_source_refresh_token EXP_source_org_id="xxxxx" export EXP_source_org_id EXP_source_sddc_id="xxxxx" export EXP_source_sddc_id
-
Export の実行
python3 nsx_import_export.py -o export
コマンドで Export を実行します。
VMware Cloud on AWS から Export をする場合でも、オンプレミスの NSX から Export する場合でも、同じコマンドを実行してエクスポートを実行します。以下のように出力されました。
% python3 nsx_import_export.py -o export Overriding nsx_domain_name, forcing to cgw because nsx_endpoint_type=vmc Loaded source refresh token from environment variable Loaded source org ID from environment variable Loaded source SDDC ID from environment variable Not loading local NSX environment variables because auth_mode=token Current authentication mode: token Token expires at 2024-12-05 15:30:05.818044 Exporting data from org XXXXXXXXXXXXXX (XXXXXXXXXXXXXX), SDDC XXXXXXXXXXXXXX (XXXXXXXXXXXXXX), SDDC version 1.22v8 Deleting old JSON export files... Source SDDC Info exported. Beginning Services export... SDDC services exported. Beginning Tags export... SDDC tags exported. Beginning Domains export... Domains exported. Beginning Gateway Policies export... Gateway Policies exported. Beginning VMs export... SDDC VMs exported. Beginning VM VIFs export... SDDC VM VIFs exported. MGW export skipped. Beginning CGW export... CGW groups exported. Suppress True Checking CGW rules to suppress default VTI rule... Suppressed default VTI rule, cgw_suppress_vti_export=True CGW rules exported. Multi-T1 CGW export skipped: mcgw_export=False, auth_mode=token Multi-T1 static routes export skipped: mcgw_static_routes_export=False, auth_mode=token Multi-T1 Firewall Policy and Rules export skipped: mcgw_fw_export=False, auth_mode=token Connected VPC Managed Prefix List export skipped: mpl_export=False, auth_mode=token SDDC Route Aggregation list export skipped: ral_export=False, auth_mode=token Beginning SDDC route configuration export SDDC Route Configuration exported Beginning network segments export... Networks exported. Flexible segment and segment discovery profile bindings export skipped: flex_segment_export=False, auth_mode=token Beginning DFW export... DFW rules exported. Beginning Public IP export... Public IP exported. Beginning NAT export... NAT rules exported. NSX Advanced Firewall export skipped: nsx_adv_fw_export=False, auth_mode=token Service access export skipped: nsx_adv_fw_export=False, auth_mode=token VPN export skipped: vpn_export=False, auth_mode=token Tier-1 VPN export skipped: tier1_vpn_export=False, auth_mode=token FQDN profile export skipped: nsx_l7_fqdn_export=False, auth_mode=token NSX L7 Context Profile export skipped: nsx_l7_context_profile_export=False, auth_mode=token JSON files successfully zipped into vmc_2024-12-05_15-00-34_json-export.zip export_purge_after_zip flag is true, deleting JSON files Deleted json/dfw.json Deleted json/vm-vifs.json Deleted json/natrules.json Deleted json/services.json Deleted json/dhcp-static-binding.json Deleted json/vms.json Deleted json/sddc_info.json Deleted json/cgw.json Deleted json/domains.json Deleted json/route_config.json Deleted json/public.json Deleted json/cgw_groups.json Deleted json/dfw_details.json Deleted json/tags.json Deleted json/gateway-policy.json Deleted json/cgw-networks.json 1 zipfiles found with a configured maximum of 1 Zipfile maintenance completed with no errors. Export has been concluded. Thank you for using Import/Export for NSX.
json
フォルダに _json-export.zip ファイルが作成されます。
zip ファイルの中身
zip ファイルを解凍すると様々な json ファイルが含まれておりました。
例えば cgw.json には CGW のゲートウェイ ファイアウォールのルール情報などが含まれています。
cgw-networks.json
cgw.json
cgw_groups.json
dfw.json
dfw_details.json
dhcp-static-binding.json
domains.json
gateway-policy.json
natrules.json
public.json
route_config.json
sddc_info.json
services.json
tags.json
vm-vifs.json
vms.json
取得した構成情報(zip ファイル)は Amazon Q Developer transformation capabilities for VMware で利用できる!
AWS re:Invent 2024 にて Amazon Q Developer transformation capabilities for VMware の Preview が発表されました。これを利用することによって、VMware ワークロードの Amazon EC2 への移行を簡素化し、加速することができます。
既存環境で VMware NSX を使用している場合は、すべてのネットワークとファイアウォールルールを変換するオプションがあります。今回紹介した Import/Export for NSX を利用することで、NSX の情報をもとに Amazon VPC のサブネットやセキュリティグループの作成を大幅に簡素化することができるようになります!
詳細は、以下の AWS ブログを参照ください。
まとめ
Import/Export for NSX を用いて、非常に簡単にオンプレミスまたは VMware Cloud on AWS の NSX 構成をバックアップを取得することができました。
既存環境の構成取得・バックアップの用途のみでなく、Amazon EC2 への移行としても活用できますので是非活用してみて下さい。
参考文献
DevelopersIO: SDDC Import/Export for VMware Cloud on AWS Tool で構成を保存してみた
関連文書