Další informace o šablonách škálovací sady virtuálních počítačů
Šablony Azure Resource Manageru nabízí skvělou možnost pro nasazení skupin souvisejících prostředků. Tato série kurzů ukazuje, jak vytvořit základní šablonu škálovací sady a jak ji upravit tak, aby vyhovovala různým scénářům. Všechny příklady pocházejí z tohoto úložiště GitHub.
Tato šablona je určená jako jednoduchá. Podrobnější příklady šablon škálovací sady najdete v úložišti GitHub šablon Azure Pro rychlý start a vyhledejte složky, které obsahují řetězec vmss
.
Pokud už máte zkušenosti s vytvářením šablon, můžete přeskočit do části Další kroky a podívat se, jak tuto šablonu upravit.
Definování $schema a contentVersion
Nejprve definujte $schema
šablonu a contentVersion
v šabloně. Element $schema
definuje verzi jazyka šablony a používá se pro zvýrazňování syntaxe sady Visual Studio a podobné funkce ověřování. Azure tento contentVersion
prvek nepoužívá. Místo toho vám pomůže sledovat verzi šablony.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
}
Definovat parametry
Dále definujte dva parametry adminUsername
a adminPassword
. Parametry jsou hodnoty, které zadáte v době nasazení. Parametr adminUsername
je jednoduše string
typ, ale protože adminPassword
je tajný kód, dejte mu typ securestring
. Později se tyto parametry předají do konfigurace škálovací sady.
"parameters": {
"adminUsername": {
"type": "string"
},
"adminPassword": {
"type": "securestring"
}
},
Definování proměnných
Šablony Resource Manageru také umožňují definovat proměnné, které se mají použít později v šabloně. V příkladu se nepoužívají žádné proměnné, takže objekt JSON je prázdný.
"variables": {},
Definování prostředků
Dále je oddíl prostředků šablony. Tady definujete, co skutečně chcete nasadit. Na rozdíl od parameters
objektů JSON ( variables
což jsou objekty JSON) resources
je seznam objektů JSON.
"resources": [
...
]
Všechny prostředky vyžadují type
, name
apiVersion
, a location
vlastnosti. První prostředek tohoto příkladu má typ Microsoft.Network/virtualNetwork, název myVnet
a apiVersion 2018-11-01
. (Pokud chcete najít nejnovější verzi rozhraní API pro typ prostředku, přečtěte si téma Referenční informace k šabloně Azure Resource Manageru.)
{
"type": "Microsoft.Network/virtualNetworks",
"name": "myVnet",
"apiVersion": "2018-11-01",
}
Zadat umístění
K určení umístění pro virtuální síť použijte funkci šablony Resource Manageru. Tato funkce musí být uzavřena v uvozovkách a hranatých závorkách takto: "[<template-function>]"
. V tomto případě použijte resourceGroup
funkci. Nepřijímá žádné argumenty a vrací objekt JSON s metadaty o skupině prostředků, do které se toto nasazení nasazuje. Skupina prostředků je nastavena uživatelem v době nasazení. Tato hodnota se pak indexuje do tohoto objektu JSON s .location
cílem získat umístění z objektu JSON.
"location": "[resourceGroup().location]",
Zadání vlastností virtuální sítě
Každý prostředek Resource Manageru má vlastní properties
oddíl pro konfigurace specifické pro daný prostředek. V tomto případě určete, že virtuální síť by měla mít jednu podsíť pomocí rozsahu 10.0.0.0/16
privátních IP adres . Škálovací sada je vždy obsažena v jedné podsíti. Nemůže překlenovat podsítě.
{
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"subnets": [
{
"name": "mySubnet",
"properties": {
"addressPrefix": "10.0.0.0/16"
}
}
]
}
},
Přidat seznam dependsOn
Kromě požadovaných type
, name
, apiVersion
a location
vlastností, každý prostředek může mít volitelný dependsOn
seznam řetězců. Tento seznam určuje, které další prostředky z tohoto nasazení musí být dokončeny před nasazením tohoto prostředku.
V tomto případě je v seznamu pouze jeden prvek, virtuální síť z předchozího příkladu. Tuto závislost zadáte, protože škálovací sada potřebuje, aby před vytvořením virtuálních počítačů existovala síť. Škálovací sada tak může těmto virtuálním počítačům poskytnout privátní IP adresy z rozsahu IP adres dříve zadaných ve vlastnostech sítě. Formát každého řetězce v seznamu dependsOn je <type>/<name>
. Použijte stejné type
a name
dříve použité v definici prostředku virtuální sítě.
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "myScaleSet",
"apiVersion": "2019-03-01",
"location": "[resourceGroup().location]",
"dependsOn": [
"Microsoft.Network/virtualNetworks/myVnet"
],
...
}
Zadání vlastností škálovací sady
Škálovací sady mají mnoho vlastností pro přizpůsobení virtuálních počítačů ve škálovací sadě. Úplný seznam těchto vlastností najdete v referenčních informacích k šablonám. Pro účely tohoto kurzu je nastaveno pouze několik běžně používaných vlastností.
Poskytnutí velikosti a kapacity virtuálního počítače
Škálovací sada potřebuje vědět, jakou velikost virtuálního počítače se má vytvořit (název skladové položky) a kolik takových virtuálních počítačů se má vytvořit ("kapacita skladové položky"). Informace o dostupných velikostech virtuálních počítačů najdete v dokumentaci k velikostem virtuálních počítačů.
"sku": {
"name": "Standard_A1",
"capacity": 2
},
Volba typu aktualizací
Škálovací sada také potřebuje vědět, jak zpracovávat aktualizace ve škálovací sadě. V současné době existují tři možnosti, Manual
Rolling
a Automatic
. Další informace o rozdílech mezi nimi najdete v dokumentaci k upgradu škálovací sady.
"properties": {
"upgradePolicy": {
"mode": "Manual"
},
}
Volba operačního systému virtuálního počítače
Škálovací sada potřebuje vědět, jaký operační systém má virtuální počítače umístit. Tady vytvořte virtuální počítače s plně opravenou imagí Ubuntu 16.04-LTS.
"virtualMachineProfile": {
"storageProfile": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
}
},
}
Zadání názvu počítačePrefixu
Škálovací sada nasadí několik virtuálních počítačů. Místo zadávání názvů jednotlivých virtuálních počítačů zadejte computerNamePrefix
. Škálovací sada připojí index k předponě pro každý virtuální počítač, takže názvy virtuálních počítačů mají formulář <computerNamePrefix>_<auto-generated-index>
.
V následujícím fragmentu kódu použijte parametry před nastavením uživatelského jména a hesla správce pro všechny virtuální počítače ve škálovací sadě. Tento proces používá parameters
funkci šablony. Tato funkce přebírá řetězec, který určuje, na který parametr se má odkazovat, a vypíše hodnotu tohoto parametru.
"osProfile": {
"computerNamePrefix": "vm",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
Zadání konfigurace sítě virtuálních počítačů
Nakonec zadejte konfiguraci sítě pro virtuální počítače ve škálovací sadě. V takovém případě stačí zadat id dříve vytvořené podsítě. To říká škálovací sadě, aby do této podsítě umístila síťová rozhraní.
ID virtuální sítě obsahující podsíť můžete získat pomocí resourceId
funkce šablony. Tato funkce přebírá typ a název prostředku a vrací plně kvalifikovaný identifikátor tohoto prostředku. Toto ID má formulář: /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/<resourceProviderNamespace>/<resourceType>/<resourceName>
Identifikátor virtuální sítě však nestačí. Zadejte konkrétní podsíť, ve které by měly být virtuální počítače škálovací sady. Uděláte to tak, že zřetědíte /subnets/mySubnet
ID virtuální sítě. Výsledkem je plně kvalifikované ID podsítě. Zřetězení concat
proveďte pomocí funkce, která přebírá řadu řetězců a vrací jejich zřetězení.
"networkProfile": {
"networkInterfaceConfigurations": [
{
"name": "myNic",
"properties": {
"primary": "true",
"ipConfigurations": [
{
"name": "myIpConfig",
"properties": {
"subnet": {
"id": "[concat(resourceId('Microsoft.Network/virtualNetworks', 'myVnet'), '/subnets/mySubnet')]"
}
}
}
]
}
}
]
}
Další kroky
Můžete nasadit předchozí šablonu postupem podle dokumentace k Azure Resource Manageru.
Tuto sérii kurzů můžete spustit v článku se základní šablonou škálovací sady.
Můžete se podívat, jak upravit šablonu základní škálovací sady tak, aby nasadil škálovací sadu do existující virtuální sítě.
Můžete se podívat, jak upravit šablonu základní škálovací sady tak, aby nasadil škálovací sadu s vlastní imagí.
Můžete se podívat, jak upravit šablonu základní škálovací sady tak, aby nasadil škálovací sadu pro Linux s automatickým škálováním založeným na hostech.
Další informace o škálovacích sadách najdete na stránce přehledu škálovací sady.