描述建立和管理 Azure 虛擬機器的可用選項

已完成

Azure 入口網站是您在入門時建立 VM 等資源的最簡單方式。 不過,它不一定是使用 Azure 最有效率或最快的方式,特別是您需要同時建立數個資源時。 在我們的案例中,我們最後會建立數十個 VM 來處理不同的工作。 在 Azure 入口網站中以手動方式建立這些 VM 不是一件有趣的工作!

讓我們看看在 Azure 中建立及管理資源的一些其他方法:

  • Azure 資源管理員範本
  • Azure PowerShell
  • Azure CLI
  • Azure REST API
  • Azure 用戶端 SDK
  • Azure VM 延伸模組
  • Azure 自動化服務

Resource Manager 範本

假設您要使用相同的設定建立 VM 的複本。 您可以建立 VM 映像、將它上傳至 Azure,然後參考它作為新 VM 的基礎。 此處理序沒有效率且耗時。 Azure 為您提供建立範本的選項,您可以透過該範本建立 VM 的完整複本。

Resource Manager 範本是 JSON 檔案,該檔案定義您需要為您的解決方案部署的資源。

您可以為 VM 建立資源範本。 從 VM 功能表中,選取位於 [自動化] 下方的 [匯出範本]

Screenshot showing Export template option for a VM.

注意

本學習課程模組沙箱中包含的資源原則,會讓您無法匯出剛才建立的 VM;然而,所匯出範本是容易編輯的 JSON 檔案。 您可以選擇下載或儲存範本以供稍後使用,或根據此範本立即部署新的 VM。 例如,您可能會從測試環境中的範本建立虛擬機器,並發現它不太適合取代您的內部部署機器。 您可以刪除資源群組,這會刪除所有資源、調整範本,並再試一次。 如果只想要變更現有的已部署資源,可以變更用來建立該資源的範本,然後予以重新部署。 Resource Manager 會變更資源以符合新的範本。

在以想要的方式執行後,可以使用該範本,輕鬆地複寫基礎結構的多個版本,例如暫存和生產。 您可以將虛擬機器名稱、網路名稱、儲存體帳戶名稱等欄位參數化,並重複載入範本,以使用不同的參數來自訂每個環境。

如需使用範本的詳細資訊,請參閱快速入門:使用 ARM 範本建立 Ubuntu Linux 虛擬機器

Azure CLI

指令碼和命令列 Azure 互動的其中一個選項是 Azure CLI

Azure CLI 是用來從命令列管理 Azure 資源 (例如虛擬機器和磁碟) 的 Microsoft 跨平台命令列工具。 您可以透過 Linux、macOS 與 Windows 使用,或在瀏覽器中使用 Cloud Shell。

例如,您可以在 CLI 中,使用 az vm create 命令建立 Azure VM。

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Azure CLI 可以與其他指令碼語言搭配使用,如 Ruby 和 Python。

在<使用 Azure CLI 工具管理虛擬機器>課程模組中,深入了解如何建立和管理 VM。

如需使用 Azure CLI 建立 VM 的詳細資訊,請參閱快速入門:使用 CLI 建立 Linux 虛擬機器

Azure PowerShell

Azure PowerShell 很適合用於一次性的互動式工作和/或重複工作的自動化。

注意

PowerShell 是一種跨平台 Shell,提供 Shell 視窗和命令剖析之類的服務。 Azure PowerShell 是選擇性的附加套件,用來新增 Azure 特有的命令 (稱為 Cmdlet)。 您可以在不同的訓練課程模組中深入了解如何安裝和使用 Azure PowerShell。

