Erőforrások telepítése ARM sablonokkal és Azure PowerShell

Ebből a cikkből megtudhatja, hogy miként használhatja Azure PowerShell Azure Resource Manager-sablonokkal (ARM) az erőforrásokat az Azure-ban való telepítéshez. Ha nem ismeri az Azure-megoldások üzembe helyezésének és kezelésének fogalmát, tekintse át a sablonok üzembe helyezésének áttekintése témakört.

Előfeltételek

A telepítéshez sablonra van szükség. Ha még nincs ilyen sablonja, töltse le és mentsen egy mintasablont az Azure Gyorsútmutató sablonok repo szolgáltatásból. A cikkben használt helyi fájlnév: C:\MyTemplates\azuredeploy.json.

Telepítenie kell az Azure PowerShell és csatlakoznia kell az Azure-hoz:

Ha nincs telepítve a PowerShell, használhatja az Azure Cloud Shellt. További információért lásd: ARM üzembe helyezése az Azure Cloud Shellből.

Telepítés hatóköre

A központi telepítést egy erőforráscsoportra, előfizetésre, felügyeleti csoportra vagy bérlői webhelyre is megcélhatja. A telepítés hatókörétől függően különböző parancsokat kell használnia.

A sablont üzembe helyező felhasználónak minden hatókörben rendelkeznie kell az erőforrások létrehozásához szükséges engedélyekkel.

Üzembe helyezés neve

A sablon ARM a telepítésnek nevet adhat. Ez a név segíthet lekérni a központi telepítést a telepítési előzményekből. Ha nem ad nevet a központi telepítésnek, a rendszer a sablonfájl nevét használja. Ha például üzembe helyez egy olyan sablont, amely úgy van elnevezve, hogy nem adja meg a telepítés nevét, akkor a központi azuredeploy.json telepítés neve azuredeploy .

Minden alkalommal, amikor futtat egy telepítést, a rendszer hozzáad egy bejegyzést az erőforráscsoport telepítési előzményeihez az üzembe helyezés nevével. Ha másik telepítést futtat, és ugyanazt a nevet adja neki, a korábbi bejegyzést lecseréli az aktuális telepítésre. Ha egyedi bejegyzéseket szeretne megőrizni a telepítési előzményekben, adjon minden telepítésnek egy egyedi nevet.

Egyedi név létrehozásához véletlenszerű számot rendelhet hozzá.

$suffix = Get-Random -Maximum 1000
$deploymentName = "ExampleDeployment" + $suffix

Vagy adjon meg egy dátumértéket.

$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="ExampleDeployment"+"$today"

Ha egyidejű telepítéseket futtat ugyanazokkal az erőforráscsoporttal, és a központi telepítés neve megegyezik, akkor csak az utolsó telepítés befejeződik. Az azonos nevű telepítéseket a rendszer a legutóbbi telepítésre cseréli. Ha például futtat egy üzembe helyezést ,, amely üzembe helyez egy , nevű tárfiókot, és ezzel egyidejűleg futtat egy másik, a nevű tárfiókot üzembe helyező központi telepítést, akkor csak egy tárfiókot kell newStoragestorage1 üzembe newStoragestorage2 helyeznie. Az eredményül kapott tárfiók neve storage2 .

Ha azonban futtat egy olyan telepítést, amely telepíti a () nevű tárfiókot, és közvetlenül a befejeződása után futtat egy másik, a nevű tárfiókot üzembe helyező központi telepítést, akkor két tárfiókja newStoragestorage1newStoragestorage2 van. Az egyik neve storage1 , a másik pedig storage2 . A telepítési előzményekben azonban csak egy bejegyzés látható.

Ha egyedi nevet ad meg az egyes telepítések számára, azok egyidejűleg, ütközés nélkül futtathatók. Ha futtat egy telepítést, amely telepíti a () nevű tárfiókot, és egyidejűleg futtat egy másik telepítést is, amely a () nevű tárfiókot telepíti, akkor két tárfiókja és két bejegyzése van a telepítési newStorage1storage1newStorage2storage2 előzményekben.

Az egyidejű telepítésekkel való ütközések elkerülése és az egyedi bejegyzések biztosítása érdekében minden telepítéshez adjon egyedi nevet.

Helyi sablon telepítése

A sablonokat telepítheti a helyi gépről vagy egy külsőleg tároltból. Ez a szakasz a helyi sablonok központi telepítését ismerteti.

Ha nem létező erőforráscsoportban telepíti az üzembe helyezést, hozza létre az erőforráscsoportot. Az erőforráscsoport neve csak alfanumerikus karaktereket, pontokat, aláhúzásokat, kötőjeleket és zárójeleket tartalmazhat. Legfeljebb 90 karakterből állhat. A név nem végződhet pontra.

New-AzResourceGroup -Name ExampleGroup -Location "Central US"

Helyi sablon telepítéséhez használja a paramétert az -TemplateFile üzembe helyezési parancsban. Az alábbi példa azt is bemutatja, hogy miként állíthat be egy, a sablonból származó paraméterértéket.

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateFile <path-to-template>

A telepítés eltarthat néhány percig.

Távoli sablon telepítése

Ahelyett, hogy a ARM a helyi számítógépen tárolhatja, inkább külső helyen tárolja őket. A sablonokat tárolhatja forrásvezérlő-adattárban (például GitHub). Vagy azt is megesheti, hogy egy Azure-tárfiókban tárolja őket, hogy megosztott hozzáféréssel tudjanak hozzáférni a szervezetéhez.

Megjegyzés

