建立與管理 Windows Server 執行個體

Compute Engine 提供的公開映像檔具有可用於建立執行個體的 Windows Server。有關如何在已預先安裝 SQL Server 的情況下建立 Windows Server 執行個體的操作說明,請參閱建立 SQL Server 執行個體一文。

至於可在 Compute Engine 上執行的 Windows Server 執行個體與 Windows 應用程式,如需相關的一般資訊,請參閱 Compute Engine 上的 Windows 一文。

事前準備

建立 Windows Server 執行個體

如要以 Windows Server 建立執行個體,請指定您需要的 Windows 特定版本映像檔系列。Compute Engine 提供了數種版本的 Windows Server,大多會同時提供一般映像檔與受防護的 VM 映像檔。受防護的 VM 映像檔提供了多種安全性功能,例如符合 UEFI 標準的韌體、安全啟動與 vTPM 防護測量啟動功能等。如果您為執行個體選擇 SSD 儲存空間,就無法使用受防護 VM 的完整性監控功能,也無法針對防護資料使用 vTPM。如需可用映像檔系列的清單,請參閱公開映像檔一節。

建立透過外部 IP 啟用的 Windows Server 執行個體

本節說明如何建立具有外部 IP 位址的 Windows Server 執行個體。您的虛擬私人雲端網路必須設為允許存取 kms.windows.googlecloud.com

建立 Windows Server 執行個體

主控台

建立基本 Windows 執行個體:

  1. 前往 GCP 主控台的「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 按一下 [建立執行個體]
  3. 在「Boot disk」(開機磁碟) 部分中,按一下 [Change] (變更) 即可開始設定開機磁碟。
  4. OS images分頁上,選擇a Windows image

  5. 按一下 [選取]
  6. 按一下 [Create] (建立) 來建立執行個體。

如何建立受防護 VM Windows 執行個體:

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往「VM instances」(VM 執行個體) 頁面

  2. 按一下 [Create instance] (建立執行個體)。
  3. 在「Boot disk」(開機磁碟) 區段中,按一下 [Change] (變更) 開始設定您的開機磁碟。
  4. 在「OS images」(作業系統映像檔) 分頁中選擇 [a Windows image] (Windows 映像檔)。
    如果您只要查看受防護的 VM 映像檔,請選取 [Show images with Shielded VM features] (顯示具備受防護 VM 功能的映像檔)。

  5. 按一下 [Select] (選取)

  6. (選用) 變更執行個體的受防護 VM 設定:

    1. 按一下「Management Security Disks Networking」(管理、安全性、磁碟、網路) 區段中的 [Security] (安全性) 分頁標籤。
    2. 如果您要停用安全啟動功能,請取消勾選 [Turn on Secure Boot] (啟用安全啟動功能)。安全啟動功能可防止 VM 執行個體受到啟動層級和核心層級的惡意軟體和 Rootkit 攻擊。詳情請參閱安全啟動一節。
    3. 如果您要停用虛擬信任平台模組 (vTPM),請取消勾選 [Turn on vTPM] (啟用 vTPM)。vTPM 可以啟用測量啟動功能,來驗證 VM 的啟動前和啟動完整性。詳情請參閱虛擬信任平台模組 (vTPM) 一節。

    4. 如果您要停用完整性監控功能,請取消勾選 [Turn on Integrity Monitoring] (啟用完整性監控功能)。完整性監控功能可以讓您利用 Stackdriver 來監控受防護 VM 執行個體的啟動完整性。詳情請參閱完整性監控一節。

  7. 按一下 [Create] (建立) 以建立執行個體。

gcloud

使用 compute images list 指令,查看可用 Windows Server 映像檔清單:

如要查看可用的非受防護 VM Windows Server 映像檔,請使用以下指令:

gcloud compute images list --project windows-cloud --no-standard-images

如要查看可用的受防護 VM 映像檔 (包括 Windows 映像檔) 清單,則可使用下列指令:

gcloud compute images list --project gce-uefi-images --no-standard-images

使用 compute instances create 指令建立新執行個體,並指定其中一個 Windows Server 公開映像檔的映像檔系列。

gcloud compute instances create [INSTANCE_NAME] \
    --image-project windows-cloud \
    --image-family [IMAGE_FAMILY] \
    --machine-type [MACHINE_TYPE] \
    --boot-disk-size [BOOT_DISK_SIZE] \
    --boot-disk-type [BOOT_DISK_TYPE]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE_FAMILY] 為 Windows Server 映像檔的其中一個公開映像檔系列
  • [MACHINE_TYPE] 是可用的機器類型之一。
  • [BOOT_DISK_SIZE] 是開機磁碟的大小,單位為 GB。永久磁碟越大則總處理量越高
  • [BOOT_DISK_TYPE] 是執行個體的開機磁碟類型。指定 pd-ssd 即可使用更快速的 SSD 永久磁碟,指定 pd-standard 則可使用標準 HDD 永久磁碟。

