Tudnivalók a virtuálisgép-méretezési csoport sablonjairól
Az Azure Resource Manager-sablonok remek megoldást kínálnak egymáshoz kapcsolódó erőforráscsoportok üzembe helyezésére. Ez az oktatóanyag-sorozat bemutatja, hogyan hozhat létre alapszintű méretezésicsoport-sablont, és hogyan módosíthatja ezt a sablont a különböző forgatókönyveknek megfelelően. Minden példa ebből a GitHub-adattárból származik.
Ez a sablon egyszerűnek készült. A méretezési csoportok sablonjaira vonatkozó teljesebb példákért tekintse meg az Azure Gyorsindítási sablonok GitHub-adattárát , és keressen rá a sztringet vmss
tartalmazó mappákra.
Ha már ismeri a sablonok létrehozását, ugorjon a "Következő lépések" szakaszra a sablon módosításának megtekintéséhez.
$schema és contentVersion definiálása
Először definiálja és contentVersion
írja be $schema
a sablont. Az $schema
elem határozza meg a sablon nyelvének verzióját, és a Visual Studio szintaxiskiemeléséhez és hasonló érvényesítési funkcióihoz használható. Az contentVersion
elemet az Azure nem használja. Ehelyett segít nyomon követni a sablonverziót.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
}
Paraméterek megadása
Ezután definiáljon két paramétert, adminUsername
és adminPassword
. A paraméterek az üzembe helyezéskor megadott értékek. A adminUsername
paraméter egyszerűen egy string
típus, de mivel adminPassword
titkos, adja meg a típust securestring
. Később ezeket a paramétereket a rendszer átadja a méretezési csoport konfigurációjának.
"parameters": {
"adminUsername": {
"type": "string"
},
"adminPassword": {
"type": "securestring"
}
},
Változók meghatározása
Resource Manager sablonok lehetővé teszik a sablon későbbi részében használni kívánt változók meghatározását is. A példa nem használ változókat, ezért a JSON-objektum üres.
"variables": {},
Erőforrások meghatározása
Ezután a sablon erőforrások szakasza következik. Itt határozhatja meg, hogy valójában mit szeretne üzembe helyezni. A és variables
(amelyek JSON-objektumok) resources
ellentétben parameters
a JSON-objektumok JSON-listája.
"resources": [
...
]
Minden erőforráshoz , name
, apiVersion
és location
tulajdonság szükségestype
. A példa első erőforrásának típusa Microsoft.Network/virtualNetwork, name myVnet
, és apiVersion 2018-11-01
. (Az erőforrástípus legújabb API-verziójának megkereséséhez tekintse meg az Azure Resource Manager sablonreferenciáját.)
{
"type": "Microsoft.Network/virtualNetworks",
"name": "myVnet",
"apiVersion": "2018-11-01",
}
Hely megadása
A virtuális hálózat helyének megadásához használjon Resource Manager sablonfüggvényt. Ezt a függvényt idézőjelek és szögletes zárójelek közé kell foglalni, például: "[<template-function>]"
. Ebben az esetben használja a függvényt resourceGroup
. Nem vesz fel argumentumokat, és visszaad egy JSON-objektumot, amely metaadatokat tartalmaz arról az erőforráscsoportról, amelybe az üzembe helyezést üzembe helyezi. Az erőforráscsoportot a felhasználó állítja be az üzembe helyezés időpontjában. Ez az érték ezután ebbe a JSON-objektumba .location
lesz indexelve, hogy lekérje a helyet a JSON-objektumból.
"location": "[resourceGroup().location]",
Virtuális hálózat tulajdonságainak megadása
Minden Resource Manager erőforrás saját properties
szakaszt tartalmaz az erőforráshoz tartozó konfigurációkhoz. Ebben az esetben adja meg, hogy a virtuális hálózatnak egy alhálózattal kell rendelkeznie a privát IP-címtartomány 10.0.0.0/16
használatával. A méretezési csoportok mindig egy alhálózaton belül találhatók. Nem terjedhet ki az alhálózatokra.
{
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"subnets": [
{
"name": "mySubnet",
"properties": {
"addressPrefix": "10.0.0.0/16"
}
}
]
}
},
DependsOn lista hozzáadása
A szükséges type
, , name
apiVersion
és location
tulajdonságok mellett minden erőforrás rendelkezhet sztringek opcionális dependsOn
listájával. Ez a lista azt határozza meg, hogy a telepítés mely más erőforrásainak kell befejeződniük az erőforrás üzembe helyezése előtt.
Ebben az esetben a listában csak egy elem szerepel, az előző példában szereplő virtuális hálózat. Ezt a függőséget azért kell megadnia, mert a méretezési csoportnak a virtuális gépek létrehozása előtt léteznie kell a hálózatnak. Így a méretezési csoport privát IP-címeket adhat ezeknek a virtuális gépeknek a hálózati tulajdonságokban korábban megadott IP-címtartományból. A dependsOn lista egyes sztringjeinek formátuma a következő <type>/<name>
: . Használja ugyanazt type
, és name
használja korábban a virtuális hálózati erőforrás-definícióban.
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "myScaleSet",
"apiVersion": "2019-03-01",
"location": "[resourceGroup().location]",
"dependsOn": [
"Microsoft.Network/virtualNetworks/myVnet"
],
...
}
Méretezési csoport tulajdonságainak megadása
A méretezési csoportok számos tulajdonsággal rendelkeznek a méretezési csoportban lévő virtuális gépek testreszabásához. A tulajdonságok teljes listáját a sablonreferenciában találja. Ebben az oktatóanyagban csak néhány gyakran használt tulajdonság van beállítva.
Virtuális gép méretének és kapacitásának megadása
A méretezési csoportnak ismernie kell a létrehozandó virtuális gép méretét ("termékváltozat neve"), valamint azt, hogy hány ilyen virtuális gépet kell létrehozni ("termékváltozat-kapacitás"). A rendelkezésre álló virtuálisgép-méretek megtekintéséhez tekintse meg a virtuálisgép-méretek dokumentációját.
"sku": {
"name": "Standard_A1",
"capacity": 2
},
Frissítések típusának kiválasztása
A méretezési csoportnak azt is tudnia kell, hogyan kezelheti a méretezési csoport frissítéseit. Jelenleg három lehetőség áll rendelkezésre: Manual
, Rolling
és Automatic
. A kettő közötti különbségekről további információt a méretezési csoportok frissítésének dokumentációjában talál.
"properties": {
"upgradePolicy": {
"mode": "Manual"
},
}
Virtuálisgép-operációs rendszer kiválasztása
A méretezési csoportnak tudnia kell, hogy milyen operációs rendszert helyezzen el a virtuális gépeken. Itt hozza létre a virtuális gépeket egy teljesen javított Ubuntu 16.04-LTS-rendszerképpel.
"virtualMachineProfile": {
"storageProfile": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
}
},
}
Számítógépnév megadásaElőtag
A méretezési csoport több virtuális gépet helyez üzembe. Az egyes virtuális gépek nevének megadása helyett adja meg a értéket computerNamePrefix
. A méretezési csoport egy indexet fűz az egyes virtuális gépek előtagjaihoz, így a virtuális gépek neveinek formátuma <computerNamePrefix>_<auto-generated-index>
.
Az alábbi kódrészletben a korábbi paraméterekkel állítsa be a rendszergazdai felhasználónevet és jelszót a méretezési csoportban lévő összes virtuális géphez. Ez a folyamat a sablonfüggvényt parameters
használja. Ez a függvény egy sztringet vesz fel, amely meghatározza, hogy melyik paraméterre hivatkozzon, és kimenetként adja meg az adott paraméter értékét.
"osProfile": {
"computerNamePrefix": "vm",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
Virtuális gép hálózati konfigurációjának megadása
Végül adja meg a méretezési csoportban lévő virtuális gépek hálózati konfigurációját. Ebben az esetben csak a korábban létrehozott alhálózat azonosítóját kell megadnia. Ez arra utasítja a méretezési csoportot, hogy helyezze a hálózati adaptereket ebbe az alhálózatba.
A sablonfüggvény használatával resourceId
lekérheti az alhálózatot tartalmazó virtuális hálózat azonosítóját. Ez a függvény egy erőforrás típusát és nevét veszi fel, és visszaadja az erőforrás teljes azonosítóját. Ez az azonosító a következő űrlappal rendelkezik: /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/<resourceProviderNamespace>/<resourceType>/<resourceName>
A virtuális hálózat azonosítója azonban nem elég. Adja meg azt az alhálózatot, amelyben a méretezési csoport virtuális gépeinek lenniük kell. Ehhez fűzd /subnets/mySubnet
össze a virtuális hálózat azonosítóját. Az eredmény az alhálózat teljes azonosítója. Ezt az összefűzést végezze el a concat
függvénnyel, amely sztringek sorozatát veszi fel, és visszaadja az összefűzésüket.
"networkProfile": {
"networkInterfaceConfigurations": [
{
"name": "myNic",
"properties": {
"primary": "true",
"ipConfigurations": [
{
"name": "myIpConfig",
"properties": {
"subnet": {
"id": "[concat(resourceId('Microsoft.Network/virtualNetworks', 'myVnet'), '/subnets/mySubnet')]"
}
}
}
]
}
}
]
}
Következő lépések
Az előző sablon üzembe helyezéséhez kövesse az Azure Resource Manager dokumentációjában leírtakat.
Ezt az oktatóanyag-sorozatot az alapszintű méretezési csoport sablonjának cikkéből indíthatja el.
Megtudhatja, hogyan módosíthatja az alapszintű méretezésicsoport-sablonta méretezési csoport meglévő virtuális hálózaton való üzembe helyezéséhez.
Megtudhatja, hogyan módosíthatja az alapszintű méretezésicsoport-sablonta méretezési csoport egyéni rendszerképpel való üzembe helyezéséhez.
Megtudhatja, hogyan módosíthatja az alapszintű méretezési csoport sablonjátegy Linux-méretezési csoport vendégalapú automatikus skálázással történő üzembe helyezéséhez.
A méretezési csoportokkal kapcsolatos további információkért tekintse meg a méretezési csoport áttekintési oldalát.