在 Azure 門戶中預配 SQL Server 虛擬機

Azure 虛擬機擴展是小型應用程序,可在Azure 虛擬機上提供部署后配置和自動化任務。 例如,如果虛擬機要求安裝軟件、防病毒保護或進行 Docker 配置,便可以使用 VM 擴展來完成這些任務。 可以使用 Azure CLI、PowerShell、Azure Resource Manager 模板和 Azure 門戶運行 Azure VM 擴展。 擴展可與新虛擬機部署捆綁在一起,或者針對任何現有系統運行。

本文檔提供虛擬機擴展的概述、使用虛擬機擴展的先決條件,以及有關如何檢測、管理和刪除虛擬機擴展的指南。 由于有許多 VM 擴展可用,每個擴展可能具有唯一的配置,因此本文檔提供通用信息。 擴展特定的詳細信息可在每個特定于單個擴展的文檔中找到。

用例和示例

有許多不同的 Azure VM 擴展可用,每個都有特定用例。 一些示例用例包括:

使用適用于 Windows 的 DSC 擴展將 PowerShell 所需狀態配置應用于虛擬機。 有關詳細信息,請參閱Azure Desired State configuration extension(Azure Desired State Configuration 擴展)。

使用 Datadog 擴展配置 Azure 基礎結構監視功能。 有關詳細信息,請參閱Datadog 博客

使用 Chef 配置 Azure 虛擬機。 有關詳細信息,請參閱使用 Chef 自動執行 Azure 虛擬機部署

除了進程特定的擴展外,自定義腳本擴展也可用于 Windows 和 Linux 虛擬機。 適用于 Windows 的自定義腳本擴展允許在虛擬機上運行任何 PowerShell 腳本。 在設計需要本機 Azure 工具無法提供的配置的 Azure 部署時,這很有用。 有關詳細信息,請參閱Windows VM 自定義腳本擴展

先決條件

每個虛擬機擴展可能都有其自己的一組先決條件。 例如,Docker VM 擴展有支持的 Linux 分發的先決條件。 特定于擴展的文檔中詳細介紹了單個擴展的要求。

Azure VM 代理

Azure VM 代理可管理 Azure 虛擬機與 Azure 結構控制器之間的交互。 VM 代理負責部署和管理 Azure 虛擬機的許多功能層面,包括運行 VM 擴展。 Azure VM 代理預先安裝在 Azure 應用商店映像上,并可安裝在支持的操作系統上。

有關受支持的操作系統以及安裝說明的信息,請參閱Azure 虛擬機代理

發現 VM 擴展

有許多不同的 VM 擴展可與 Azure 虛擬機配合使用。 若要查看完整列表,請使用 Azure Resource Manager PowerShell 模塊運行以下命令。 運行此命令時請確保指定所需的位置。

PowerShell復制

Get-AzureRmVmImagePublisher-LocationChinaNorth | `Get-AzureRmVMExtensionImageType| `Get-AzureRmVMExtensionImage| Select Type, Version

運行 VM 擴展

Azure 虛擬機擴展可以在現有虛擬機上運行,當需要在已部署的 VM 上進行配置更改或恢復連接時,這很有用。 VM 擴展還可以與 Azure Resource Manager 模板部署捆綁。 在 Resource Manager 模板中使用擴展,可以在不進行部署后干預的情況下部署和配置 Azure 虛擬機。

可使用以下方法針對現有虛擬機運行擴展。

PowerShell

存在多個用于運行單個擴展的 PowerShell 命令。 若要查看列表,請運行以下 PowerShell 命令。

PowerShell復制

get-commandSet-AzureRM*Extension*-ModuleAzureRM.Compute

此命令的輸出如下所示:

PowerShell復制