如果您選擇的映像檔支援受防護的 VM,則可選擇使用下列其中一個標記變更執行個體的受防護 VM 設定:

  • --no-shielded-vm-secure-boot:停用安全啟動功能。安全啟動功能可防止 VM 執行個體受到啟動層級和核心層級的惡意軟體和 Rootkit 攻擊。詳情請參閱安全啟動一節。
  • --no-shielded-vm-vtpm:停用虛擬信任平台模組 (vTPM)。vTPM 可啟用測量啟動功能,來驗證 VM 的啟動前和啟動完整性。詳情請參閱虛擬信任平台模組 (vTPM) 一節。

  • --no-shielded-vm-integrity-monitoring:停用完整性監控功能。完整性監控功能可以讓您利用 Stackdriver 來監控受防護 VM 執行個體的啟動完整性。詳情請參閱完整性監控一節。

下列範例會建立停用安全啟動功能的 Windows 2012 受防護 VM 執行個體:

 gcloud compute instances create my-instance \
 --image-family windows-2012-r2 --image-project gce-uefi-images \
 --no-shielded-vm-secure-boot

API

如要以 API 建立執行個體,請在執行個體建立要求中加入 initializeParams 屬性,並指定 Windows 映像檔。舉例來說,您的要求主體可能如下所示:

instance = {
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "disks": [{
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
         "diskName": "[DISK_NAME]",
         "sourceImage": "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/images/family/[IMAGE_FAMILY]",
         "diskSizeGb": "[BOOT_DISK_SIZE]",
         "diskType": "[BOOT_DISK_TYPE]",
       }
    }],
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
     }],
    "network": "global/networks/default"
  }],
  "serviceAccounts": [{
       "email": DEFAULT_SERVICE_EMAIL,
       "scopes": DEFAULT_SCOPES
  }]
}

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE_FAMILY] 是 Windows Server 或 SQL Server 映像檔的其中一個公開映像檔系列
  • [ZONE] 是這個執行個體所在的區域
  • [MACHINE_TYPE] 是可用的機器類型之一。
  • [BOOT_DISK_SIZE] 是開機磁碟的大小,單位為 GB。永久磁碟越大則總處理量越高
  • [BOOT_DISK_TYPE] 是執行個體的開機磁碟類型。指定 pd-ssd 即可使用更快速的 SSD 永久磁碟,指定 pd-standard 則可使用標準 HDD 永久磁碟。

如果您選擇的映像檔支援受防護的 VM,則可選擇使用下列其中一個布林要求主體項目變更執行個體的「受防護的 VM」設定:

  • enableSecureBoot:啟用或停用安全啟動功能。安全啟動功能可防止 VM 執行個體受到啟動層級和核心層級的惡意軟體和 Rootkit 攻擊。詳情請參閱安全啟動一節。
  • enableVtpm:啟用或停用虛擬信任平台模組 (vTPM)。vTPM 可啟用測量啟動功能,來驗證 VM 的啟動前和啟動完整性。詳情請參閱虛擬信任平台模組 (vTPM) 一節。

  • enableIntegrityMonitoring:啟用或停用完整性監控功能。透過完整性監控功能,您可以利用 Stackdriver 報表來監控及驗證受防護 VM 執行個體的執行階段啟動完整性。詳情請參閱完整性監控一節。

有關如何建立執行個體的詳情,請參閱 instances.insert() 說明文件。

建立 Windows 或 SQL Server 執行個體後,請設定執行個體的初始密碼,以透過遠端桌面協定連線至執行個體

建立透過內部 IP 位址啟用的 Windows Server 執行個體

您必須先在自己的虛擬私人雲端網路中驗證或設定路徑和防火牆規則,藉此允許存取 kms.windows.googlecloud.com,才能建立只有內部 IP 位址的 Windows Server 執行個體。此外,您也必須確認只有內部 IP 位址的 Windows 執行個體位於哪個虛擬私人雲端網路,並為其中的子網路啟用私人 Google 存取權

當您透過 gcloud 指令列建立新的執行個體時,您可以使用 --no-address 標記確認該個體並未獲派外部 IP 位址:

