執行下列步驟,可讓您使用 NSX Cloud 提供的 Terraform 指令碼,透過 NSX Cloud Marketplace 映像在 Microsoft Azure 中部署 NSX Cloud

必要條件

  • 確認您可在 Microsoft 訂閱中存取 NSX Cloud Marketplace 映像。
  • 確認您已在部署 NSX Cloud 應用裝置的訂閱中接受 Microsoft Azure 的 Marketplace 法律條款。
  • 您必須已在系統上安裝並設定 Microsoft Azure CLI。必須符合此條件,才能驗證和執行在 Terraform 指令碼中使用的 Azure API。

    可能的話,請使用相同的系統執行您用來存取 Microsoft 訂閱的 Terraform 指令碼。這可確保您會從系統內使用 Microsoft Azure 認證,且不會在不同的系統中共用此資訊。

    此外,作為安全性建議,請在支援 Python crypt 模組的 Linux/Unix 或 macOS 系統上執行這些指令碼。

  • 確認您在預計要執行 Terraform 指令碼的系統上具有 Terraform 0.13 或更高版本的二進位檔。
  • 您必須已在此系統上安裝 Python 3.0 或更高版本。

程序

  1. 登入 My VMware 帳戶並導覽至以下位置,以下載 Terraform 指令碼:產品 > NSX驅動程式和工具 > VMware NSX Terraform 提供者 > 移至下載 > 立即下載。例如,在您登入 My VMware 帳戶後,此連結會將您導向至驅動程式和工具的下載頁面
  2. 對名為 NSXCloudScriptsforAddingPublicCloudAccounts.tar.gz 的檔案解壓縮其內容。Terraform 指令碼和相關檔案位於 NSXCloudScripts/cloud-native-deployment/azure/igw 資料夾中。
  3. 更新 Terraform 組態檔。
    1. config.auto.vars 中,新增下列資訊:
      參數 說明
      subscription_id 提供您 Microsoft Azure 帳戶的訂閱識別碼。
      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 中,導覽至為 NSX Manager 和 CSM 建立的網路安全群組 (名稱分別為 <deployment_prefix>-nsx-mgr-sg<deployment_prefix>-nsx-csm-sg),然後為 SSH 新增下列臨時輸入「允許」規則:
      優先順序 名稱 連接埠 通訊協定 來源 目的地 動作
      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-username <csm-username> csm-password <csm-password>
    
    可以從任何 NSX Manager 節點執行 NSX CLI 命令 get cluster status,以取得叢集識別碼。您可以在指定的 NSX Manager 上執行 get certificate api thumbprint 命令,來取得 NSX Manager 指紋。如需有關 CLI 命令的詳細資訊,請參閱 《NSX 命令列介面參考》
    備註: 如果 CSM 應用裝置加入到的 NSX Manager 節點遺失,您可以執行此 NSX CLI 命令,將 CSM 加入其他狀況良好的 NSX Manager 節點之一,或者,您可以使用名為 <deployment_prefix>nsx-mgr-image 的映像檔案重新部署遺失的 NSX Manager 節點,CSM 將會在此節點重新上線時自動將其重新加入。如需詳細資料,請參閱 《NSX 管理指南》中的 〈使用 nsx_mgr_image 在 Microsoft Azure 中重新部署 NSX Manager〉

結果

指令碼會在您的 Microsoft Azure 訂閱中部署下列項目:
  • 用來裝載 NSX Cloud 管理應用裝置的 VNet。此 VNet 名為 <deployment_prefix>-nsx-mgmt-vnet
  • NSX Manager 叢集的三個節點部署所在的可用性集合。此可用性集合的名為 <deployment_prefix>-nsx-aset
  • 名為 <deployment_prefix>nsx-mgmt-rg 的 Microsoft Azure 資源群組。
  • 每個 NSX Manager 節點和 CSM 應用裝置的下列資源:
    1. 名為 <deployment_prefix>nsx-csm 的虛擬機器 (用於 CSM),以及,用於 NSX Manager 叢集的 <deployment_prefix>nsx-mgr0<deployment_prefix>nsx-mgr1<deployment_prefix>nsx-mgr2
    2. 每個虛擬機器的作業系統磁碟。
    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 並不安全。
  • Microsoft Azure 復原服務保存庫的保存庫原則會對所有三個 NSX Manager 節點和 CSM 應用裝置執行週期性備份。此保存庫原則命名為 <deployment_prefix>-nsx-vault,而預設的備份排程會設定為:在每天的 11PM (UTC) 執行。

    如需關於還原選項的詳細資料,請參閱《NSX 管理指南》中的〈管理 Microsoft Azure 中的 NSX Manager 和 CSM 的備份和還原〉

下一步

在 VNet 中部署 PCG