NSX Cloud 提供了 PowerShell 指令碼,可協助您針對一或多個訂閱產生所需的服務主體和角色。

必要條件

  • 您必須具有已安裝 AzureRM 模組的 PowerShell 5.0+。如果您有新的 Azure Powershell Az 模組,則必須執行 Enable-AzureRmAlias 命令,以確保 NSX Cloud 的 AzureRM Cmdlet 可成功執行。
  • 您必須是擁有者或具有相應權限,才能在所有 Microsoft Azure 訂閱中建立和指派角色。
備註: Microsoft Azure 的回應時間可能會導致首次執行指令碼時失敗。如果指令碼失敗,請嘗試再次執行。

程序

  1. 在 Windows 桌面或伺服器上,從 NSX [下載] 頁面 > 驅動程式與工具 > NSX Cloud 指令碼 > Microsoft Azure,下載名為 CreateNSXCloudCredentials.zip 的 ZIP 檔案。

  2. 在 Windows 系統中,解壓縮 ZIP 檔案的下列內容:
    指令碼/檔案 說明
    CreateNsxRoles.ps1 此 PowerShell 指令碼用以為 CSMPCG 產生 NSX Cloud 服務主體和受管理身分識別角色。此指令碼採用下列參數:
    • -subscriptionId <the Transit_VNet's_Azure_subscription_ID>
    • (選用) -servicePrincipalName <Service_Principal_Name>
    • (選用) -useOneServicePrincipal
    AddServicePrincipal.ps1 如果您想要新增多個訂閱並為每個訂閱指派不同的服務主體,就必須使用此選用指令碼。請參閱下列步驟中的案例 3。此指令碼採用下列參數:
    • -computeSubscriptionId <the_Compute_VNet's_Azure_subscription_ID>
    • -transitSubscriptionId <the Transit_VNet's_Azure_Subscription_ID>
    • -csmRoleName <CSM_Role_Name>
    • -servicePrincipalName <Service_Principal_Name>
    nsx_csm_role.json CSM 角色名稱與權限的 JSON 範本。必須將此檔案做為 PowerShell 指令碼的輸入,且此檔案必須與指令碼位於相同的資料夾。
    nsx_pcg_role.json PCG 角色名稱與權限的 JSON 範本。必須將此檔案做為 PowerShell 指令碼的輸入,且此檔案必須與指令碼位於相同的資料夾。
    備註: 預設 PCG (閘道) 角色名稱為 nsx-pcg-role。在 CSM 中新增訂閱時,您必須提供此值。
  3. 案例 1:您有一個要使用 NSX Cloud 啟用的 Microsoft Azure 訂閱。
    1. 從 PowerShell 執行個體,移至下載 Microsoft Azure 指令碼和 JSON 檔案的目錄。
    2. 使用參數 -SubscriptionId 執行名為 CreateNsxRoles.ps1 的指令碼,如下所示:
      .\CreateNsxRoles.ps1 -subscriptionId <the_single_Azure_subscription_ID> 
      備註: 如果您想要覆寫 nsx-service-admin 的預設服務主體名稱,也可以使用參數 - servicePrincipalName。Microsoft Azure Active Directory 的服務主體名稱必須是唯一的。
  4. 案例 2:相同 Microsoft Azure 目錄下有多個要使用 NSX Cloud 啟用的 Microsoft Azure 訂閱,但想要在所有訂閱中使用一個 NSX Cloud 服務主體。
    1. 從 PowerShell 執行個體,移至下載 Microsoft Azure 指令碼和 JSON 檔案的目錄。
    2. 編輯每個 JSON 檔案,以便在標題為 「AssignableScopes」的區段下新增其他訂閱識別碼的清單,例如:
      "AssignableScopes": [
      
      "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      
      "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-ffffffffffff",
      
      "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-000000000000"
      備註: 您必須使用此範例中顯示的格式來新增訂閱識別碼: "/subscriptions/<Subscription_ID>"
    3. 使用參數 -subscriptionID -useOneServicePrincipal 執行名為 CreateNsxRoles.ps1 的指令碼:
      .\CreateNsxRoles.ps1 -subscriptionId <the_Transit_VNet's_Azure_subscription_ID> -useOneServicePrincipal 
      備註: 如果您想要使用預設名稱 nsx-service-admin,請省略此處的服務主體名稱。如果您的 Microsoft Azure Active Directory 中已存在該服務主體名稱,則在不指定服務主體名稱的情況下執行此指令碼會更新該服務主體。
  5. 案例 3:相同 Microsoft Azure 目錄下有多個要使用 NSX Cloud 啟用的 Microsoft Azure 訂閱,但想要對不同的訂閱使用不同的 NSX Cloud 服務主體。
    1. 從 PowerShell 執行個體,移至下載 Microsoft Azure 指令碼和 JSON 檔案的目錄。
    2. 依照第二個案例中的步驟 bc,在每個 JSON 檔案中新增多個訂閱至 AssignableScopes 區段。
    3. 使用參數 -subscriptionID 執行名為 CreateNsxRoles.ps1 的指令碼:
      .\CreateNsxRoles.ps1 -subscriptionId <One of the subscription_IDs> 
      備註: 如果您想要使用預設名稱 nsx-service-admin,請省略此處的服務主體名稱。如果您的 Microsoft Azure Active Directory 中已存在該服務主體名稱,則在不指定服務主體名稱的情況下執行此指令碼會更新該服務主體。
    4. 使用下列參數執行名為 AddServicePrincipal.ps1 的指令碼:
      參數
      -computeSubscriptionId Compute_VNet 的 Azure 訂閱識別碼
      -transitSubscriptionId 傳送 VNet 的 Azure 訂閱識別碼
      -csmRoleName nsx_csm_role.JSON 檔案取得此值。
      -servicePrincipalName 新的服務主體名稱
      ./AddServicePrincipal.ps1 -computeSubscriptionId <the_Compute_VNet's_Azure_subscription_ID>
       -transitSubscriptionId <the_Tranist_VNet's_Azure_Subscription_ID> 
      -csmRoleName <CSM_Role_Name>
      -servicePrincipalName <new_Service_Principal_Name>”
  6. 尋找可執行 PowerShell 指令碼的相同目錄中的檔案。其名稱類似於:NSXCloud_ServicePrincipal_<your_subscription_ID>_<NSX_Cloud_Service_Principal_name>。此檔案包含在 CSM 中新增 Microsoft Azure 訂閱所需的資訊。
    • 用戶端識別碼
    • 用戶端金鑰
    • 承租人識別碼
    • 訂閱識別碼

結果

將會建立下列建構:

  • NSX Cloud 的 Azure AD 應用程式。

  • NSX Cloud 應用程式的 Azure Resource Manager 服務主體。

  • 連結至服務主體帳戶之 CSM 的角色。

  • 使 PCG 能夠在公有雲詳細目錄上運作的角色。

  • 在您執行 PowerShell 指令碼的相同目錄中,會建立名稱類似於 NSXCloud_ServicePrincipal_<your_subscription_ID>_<NSX_Cloud_Service_Principal_name> 的檔案。此檔案包含在 CSM 中新增 Microsoft Azure 訂閱所需的資訊。
備註: 請參閱用於建立 CSMPCG 角色的 JSON 檔案,以取得在角色建立後可供角色使用的權限清單。

下一步

在 CSM 中新增 Microsoft Azure 訂閱
備註: 為多個訂閱啟用 NSX Cloud 時,您必須將每個單獨的訂閱分別新增至 CSM,例如,如果您總共有五個訂閱,則必須在 CSM 中新增五個 Microsoft Azure 帳戶,並且其他所有值相同但訂閱識別碼不同。