gcloud compute instances create [INSTANCE_NAME] --network [NETWORK_NAME] \
   --subnet [SUBNET_NAME] \
   --no-address \
   --zone [ZONE] \
   --image-project windows-cloud \
   --image-family [IMAGE_FAMILY] \
   --machine-type [MACHINE_TYPE] \
   --boot-disk-size [BOOT_DISK_SIZE] \
   --boot-disk-type [BOOT_DISK_TYPE]

將下列預留位置替換為有效值:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [SUBNET_NAME] 是執行個體將使用之虛擬私人雲端網路中子網路的名稱。這個子網路必須與您為執行個體選擇的區域位於相同地區。
  • [IMAGE_FAMILY] 為 Windows Server 映像檔的其中一個公開映像檔系列
  • [MACHINE_TYPE] 是可用的機器類型之一。
  • [BOOT_DISK_SIZE] 是開機磁碟的大小,單位為 GB。永久磁碟越大則總處理量越高
  • [BOOT_DISK_TYPE] 是執行個體的開機磁碟類型。指定 pd-ssd 即可使用更快速的 SSD 永久磁碟,指定 pd-standard 則可使用標準 HDD 永久磁碟。

由於此執行個體沒有外部 IP 位址,因此您無法直接透過網際網路連線至該個體。您可以使用 Cloud InterconnectCloud VPN,從與您虛擬私人雲端網路相連的其他網路進行連線;也可以先透過遠端桌面協定連線至防禦執行個體,再連線至只有內部 IP 位址的執行個體。

設定 kms.windows.googlecloud.com 存取權

如要執行 Windows 啟用和更新等作業,您的虛擬私人雲端網路必須在轉送和防火牆規則方面符合下列條件。

轉送條件

您的 Windows 執行個體必須能夠透過下一個躍點為「預設網際網路閘道」的路徑存取 kms.windows.googlecloud.com (35.190.247.13)。您無法使用基於 NAT 閘道或 Cloud NAT 的執行個體來啟用 Windows 執行個體,因為啟用要求的來源 IP 位址如果未經確認為 Compute Engine 執行個體,kms.windows.googlecloud.com 就會拒絕這類要求。

您可以使用虛擬私人雲端網路中的預設路徑,將流量直接轉送至 kms.windows.googlecloud.com。如果您已經或即將移除這個路徑,則可建立自訂靜態路徑,並將目標和下一個躍點分別設為 35.190.247.13 和「預設網際網路閘道」

gcloud compute routes create [ROUTE_NAME] \
    --destination-range=35.190.247.13/32 \
    --network=[NETWORK] \
    --next-hop-gateway=default-internet-gateway

請將 [ROUTE_NAME] 替換為此路徑的名稱,並將 [NETWORK] 替換為您虛擬私人雲端網路的名稱。

上述的預設路徑或自訂靜態路徑都會允許具有外部 IP 位址的執行個體存取 kms.windows.googlecloud.com。如果您的 Windows 執行個體沒有外部 IP 位址,您也必須啟用私人 Google 存取權,以讓只有內部 IP 位址的執行個體能將流量傳送至 kms.windows.googlecloud.com 的外部 IP 位址。35.190.247.13 這組 IP 位址會包含在 Google API 和服務的 IP 位址清單中。

防火牆規則條件

默示允許輸出防火牆規則可讓執行個體發出要求並接收已建立的回應。除非您建立了拒絕輸出的自訂防火牆規則,否則您的 Windows 執行個體皆可與 kms.windows.googlecloud.com 通訊。

如要自訂防火牆規則,比較理想的做法是建立高優先順序的允許輸出規則,明確允許與 35.190.247.13 之間的通訊。如此一來,當您修改防火牆規則時,就不會意外停用 Windows 啟用作業。

下列 gcloud 範例會按照上述做法,建立最高優先順序的允許輸出規則:

gcloud compute firewall-rules create [RULE_NAME] \
    --direction=EGRESS \
    --network=[NETWORK] \
    --action=ALLOW \
    --rules=tcp:1688 \
    --destination-ranges=35.190.247.13/32 \
    --priority=0

請將 [RULE_NAME] 替換為此防火牆規則的名稱,並將 [NETWORK] 替換為您虛擬私人雲端網路的名稱。

驗證系統是否成功啟動執行個體

由於 sysprep 程序的緣故,Windows 執行個體的啟動時間會較長。即使 sysprep 程序尚未完成,GCP 主控台仍可能會顯示執行個體正在運作。若要檢查執行個體是否成功啟動且已可供使用,請使用下列指令檢查序列埠輸出:

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

其中 [INSTANCE_NAME] 為您要驗證的執行個體名稱。

...[snip]...
Running schtasks with arguments /run /tn GCEStartup
-->  SUCCESS: Attempted to run the scheduled task "GCEStartup".
-------------------------------------------------------------
Instance setup finished. [INSTANCE_NAME] is ready to use.
-------------------------------------------------------------

