NSX Cloud で提供される Terraform スクリプトを使用して、Microsoft Azure に NSX Cloud マーケットプレイス イメージを使用して NSX Cloud を展開するには、次の手順に従います。

前提条件

  • Microsoft サブスクリプションで NSX Cloud マーケットプレイス イメージにアクセスできることを確認します。
  • NSX Cloud アプライアンスを展開しているサブスクリプションで、Microsoft Azure のマーケットプレイスの法律条項に同意していることを確認します。
  • システムに Microsoft Azure CLI がインストールおよび構成されている必要があります。これは、Terraform スクリプトで使用する Azure API の認証と実行に必要です。

    可能であれば、同じシステムで Microsoft サブスクリプションへのアクセスに使用する Terraform スクリプトを実行します。これにより、Microsoft Azure の認証情報をシステム内から使用できるようになり、この情報を別のシステムと共有する必要がなくなります。

    また、セキュリティ上の推奨事項として、Python crypt モジュールをサポートする Linux/Unix または macOS システムでこれらのスクリプトを実行します。

  • Terraform スクリプトを実行するシステムに、Terraform 0.13 以上のバイナリがあることを確認します。
  • このシステムには、Python 3.0 以降がインストールされている必要があります。

手順

  1. アカウントにログインして、[NSX] > [ドライバとツール] > [VMware NSX Terraform Provider] > [ダウンロードに移動] > [今すぐダウンロード] の順に移動し、Terraform スクリプトをダウンロードします。たとえば、アカウントにログインした後、ドライバとツールのダウンロード ページに移動できます。
  2. NSXCloudScriptsforAddingPublicCloudAccounts.tar.gz という名前のファイルの内容を抽出します。Terraform スクリプトと関連ファイルは、NSXCloudScripts/cloud-native-deployment/azure/igw フォルダにあります。
  3. Terraform 構成ファイルを更新します。
    1. config.auto.vars で、次の情報を追加します。
      パラメータ 説明
      subscription_id Microsoft Azure アカウントのサブスクリプション ID を指定します。
      location NSX Cloud 管理 VNet を展開する Microsoft Azure の場所を指定します。
      deployment_prefix

      これは、自動作成されたすべてのエンティティの先頭に付加される展開名です。この名前は、Microsoft subscription_idlocation ごとに一意である必要があります。

    2. credentials_nsx.auto.tfvars で、次の情報を追加します。
      パラメータ 説明
      mgr_public_key_path これは、NSX Manager アプライアンスに適用されるパブリック キーのパスです。
      csm_public_key_path これは、CSM アプライアンスに適用されるパブリック キーへのパスです。
      license_key

      これは、NSX Manager のライセンス キーです。NSX Enterprise Plus ライセンスが必要です。

    3. ファイル advanced_config.auto.tfvars で高度な設定情報を確認し、必要に応じて更新します。
      パラメータ 説明
      mgmt_vnet_address_space これは、新しく展開された NSX Cloud 管理 VNet のアドレス空間です。
      mgmt_subnet_address_prefix これは、NSX Cloud 管理 VNet に展開された NSX Cloud 管理アプライアンスのサブネットです。
  4. 次のコマンドを、表示されている順序で実行します。
    ~/terraform init このコマンドは、展開に必要なすべてのモジュールを収集します。
    ~/terraform plan このコマンドは、手順のリスト、または展開に関連する手順のブループリントを表示します。
    ~/terraform apply このコマンドはスクリプトを実行します。

    実行中に問題が発生した場合は、該当するエラー メッセージが表示されます。エラーを修正したら、停止した場所から展開を再開することができます。

  5. 次の手順で、Terraform スクリプトを使用して NSX Manager と CSM で生成されたパスワードを変更します。
    1. スクリプトが正常に実行されたら、NSX Manager と CSM の次のパスワードをメモしておきます。
      • admin_password
      • root_password
      これらのパスワードは、展開の最後の画面に表示されます。これらのパスワードは、たとえば次のようにファイル NSXCloudScripts/cloud-native-deployment/azure/igw/terraform.tfstate のセクション "outputs" の下にも表示されます。
        "outputs": {
          "csm": {
            "value": {
              "admin_password": "<pwd>",
              "admin_username": "nsxadmin",
              "private_ip": "<private IP>",
              "public_ip": "<public IP>",
              "root_password": "<pwd>"
            },
          "mgrs": {
            "value": [
              {
                "admin_password": "<pwd>",
                "admin_username": "nsxadmin",
                "private_ip": "<private IP",
                "public_ip": "<public IP>",
                "root_password": "<pwd>"
              },
    2. Microsoft Azure で、<deployment_prefix>-nsx-mgr-sg という名前の NSX Manager と <deployment_prefix>-nsx-csm-sg という名前の CSM に作成されたネットワーク セキュリティ グループに移動し、SSH の次の一時的な受信「allow」ルールを追加します。
      優先順位 名前 ポート プロトコル 送信元 宛先 アクション
      1010 AllowInboundRuleSSH 22 TCP 任意 任意 許可
    3. プライベート キーを使用して NSX Manager アプライアンスにログインし、Terraform スクリプトによって生成されたパスワードを変更します。
      $ ssh -i <nsx_mgr_key> nsxadmin@<NSX Manager public IP address>
      WARNING: Your password has expired. 
      You must change your password now and login again!
      Changing password for nsxadmin.
      (current) UNIX password: <Enter mgr_admin_pwd from the Terraform scripts>
      New password: <Enter new password conforming to NSX password complexity>
      Retype new password:
      passwd: password updated successfully
    4. プライベート キーを使用して CSM にログインし、Terraform スクリプトによって生成されたパスワードを変更します。
      $ ssh -i <nsx_csm_key> nsxadmin@<CSM public IP address>
      WARNING: Your password has expired. 
      You must change your password now and login again!
      Changing password for nsxadmin.
      (current) UNIX password: <Enter csm_admin_pwd from the Terraform scripts>
      New password: <Enter new password conforming to NSX password complexity>
      Retype new password:
      passwd: password updated successfully
  6. 設定した新しいパスワードを使用して CSM アプライアンスにログインし、次の NSX CLI コマンドを実行して CSM を NSX Manager クラスタに参加させます。
    join <nsx-manager-ip-address & port(optional)> cluster-id <nsx-manager-cluster-id> username <username> password <password> thumbprint <nsx-manager-api-thumbprint> 
    

    CSM ユーザー インターフェイスが表示されるまでに数分かかります。CSM アプライアンス CLI で get cluster status コマンドを実行します。状態が「安定」の場合は、次の手順に進みます。

    任意の NSX Manager ノードから NSX CLI get cluster status コマンドを実行して cluster-id を取得できます。NSX Manager サムプリントを取得するには、指定した NSX Manager で get certificate api thumbprint コマンドを実行します。CLI コマンドの詳細については、『 NSX コマンドライン インターフェイス リファレンス』を参照してください。また、「 NSX Manager のサムプリントの取得」を参照してください。
    注: CSM アプライアンスが参加している NSX Manager ノードが失われた場合は、この NSX CLI コマンドを実行して他の健全な NSX Manager ノードのいずれかに CSM を参加させることができます。また、 <deployment_prefix>nsx-mgr-image という名前のイメージ ファイルを使用して失われた NSX Manager ノードを再展開し、ノードがオンライン状態に復帰すると CSM が自動的に再参加するようにすることもできます。詳細については、『 NSX 管理ガイド』の「 Redeploying NSX Manager from nsx_mgr_image in Microsoft Azure」を参照してください。
  7. NSX Manager で CSM を接続するには、「NSX Manager への CSM の追加」の説明に従って NSX Manager 認証情報の画面で詳細を追加します。

結果

スクリプトにより、Microsoft Azure サブスクリプションに次のものをデプロイします。
  • NSX Cloud 管理アプライアンスをホストする VNet。この VNet の名前は <deployment_prefix>-nsx-mgmt-vnet です。
  • NSX Manager クラスタの 3 台のノードを展開する可用性セット。この可用性セットの名前は <deployment_prefix>-nsx-aset です。
  • <deployment_prefix>nsx-mgmt-rg という名前の Microsoft Azure リソース グループ。
  • 次のリソースは、各 NSX Manager ノードや CSM アプライアンスに使用されます。
    1. CSM の <deployment_prefix>nsx-csm という名前の仮想マシン、および NSX Manager クラスタの <deployment_prefix>nsx-mgr0<deployment_prefix>nsx-mgr1<deployment_prefix>nsx-mgr2
    2. 各仮想マシンの OS ディスク。
    3. 各仮想マシンのネットワーク インターフェイス (NIC)。
    4. 各仮想マシンのパブリック IP アドレス。
    5. 各仮想マシンのデータ ディスク。
  • これらのアプライアンスの接続を許可する NSX Cloud 管理コンポーネントのネットワーク セキュリティ グループ。
    • <deployment_prefix>-nsx-mgr-sg
      表 1. Terraform スクリプトを使用して展開する NSX Manager の受信ルール
      優先順位 名前 ポート プロトコル 送信元 宛先 アクション
      1000 AllowInboundRuleAPI 443 TCP 任意 任意 許可
      表 2. Terraform スクリプトを使用して展開する NSX Manager の送信ルール
      優先順位 名前 ポート プロトコル 送信元 宛先 アクション
      100 AllowOutboundRuleAPI 任意 TCP 任意 任意 許可
    • <deployment_prefix>-nsx-csm-sg
      表 3. Terraform スクリプトを使用して展開する CSM の受信ルール
      優先順位 名前 ポート プロトコル 送信元 宛先 アクション
      1000 AllowInboundRuleAPI 443 TCP 任意 任意 許可
      表 4. Terraform スクリプトを使用して展開する CSM の送信ルール
      優先順位 名前 ポート プロトコル 送信元 宛先 アクション
      100 AllowOutboundRuleAPI 80,443 TCP 任意 任意 許可
    注: これらの自動作成されたネットワーク セキュリティ グループの Source フィールドを、NSX Manager および CSM へのアクセスに制限された CIDR セットに更新することを検討してください。デフォルトの Any は安全ではありません。
  • 3 台すべての NSX Manager ノードと CSM アプライアンスのバックアップを定期的に実行する Vault ポリシーが設定されている Microsoft Azure Recovery Service Vault。Vault ポリシーの名前は <deployment_prefix>-nsx-vault です。デフォルトのバックアップ スケジュールは、毎日午後 11 時 (UTC) に繰り返し実行するように設定されます。

    リストア オプションの詳細については、『NSX 管理ガイド』の「Managing Backup and Restore of NSX Manager and CSM in Microsoft Azure」を参照してください。

次のタスク

VNet での PCG の展開