例如,您可以使用 New-AzVM Cmdlet 來建立新的 Debian 型 Azure 虛擬機器。

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian11 `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

如這裡所示,您會提供各種不同的參數來處理大量的可用 VM 組態設定。 大多數參數都有合理值;您只要需要指定必要參數。 在搭配使用指令碼與 PowerShell 將 Azure 工作自動化課程模組中,深入了解如何使用 Azure PowerShell 建立和管理 VM。

如需使用 PowerShell 建立 VM 的詳細資訊,請參閱快速入門:使用 PowerShell 建立 Linux 虛擬機器

Terraform

Azure 也有 Terraform 提供者,因此您可以輕鬆地使用 Terraform 來建立及管理 VM。 Terraform 可讓您定義、預覽和部署雲端基礎結構。 使用 Terraform 時,您可以使用 HCL 語法來建立設定檔。 HCL 語法可讓您指定雲端提供者 (例如 Azure) 和構成雲端基礎結構的元素。 建立設定檔之後,您可以建立執行計畫,讓您先預覽基礎結構變更,之後再部署。 驗證變更之後,您可以套用執行計畫來部署基礎結構。

如需詳細資訊,請參閱 Azure Terraform 提供者 (英文) 與快速入門:使用 Terraform 建立 VM

程式設計 (API)

一般而言,如果您有要執行的簡單指令碼,而且想要使用命令列工具,Azure PowerShell 和 Azure CLI 都是不錯的選項。 說到更複雜的案例,如果建立和管理 VM 形成具有複雜邏輯的較大型應用程式一部分,則需要另一種方法。

您可以用程式設計方式與 Azure 中的每種資源類型互動。

Azure REST API

Azure REST API 為開發人員提供依資源分類的作業,以及可建立和管理 VM 的能力。 作業會公開為 URI,其中含有對應的 HTTP 方法 (GETPUTPOSTDELETEPATCH) 和對應的回應。

Azure 計算 API 可讓您透過程式設計方式,存取虛擬機器及存取支援虛擬機器的資源。

如需詳細資訊,請參閱虛擬機器 REST API 參考 (部分機器翻譯)。

Azure 用戶端 SDK

即使 REST API 與平台和語言無關,但在大部分的情況下,開發人員將會尋求更高層級的抽象概念。 Azure 用戶端 SDK 會封裝 Azure REST API,使開發人員更輕鬆地與 Azure 互動。

Azure 用戶端 SDK 可用於各種語言和架構,包括 .NET 架構語言,例如 C#、Java、Node.js、PHP、Python、Ruby 和 Go。

以下是 C# 程式碼的範例程式碼片段,可使用 Microsoft.Azure.Management.Fluent NuGet 套件建立 Azure 虛擬機器。

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

以下是 Java 中使用 Azure Java SDK 的相同程式碼片段。

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

Azure VM 延伸模組

假設您想要在初始部署之後,於虛擬機器上設定及安裝其他軟體。 您希望這項工作使用特定設定自動監視及執行。

Azure 虛擬機器延伸模組是小型應用程式,可讓您在初始部署之後設定 Azure 虛擬機器上的工作並加以自動化。

如需詳細資訊,請參閱 Azure 虛擬機器擴充功能和功能

Azure 自動化服務

節省時間、減少錯誤並提高效率是管理遠端基礎結構時,所面臨的一些最重大操作管理挑戰。 如果您有許多基礎結構服務,可能要考慮在 Azure 中使用較高層級的服務,協助您從較高層級進行操作。

Azure 自動化讓您能整合服務,輕鬆地將頻繁執行、耗時且易出錯的管理工作自動化。 這些服務包括「處理序自動化」、「組態管理」與「更新管理」

  • 程序自動化。 假設您擁有一部 VM,並監視其中特定的錯誤事件。 您想在回報時立即採取動作並修正問題。 程序自動化可讓您設定監看員工作,以回應資料中心內可能發生的事件。

  • 設定管理。 您可能想要追蹤可供 VM 上執行的作業系統使用的軟體更新。 有一些您可能想要包含或排除的特定更新。 組態管理可讓您追蹤這些更新,並視需要採取動作。 您會使用 Microsoft Endpoint Configuration Manager 來管理公司的電腦、伺服器和行動裝置。 您可以使用 Configuration Manager 將這項支援擴展到 Azure VM。

  • 更新管理。 使用此服務來管理 VM 的更新和修補程式。 使用此服務,您能夠評估可用更新的狀態、排定安裝,以及檢閱部署結果來驗證更新已成功套用。 更新管理會併入提供程序和組態管理的服務。 您可以直接從 Azure 自動化帳戶啟用 VM 的更新管理。 您也可以從入口網站的虛擬機器窗格中,啟用單一虛擬機器的更新管理。

自動關機

自動關機是 Azure 中的一項功能,可讓您依排程自動關閉 VM。 使用自動關機以確保您的 VM 在不需要時不會執行,從而節省成本。 您可以設定每日或每週自動關機的排程,也可以指定排程的時區。

若要瀏覽至 Azure 入口網站 VM 中的 [自動關機] 功能,請移至入口網站中的 VM 刀鋒視窗,按一下 [作業] 區段下的 [自動關機],然後根據您的喜好設定自動關機設定。

Screenshot showing Auto-shutdown option for a VM.

如需詳細資訊,請參閱自動關機

如您所見,Azure 提供各種用來建立及管理資源的工具,以便您將管理作業整合到適合您的流程中。 讓我們檢查一些其他的 Azure 服務,以確定您的基礎結構資源順暢地執行。