CommandType? ? Name? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Version? ? Source----------------------------CmdletSet-AzureRmVMAccessExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMADDomainExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMAEMExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMBackupExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMBginfoExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMChefExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMCustomScriptExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMDiagnosticsExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMDiskEncryptionExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMDscExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMExtension2.2.0AzureRM.ComputeCmdletSet-AzureRmVMSqlServerExtension2.2.0AzureRM.Compute

以下示例使用自定義腳本擴展從 GitHub 存儲庫將腳本下載到目標虛擬機上,并運行該腳本。 有關自定義腳本擴展的詳細信息,請參閱自定義腳本擴展概述

PowerShell復制

Set-AzureRmVMCustomScriptExtension-ResourceGroupName"myResourceGroup"`-VMName"myVM"-Name"myCustomScript"`-FileUri"https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/windows-custom-script-simple/support-scripts/Create-File.ps1"`-Run"Create-File.ps1"-Location"China North"

在此示例中,VM 訪問擴展用于重置 Windows 虛擬機的管理密碼。 有關 VM 訪問擴展的詳細信息,請參閱重置 Windows VM 中的遠程桌面服務

PowerShell復制

$cred=Get-CredentialSet-AzureRmVMAccessExtension-ResourceGroupName"myResourceGroup"-VMName"myVM"-Name"myVMAccess"`-LocationChinaNorth-UserName$cred.GetNetworkCredential().Username `-Password$cred.GetNetworkCredential().Password-typeHandlerVersion"2.0"

Set-AzureRmVMExtension命令可用于啟動任何 VM 擴展。 有關詳細信息,請參閱Set-AzureRmVMExtension 參考

Azure 門戶

可通過 Azure 門戶將 VM 擴展應用到現有虛擬機。 為此,請選擇要使用的虛擬機,選擇“擴展”,然后單擊“添加”。 這會提供可用擴展的列表。 選擇所需的擴展,并按照向導中的步驟進行操作。

下圖顯示了從 Azure 門戶安裝 Microsoft 反惡意軟件擴展。

Azure Resource Manager 模板

VM 擴展可添加到 Azure Resource Manager 模板,并在部署模板的過程中執行。 使用模板部署擴展對于創建完全配置的 Azure 部署很有用。 例如,以下 JSON 取自一個 Resource Manager 模板,該模板將在每個 VM 上部署一組負載均衡虛擬機和一個 Azure SQL 數據庫,并安裝一個 .NET Core 應用程序。 VM 擴展負責安裝軟件。

有關詳細信息,請參閱完整的Resource Manager 模板

JSON復制

{"apiVersion":"2015-06-15","type":"extensions","name":"config-app","location":"[resourceGroup().location]","dependsOn": ["[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]","[variables('musicstoresqlName')]"],"tags": {"displayName":"config-app"},"properties": {"publisher":"Microsoft.Compute","type":"CustomScriptExtension","typeHandlerVersion":"1.4","autoUpgradeMinorVersion":true,"settings": {"fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"]? ? },"protectedSettings": {"commandToExecute":"[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.chinacloudapi.cn')]"}? ? }}

有關詳細信息,請參閱使用 Windows VM 擴展創作 Azure Resource Manager 模板

保護 VM 擴展數據

運行 VM 擴展時,可能需要提供敏感信息,例如憑據、存儲帳戶名稱和存儲帳戶訪問密鑰。 許多 VM 擴展包括用于對數據進行加密,并且僅在目標虛擬機內對數據進行解密的受保護配置。 每個擴展都有特定的受保護配置架構,在特定于擴展的文檔中會詳細介紹此架構。

以下示例顯示適用于 Windows 的自定義腳本擴展的實例。 請注意,要執行的命令包含一組憑據。 在此示例中,不會加密要執行的命令。

JSON復制

{"apiVersion":"2015-06-15","type":"extensions","name":"config-app","location":"[resourceGroup().location]","dependsOn": ["[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]","[variables('musicstoresqlName')]"],"tags": {"displayName":"config-app"},"properties": {"publisher":"Microsoft.Compute","type":"CustomScriptExtension","typeHandlerVersion":"1.4","autoUpgradeMinorVersion":true,"settings": {"fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"],"commandToExecute":"[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.chinacloudapi.cn')]"}? ? }}

要執行的命令屬性移動到受保護的配置,以保護執行字符串。

JSON復制

{"apiVersion":"2015-06-15","type":"extensions","name":"config-app","location":"[resourceGroup().location]","dependsOn": ["[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]","[variables('musicstoresqlName')]"],"tags": {"displayName":"config-app"},"properties": {"publisher":"Microsoft.Compute","type":"CustomScriptExtension","typeHandlerVersion":"1.4","autoUpgradeMinorVersion":true,"settings": {"fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"]? ? },"protectedSettings": {"commandToExecute":"[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.chinacloudapi.cn')]"}? ? }}

排查 VM 擴展的問題

每個 VM 擴展都有特定的故障排除步驟。 例如,使用自定義腳本擴展時,可在運行該擴展的本地虛擬機上找到腳本執行詳細信息。 任何特定于擴展的故障排除步驟均在特定于擴展的文檔中詳細說明。

以下故障排除步驟適用于所有虛擬機擴展。

查看擴展狀態

針對虛擬機運行虛擬機擴展后,使用以下 PowerShell 命令返回擴展狀態。 請將示例參數名稱替換成自己的值。Name參數采用執行時提供給擴展的名稱。

PowerShell復制

Get-AzureRmVMExtension-ResourceGroupNamemyResourceGroup-VMNamemyVM-NamemyExtensionName

輸出如下所示:

JSON復制

ResourceGroupName? ? ? : myResourceGroupVMName? ? ? ? ? ? ? ? ? : myVMName? ? ? ? ? ? ? ? ? ? : myExtensionNameLocation? ? ? ? ? ? ? ? : chinanorthEtag? ? ? ? ? ? ? ? ? ? :nullPublisher? ? ? ? ? ? ? : Microsoft.Azure.ExtensionsExtensionType? ? ? ? ? : DockerExtensionTypeHandlerVersion? ? ? :1.0Id? ? ? ? ? ? ? ? ? ? ? : /subscriptions/mySubscriptionIS/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/extensions/myExtensionNamePublicSettings? ? ? ? ? :ProtectedSettings? ? ? :ProvisioningState? ? ? : SucceededStatuses? ? ? ? ? ? ? ? :SubStatuses? ? ? ? ? ? :AutoUpgradeMinorVersion : FalseForceUpdateTag? ? ? ? ? :

此外,還可以在 Azure 門戶中找到擴展執行狀態。 如果要查看擴展的狀態,請選擇虛擬機,選擇“擴展” ,并選擇所需的擴展。

重新運行 VM 擴展

在某些情況下,可能需要重新運行虛擬機擴展。 可以通過刪除擴展,并使用所選執行方法重新運行擴展來執行此操作。 若要刪除擴展,請使用 Azure PowerShell 模塊運行以下命令。 請將示例參數名稱替換成自己的值。

PowerShell復制

Remove-AzureRmVMExtension-ResourceGroupNamemyResourceGroup-VMNamemyVM-NamemyExtensionName

此外,還可以使用 Azure 門戶刪除擴展。 為此,請執行以下操作:

選擇虛擬機。

選擇“擴展” 。

選擇所需的擴展。

選擇“卸載” 。

常見 VM 擴展參考

擴展名稱說明詳細信息

適用于 Windows 的自定義腳本擴展針對 Azure 虛擬機運行腳本適用于 Windows 的自定義腳本擴展

適用于 Windows 的 DSC 擴展PowerShell DSC (Desired State Configuration) 擴展適用于 Windows 的 DSC 擴展

Azure 診斷擴展管理 Azure 診斷Azure 診斷擴展

Azure VM 訪問擴展管理用戶和憑據適用于 Linux 的 VM 訪問擴展

立即訪問http://market.azure.cn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容