Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí této šablony Azure Resource Manageru (šablona ARM) nasaďte SQL Server na virtuální počítač Azure.
Šablona ARM je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Šablona používá deklarativní syntaxi. V deklarativní syntaxi popíšete zamýšlené nasazení, aniž byste museli psát sekvenci programovacích příkazů pro vytvoření tohoto nasazení.
Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure. Šablona se otevře v prostředí Azure Portal.
Požadavky
Šablona ARM virtuálního počítače s SQL Serverem vyžaduje následující:
- Nejnovější verze Azure CLI nebo PowerShellu
- Předem nakonfigurovaná skupina prostředků s připravenou virtuální sítí a podsítí.
- Předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet před tím, než začnete.
Kontrola šablony
Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.17.1.54307",
"templateHash": "3407567292495018002"
}
},
"parameters": {
"virtualMachineName": {
"type": "string",
"defaultValue": "myVM",
"metadata": {
"description": "The name of the VM"
}
},
"virtualMachineSize": {
"type": "string",
"defaultValue": "Standard_D8s_v3",
"metadata": {
"description": "The virtual machine size."
}
},
"existingVirtualNetworkName": {
"type": "string",
"metadata": {
"description": "Specify the name of an existing VNet in the same resource group"
}
},
"existingVnetResourceGroup": {
"type": "string",
"defaultValue": "[resourceGroup().name]",
"metadata": {
"description": "Specify the resrouce group of the existing VNet"
}
},
"existingSubnetName": {
"type": "string",
"metadata": {
"description": "Specify the name of the Subnet Name"
}
},
"imageOffer": {
"type": "string",
"defaultValue": "sql2019-ws2022",
"allowedValues": [
"sql2019-ws2019",
"sql2017-ws2019",
"sql2019-ws2022",
"SQL2016SP1-WS2016",
"SQL2016SP2-WS2016",
"SQL2014SP3-WS2012R2",
"SQL2014SP2-WS2012R2"
],
"metadata": {
"description": "Windows Server and SQL Offer"
}
},
"sqlSku": {
"type": "string",
"defaultValue": "standard-gen2",
"allowedValues": [
"standard-gen2",
"enterprise-gen2",
"SQLDEV-gen2",
"web-gen2",
"enterprisedbengineonly-gen2"
],
"metadata": {
"description": "SQL Server Sku"
}
},
"adminUsername": {
"type": "string",
"metadata": {
"description": "The admin user name of the VM"
}
},
"adminPassword": {
"type": "securestring",
"metadata": {
"description": "The admin password of the VM"
}
},
"storageWorkloadType": {
"type": "string",
"defaultValue": "General",
"allowedValues": [
"General",
"OLTP",
"DW"
],
"metadata": {
"description": "SQL Server Workload Type"
}
},
"sqlDataDisksCount": {
"type": "int",
"defaultValue": 1,
"maxValue": 8,
"minValue": 1,
"metadata": {
"description": "Amount of data disks (1TB each) for SQL Data files"
}
},
"dataPath": {
"type": "string",
"defaultValue": "F:\\SQLData",
"metadata": {
"description": "Path for SQL Data files. Please choose drive letter from F to Z, and other drives from A to E are reserved for system"
}
},
"sqlLogDisksCount": {
"type": "int",
"defaultValue": 1,
"maxValue": 8,
"minValue": 1,
"metadata": {
"description": "Amount of data disks (1TB each) for SQL Log files"
}
},
"logPath": {
"type": "string",
"defaultValue": "G:\\SQLLog",
"metadata": {
"description": "Path for SQL Log files. Please choose drive letter from F to Z and different than the one used for SQL data. Drive letter from A to E are reserved for system"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"secureBoot": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Secure Boot setting of the virtual machine."
}
},
"vTPM": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "vTPM setting of the virtual machine."
}
}
},
"variables": {
"networkInterfaceName": "[format('{0}-nic', parameters('virtualMachineName'))]",
"networkSecurityGroupName": "[format('{0}-nsg', parameters('virtualMachineName'))]",
"networkSecurityGroupRules": [
{
"name": "RDP",
"properties": {
"priority": 300,
"protocol": "Tcp",
"access": "Allow",
"direction": "Inbound",
"sourceAddressPrefix": "*",
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"destinationPortRange": "3389"
}
}
],
"publicIpAddressName": "[format('{0}-publicip-{1}', parameters('virtualMachineName'), uniqueString(parameters('virtualMachineName')))]",
"publicIpAddressType": "Dynamic",
"publicIpAddressSku": "Basic",
"diskConfigurationType": "NEW",
"nsgId": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]",
"subnetRef": "[resourceId(parameters('existingVnetResourceGroup'), 'Microsoft.Network/virtualNetWorks/subnets', parameters('existingVirtualNetworkName'), parameters('existingSubnetName'))]",
"dataDisksLuns": "[range(0, parameters('sqlDataDisksCount'))]",
"logDisksLuns": "[range(parameters('sqlDataDisksCount'), parameters('sqlLogDisksCount'))]",
"dataDisks": {
"createOption": "Empty",
"caching": "ReadOnly",
"writeAcceleratorEnabled": false,
"storageAccountType": "Premium_LRS",
"diskSizeGB": 1023
},
"tempDbPath": "D:\\SQLTemp",
"extensionName": "GuestAttestation",
"extensionPublisher": "Microsoft.Azure.Security.WindowsAttestation",
"extensionVersion": "1.0",
"maaTenantName": "GuestAttestation"
},
"resources": [
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2022-01-01",
"name": "[variables('publicIpAddressName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[variables('publicIpAddressSku')]"
},
"properties": {
"publicIPAllocationMethod": "[variables('publicIpAddressType')]"
}
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2022-01-01",
"name": "[variables('networkSecurityGroupName')]",
"location": "[parameters('location')]",
"properties": {
"securityRules": "[variables('networkSecurityGroupRules')]"
}
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2022-01-01",
"name": "[variables('networkInterfaceName')]",
"location": "[parameters('location')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "[variables('subnetRef')]"
},
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIpAddressName'))]"
}
}
}
],
"enableAcceleratedNetworking": true,
"networkSecurityGroup": {
"id": "[variables('nsgId')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]",
"[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIpAddressName'))]"
]
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2022-03-01",
"name": "[parameters('virtualMachineName')]",
"location": "[parameters('location')]",
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('virtualMachineSize')]"
},
"storageProfile": {
"copy": [
{
"name": "dataDisks",
"count": "[length(range(0, length(range(0, add(parameters('sqlDataDisksCount'), parameters('sqlLogDisksCount'))))))]",
"input": {
"lun": "[range(0, add(parameters('sqlDataDisksCount'), parameters('sqlLogDisksCount')))[range(0, length(range(0, add(parameters('sqlDataDisksCount'), parameters('sqlLogDisksCount')))))[copyIndex('dataDisks')]]]",
"createOption": "[variables('dataDisks').createOption]",
"caching": "[if(greaterOrEquals(range(0, add(parameters('sqlDataDisksCount'), parameters('sqlLogDisksCount')))[range(0, length(range(0, add(parameters('sqlDataDisksCount'), parameters('sqlLogDisksCount')))))[copyIndex('dataDisks')]], parameters('sqlDataDisksCount')), 'None', variables('dataDisks').caching)]",
"writeAcceleratorEnabled": "[variables('dataDisks').writeAcceleratorEnabled]",
"diskSizeGB": "[variables('dataDisks').diskSizeGB]",
"managedDisk": {
"storageAccountType": "[variables('dataDisks').storageAccountType]"
}
}
}
],
"osDisk": {
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "Premium_LRS"
}
},
"imageReference": {
"publisher": "MicrosoftSQLServer",
"offer": "[parameters('imageOffer')]",
"sku": "[parameters('sqlSku')]",
"version": "latest"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
}
]
},
"osProfile": {
"computerName": "[parameters('virtualMachineName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]",
"windowsConfiguration": {
"enableAutomaticUpdates": true,
"provisionVMAgent": true
}
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": "[parameters('secureBoot')]",
"vTpmEnabled": "[parameters('vTPM')]"
},
"securityType": "TrustedLaunch"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
]
},
{
"condition": "[and(parameters('vTPM'), parameters('secureBoot'))]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2022-03-01",
"name": "[format('{0}/{1}', parameters('virtualMachineName'), variables('extensionName'))]",
"location": "[parameters('location')]",
"properties": {
"publisher": "[variables('extensionPublisher')]",
"type": "[variables('extensionName')]",
"typeHandlerVersion": "[variables('extensionVersion')]",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {
"AttestationConfig": {
"MaaSettings": {
"maaEndpoint": "",
"maaTenantName": "[variables('maaTenantName')]"
},
"AscSettings": {
"ascReportingEndpoint": "",
"ascReportingFrequency": ""
},
"useCustomToken": "false",
"disableAlerts": "false"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
]
},
{
"type": "Microsoft.SqlVirtualMachine/sqlVirtualMachines",
"apiVersion": "2022-07-01-preview",
"name": "[parameters('virtualMachineName')]",
"location": "[parameters('location')]",
"properties": {
"virtualMachineResourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
"sqlManagement": "Full",
"sqlServerLicenseType": "PAYG",
"storageConfigurationSettings": {
"diskConfigurationType": "[variables('diskConfigurationType')]",
"storageWorkloadType": "[parameters('storageWorkloadType')]",
"sqlDataSettings": {
"luns": "[variables('dataDisksLuns')]",
"defaultFilePath": "[parameters('dataPath')]"
},
"sqlLogSettings": {
"luns": "[variables('logDisksLuns')]",
"defaultFilePath": "[parameters('logPath')]"
},
"sqlTempDbSettings": {
"defaultFilePath": "[variables('tempDbPath')]"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
]
}
],
"outputs": {
"adminUsername": {
"type": "string",
"value": "[parameters('adminUsername')]"
}
}
}
V šabloně je definováno pět prostředků Azure:
- Microsoft.Network/publicIpAddresses: Vytvoří veřejnou IP adresu.
- Microsoft.Network/networkSecurityGroups: Vytvoří skupinu zabezpečení sítě.
- Microsoft.Network/networkInterfaces: Nakonfiguruje síťové rozhraní.
- Microsoft.Compute/virtualMachines: Vytvoří virtuální počítač v Azure.
- Microsoft.SqlVirtualMachine/SqlVirtualMachines: zaregistruje virtuální počítač s rozšířením agenta SQL IaaS.
Další šablony SQL Serveru na virtuálních počítačích Azure najdete v galerii šablon pro rychlý start.
Nasazení šablony
Vyberte následující obrázek a přihlaste se k Azure a otevřete šablonu. Šablona vytvoří virtuální počítač s nainstalovanou zamýšlenou verzí SQL Serveru a zaregistruje se s rozšířením agenta SQL IaaS.
Vyberte nebo zadejte následující hodnoty.
- Předplatné: Vyberte předplatné Azure.
- Skupina prostředků: Připravená skupina prostředků pro virtuální počítač s SQL Serverem.
- Oblast: Vyberte oblast. Například USA – střed.
- Název virtuálního počítače: Zadejte název virtuálního počítače s SQL Serverem.
- Velikost virtuálního počítače: V rozevíracím seznamu vyberte odpovídající velikost vašeho virtuálního počítače.
- Název existující virtuální sítě: Zadejte název připravené virtuální sítě pro virtuální počítač s SQL Serverem.
- Existující skupina prostředků virtuální sítě: Zadejte skupinu prostředků, ve které je vaše virtuální síť připravena.
- Název existující podsítě: Název připravené podsítě.
- Nabídka image: Zvolte image SQL Serveru a Windows Serveru, která nejlépe vyhovuje vašim obchodním potřebám.
- SQL SKU: Zvolte edici SQL Server SKU, která nejlépe vyhovuje vašim obchodním potřebám.
- Uživatelské jméno správce: Uživatelské jméno správce virtuálního počítače.
- Heslo správce: Heslo používané účtem správce virtuálního počítače.
- Typ úlohy úložiště: Typ úložiště pro úlohu, která nejlépe odpovídá vaší firmě.
- Počet datových disků SQL: Počet disků, které SQL Server používá pro datové soubory.
- Cesta k datům: Cesta k datovým souborům SQL Serveru.
- Počet disků protokolu SQL: Počet disků, které SQL Server používá pro soubory protokolů.
- Cesta k protokolu: Cesta k souborům protokolu SQL Serveru.
-
Umístění: Umístění pro všechny prostředky by mělo zůstat výchozí hodnotou
[resourceGroup().location].
Vyberte možnost Zkontrolovat a vytvořit. Po úspěšném nasazení virtuálního počítače s SQL Serverem se zobrazí oznámení.
K nasazení šablony se použije Azure Portal. Kromě webu Azure Portal můžete také použít Azure PowerShell, Rozhraní příkazového řádku Azure a rozhraní REST API. Další metody nasazení najdete v tématu Nasazení šablon.
Kontrola nasazených prostředků
K kontrole nasazených prostředků můžete použít Azure CLI.
echo "Enter the resource group where your SQL Server VM exists:" &&
read resourcegroupName &&
az resource list --resource-group $resourcegroupName
Čištění zdrojů
Pokud už skupinu prostředků nepotřebujete, odstraňte ji pomocí Azure CLI nebo Azure PowerShellu:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Další kroky
Podrobný kurz, který vás provede procesem vytvoření šablony, najdete tady:
Další způsoby nasazení virtuálního počítače s SQL Serverem najdete tady:
Další informace najdete v přehledu SQL Serveru na virtuálních počítačích Azure.