Ha egy privát dokumentum-reponál tárolt sablont vagy hivatkozott sablont GitHub, tekintse meg az MVPblogban dokumentált egyéni megoldást. Az Azure-függvényeket proxyként beállítva megépítheti a sablonfájl privát adattárban lévő GitHub URL-címét.

Ha nem létező erőforráscsoportban telepíti az üzembe helyezést, hozza létre az erőforráscsoportot. Az erőforráscsoport neve csak alfanumerikus karaktereket, pontokat, aláhúzásokat, kötőjeleket és zárójeleket tartalmazhat. Legfeljebb 90 karakterből állhat. A név nem végződhet pontra.

New-AzResourceGroup -Name ExampleGroup -Location "Central US"

Külső sablon telepítéséhez használja a -TemplateUri paramétert.

New-AzResourceGroupDeployment `
  -Name remoteTemplateDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

Az előző példához nyilvánosan elérhető URI-t kell használni a sablonhoz, amely a legtöbb esetben működik, mivel a sablonnak nem szabad bizalmas adatokat tartalmaznia. Ha bizalmas adatokat (például rendszergazdai jelszót) kell megadnia, ezt az értéket adja át biztonságos paraméterként. Ha azonban kezelni szeretné a sablonhoz való hozzáférést, fontolja meg a sablonokkal való felhasználásával.

A tárfiókban tárolt relatív elérési úttal elérhető távoli csatolt sablonok telepítéséhez használja az QueryString SAS-jogkivonat megadását:

New-AzResourceGroupDeployment `
  -Name linkedTemplateWithRelativePath `
  -ResourceGroupName "myResourceGroup" `
  -TemplateUri "https://stage20210126.blob.core.windows.net/template-staging/mainTemplate.json" `
  -QueryString "$sasToken"

További információ: Relatív elérési út használata csatolt sablonokhoz.

Sablon specifikációjának telepítése

Helyi vagy távoli sablon telepítése helyett készíthet egy sablon specifikációját. A sablon specifikációja az Azure-előfizetés egy olyan erőforrása, amely tartalmaz egy ARM sablont. Ez megkönnyíti a sablon biztonságos megosztását a szervezet felhasználóival. Az Azure szerepköralapú hozzáférés-vezérlése (Azure RBAC) használatával hozzáférést adhat a sablon specifikációjának. Ez a funkció jelenleg előzetes verzióban érhető el.

Az alábbi példák bemutatják, hogyan hozhat létre és telepíthet sablonokat.

Először hozza létre a sablon specifikációját a sablon ARM meg.

New-AzTemplateSpec `
  -Name storageSpec `
  -Version 1.0 `
  -ResourceGroupName templateSpecsRg `
  -Location westus2 `
  -TemplateJsonFile ./mainTemplate.json

Ezután szerezze be a sablon specifikációjának azonosítóját, és telepítse.

$id = (Get-AzTemplateSpec -Name storageSpec -ResourceGroupName templateSpecsRg -Version 1.0).Versions.Id

New-AzResourceGroupDeployment `
  -ResourceGroupName demoRG `
  -TemplateSpecId $id

További információt az Azure Resource Manager-sablonokkal kapcsolatos specifikációkban talál.

Módosítások előnézete

A sablon telepítése előtt megtekintheti a környezetében végrehajtott módosítások előnézetét. A what-if művelettel ellenőrizze, hogy a sablon az elvárt módosításokat végrehajtotta-e. A What-if ezenkívül ellenőrzi, hogy a sablon tartalmaz-e hibákat.

Paraméterértékek bérlete

A paraméterértékek átadni beágyazott paramétereket vagy paraméterfájlokat is használhat.

Beágyazott paraméterek

Ha beágyazott paramétereket is át kell adnia, adja meg a paraméter nevét a New-AzResourceGroupDeployment parancsnak. Ha például át akar adni egy karakterláncot és egy tömböt egy sablonnak, használja az alábbit:

$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-template> `
  -exampleString "inline string" `
  -exampleArray $arrayParam

Be is szerezheti a fájl tartalmát, és a tartalmat beágyazott paraméterként is meg lehet adni.

$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-template> `
  -exampleString $(Get-Content -Path c:\MyTemplates\stringcontent.txt -Raw) `
  -exampleArray $arrayParam

A paraméterértékek fájlból való beszerzése akkor hasznos, ha konfigurációs értékeket kell adnia. Megadhatja például a felhőbeli init értékeket egy Linux virtuális géphez.

Ha objektumtömbben kell átadnia, hozzon létre kivonatos táblázatokat a PowerShellben, és vegye fel őket egy tömbbe. Adja át a tömböt paraméterként a telepítés során.

$hash1 = @{ Name = "firstSubnet"; AddressPrefix = "10.0.0.0/24"}
$hash2 = @{ Name = "secondSubnet"; AddressPrefix = "10.0.1.0/24"}
$subnetArray = $hash1, $hash2
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-template> `
  -exampleArray $subnetArray

Paraméterfájlok

Ahelyett, hogy paramétereket ad meg beágyazott értékként a parancsfájlban, egyszerűbbnek találhatja a paraméterértékeket tartalmazó JSON-fájl használatát. A paraméterfájl lehet egy helyi fájl vagy egy akadálymentes URI-t tároló külső fájl.

A paraméterfájlról további információt az Erőforrás-kezelő paraméterfájl létrehozása.

Egy helyi paraméterfájl átadni a TemplateParameterFile paramétert használja:

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
  -TemplateFile <path-to-template> `
  -TemplateParameterFile c:\MyTemplates\storage.parameters.json

Egy külső paraméterfájl átadni a következő TemplateParameterUri paramétert használja:

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
  -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json `
  -TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.parameters.json

További lépések