停用自動元件更新

若 Windows 執行個體具有 v20170509 以上版本的映像檔,或是 4.1.0 以上版本的代理程式,則系統會透過排程工作自動更新代理程式、中繼資料,以及 sysprep 指令碼等 Google 提供的元件。排程工作是以 google-compute-engine-auto-updater 套件來設定。

若想要手動管理更新,或是使用替代系統來管理,則可移除 google-compute-engine-auto-updater 套件,停用對這些自動元件的更新:

  1. 在 Windows Server 執行個體上,以系統管理員身分開啟 PowerShell 終端機。
  2. 執行 googet remove 指令以移除套件:

    PS C:\\> googet remove google-compute-engine-auto-updater
    

也可以選擇重新安裝套件,啟用自動元件更新:

  1. 在 Windows Server 執行個體上,以系統管理員身分開啟 PowerShell 終端機。
  2. 執行 googet install 指令以安裝套件:

    PS C:\\> googet install google-compute-engine-auto-updater
    

您也可以在專案或執行個體自訂中繼資料中,將 disable-agent-updates 值設為 true 以停用更新。中繼資料的值會停用更新,而不會移除套件或工作。

啟用與停用 Windows 執行個體功能

如果 Windows 執行個體具有 v20170509 以上版本的映像檔,或是 4.1.0 以上版本的代理程式,則可在設定檔或是專案或執行個體自訂中繼資料中設定執行個體。設定檔使用的是 INI 格式,位於以下路徑:

C:\Program Files\Google\Compute Engine\instance_configs.cfg

系統會按照以下優先順序,由最高優先順序開始,依序覆寫設定。

  1. 設定檔中的設定參數
  2. 執行個體層級自訂中繼資料的設定參數
  3. 專案層級自訂中繼資料中的設定參數

舉例而言,如果可以在設定檔中啟用 accountManager 功能,執行個體就會忽略您在自訂中繼資料中設定的參數,以停用該功能。

在設定檔中設定這些參數有項優點,即是在建立 Windows Server 執行個體的自訂映像檔時,系統會保留這些參數設定。而執行個體的壽命期間過後,系統並不會保留執行個體層級的自訂中繼資料。

您可使用下列範例,停用各種不同的 Windows 執行個體功能。

停用帳戶管理員:

  • 設定檔

    [accountManager]
    disable=true
    
  • 將自訂中繼資料中的 disable-account-manager 設為 true

停用位址管理員:

  • 設定檔項目:

    [addressManager]
    disable=true
    
  • 將自訂中繼資料中的 disable-address-manager 設為 true

Windows Server 容錯移轉叢集

啟用 Windows Server 容錯移轉叢集代理程式:

  • 設定檔項目:

    [wsfc]
    enable=true
    
  • 將自訂中繼資料中的 enable-wsfc 設為 true

使用多個內部負載平衡器

請指定內部負載平衡執行個體的 IP 位址,作為容錯移轉叢集之用。此為進階設定,專屬的容錯移轉叢集無需設定。

通常一次會使用一個內部負載平衡執行個體,將網路流量引導至一個 VM 執行個體。若增加第二個內部負載平衡執行個體,而該執行個體把容錯移轉叢集 VM 執行個體作為負載平衡網站後端的一部分,就會有兩個內部負載平衡 IP 位址。若容錯移轉叢集使用 10.0.0.10,而網站的負載平衡器使用的是 10.0.0.11,則容錯移轉叢集使用的負載平衡器就必須由您指定 IP 位址。如此有助於區分叢集使用的位址。

  • 設定檔項目:

    [wsfc]
    addresses=10.0.0.10
    
  • 將自訂中繼資料中的 wsfc-addrs 設為 10.0.0.10

變更叢集代理程式通訊埠

設定容錯移轉叢集代理程式的通訊埠。預設通訊埠為 59998。僅在需要使用不同的通訊埠時,才需要指定通訊埠:

  • 設定檔項目:

    [wsfc]
    port=12345
    
  • 將自訂中繼資料的 wsfc-agent-port 設為通訊埠編號。

映像檔版本附註

較舊的映像檔不會使用設定檔,且僅具有功能子集。若為 v20160112v20170509 之間的映像檔版本,或是 3.2.1.04.0.0 之間的 Windows 代理程式版本,則需使用下列自訂中繼資料值:

  • 將執行個體中繼資料的 disable-account-manager 設為 true,以停用帳戶管理員。
  • 將執行個體中繼資料的 disable-address-manager 設為 true,以停用位址管理員。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件