До недавнего времени для развертывания ресурса для Azure с использованием шаблона ARM и PowerShell у вас было два варианта;
Командлет New-AZDELOPLEMENTS для объектов масштаба подписки. Это позволяет вам развернуть группы ресурсов, определения политики, пользовательских ролей …
И командлет New-AzresourceGrupДом, для объектов группы ресурсов. С помощью этого командлета вы можете развернуть учетную запись хранения, VM, VNET, управление API, все, что нуждается в группе ресурсов …. И да, ресурсная группа тоже.
Но если вы обновили модуль PowerShell AZ, недавно, вы, возможно, отмечали несколько новых командлетов для развертывания ресурсов для Azure.
А также немногие другие, чтобы проверить ваши развертывания
Давайте попробуем эти новые инструменты развертывания.
AZDELOYMENTY и AZRESOURCEGROUPDeploblement все еще здесь Но сейчас у нас есть еще три варианта, AzSubscriptionDeplower, AzManagementGrupDeploblement и AztenantDeploblement.
Во-первых, отметьте, почему у нас есть новая азазоляция и новая azsubscriptionDeyment? У них такая же цель и делает то же самое, развернуть объекты на уровне подписки.
Для расследования вам необходимо открыть папку Module Az.ressources и открыть AZ. Resources.psd1 файл. Вы увидите, что * -azSubscriptionDeplyment — псевдоним, другое имя для существующего командлета, New-Azdeploblement.
Шаблон ARM BELED развертывает группу ресурсов в текущей подписке
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2018-05-01",
"location": "westeurope",
"name": "az-deploy-demo-rg",
"properties": {}
}
]
}
Развернуть шаблон
New-AzSubscriptionDeployment -Name DevToDemo -Location westeurope -TemplateFile .\subscription.json
Но вы сможете использовать New-Azdeployment
В отличие от New-AzSubscriptionDeployment, New-AzmanagementGrupDeploblement не является псевдонимом. Это простой командлет, предназначенный для развертывания объектов на уровне группы управления. На этом сфере применения вы можете развернуть азазубечные политики, задания ролей и чертежи.
Пример, чтобы создать пользовательскую политику и назначить его в группу управления, вы можете использовать этот шаблон.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {
"mgScope": "/providers/Microsoft.Management/managementGroups/group01"
},
"resources": [
{
"type": "Microsoft.Authorization/policyDefinitions",
"name": "policy-marseille",
"apiVersion": "2016-12-01",
"properties": {
"policyType": "Custom",
"parameters": { },
"policyRule": {
"if": {
"field": "location",
"equals": "francesouth"
},
"then": {
"effect": "audit"
}
}
}
},
{
"type": "Microsoft.Authorization/policyAssignments",
"name": "location-lock",
"apiVersion": "2016-12-01",
"dependsOn": [
"policy-marseille"
],
"properties": {
"scope": "[variables('mgScope')]",
"policyDefinitionId": "[concat(variables('mgScope'), '/providers/', 'Microsoft.Authorization/policyDefinitions/', 'policy-marseille')]"
}
}
]
}
Шаблон создает пользовательскую политику, аудит по политике, если какой-либо ресурс расположен в Марселе, Франция Юг (нет злоба здесь, это место, которое я родился), тогда он присваивает эту политику в группу управления.
Чтобы развернуть его, используйте новый командлет New-AzManagementGroupДоборуются
New-AzManagementGroupDeployment -Name Mars13-policy-assign -Location northeurope -TemplateFile .\managementGroup.json -ManagementGroupId group01
Нам нужно предоставить имя для развертывания (это необязательно, но рекомендуется идентифицировать развертывание позже), файл шаблона (и параметры шаблона, если таковые имеются) и идентификатор группы управления. Этот идентификатор является уникальным именем группы управления, которую вы дали при создании группы.
Эти новые командлеты открывают новый подход к определению подписки и группы управления кодом, используя те же принципы, и тот же набор инструментов, который мы используем для развертывания ресурсов.
Тот факт, что New-AzsubscriptionDeplyment — псевдоним нового азазоидата, заставляет меня считаться, что в ближайшее время будет какое-то перерыв на этот модуль.
Оригинал: «https://dev.to/omiossec/arm-deployment-new-azure-deployment-options-with-powershell-gjn»