Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"armProviderNamespace": {
"type": "String",
"defaultValue": "Microsoft.RecoveryServices"
},
"vaultName": {
"type": "String",
"defaultValue": "utk-ccy-vlt"
},
"vaultRG": {
"type": "String",
"defaultValue": "utk-ccy-pe"
},
"vaultSubID": {
"type": "String",
"defaultValue": "14d16a2a-56f6-4c75-b091-084df9640297"
},
"backupManagementType": {
"type": "String",
"defaultValue": "AzureWorkload"
},
"workloadType": {
"type": "String",
"defaultValue": "SAPAseDatabase"
},
"policyName": {
"type": "String",
"defaultValue": "DailyPolicy-m85s4oxj"
},
"fabricName": {
"type": "String",
"defaultValue": "Azure"
},
"protectionContainers": {
"type": "Array",
"defaultValue": [
"vmappcontainer;compute;utk-ccy-pe;utk-vm-asepe"
]
},
"protectedItems": {
"type": "Array",
"defaultValue": [
"sapasedatabase;ab4;asetestdb2"
]
},
"protectedItemTypes": {
"type": "Array",
"defaultValue": [
"AzureVmWorkloadAnyDatabase"
]
},
"vmName": {
"type": "string",
"defaultValue": "utk-vm-asepe"
},
"vmResourceGroup": {
"type": "string",
"defaultValue": "utk-ccy-pe"
},
"isNewVault": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Conditional parameter for New or Existing Vault"
}
},
"isNewPolicy": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Conditional parameter for New or Existing Backup Policy"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"skuName": "RS0",
"skuTier": "Standard",
"backupFabric": "Azure",
"containerType": "VMAppContainer"
},
"resources": [
{
"condition": "[parameters('isNewVault')]",
"type": "Microsoft.RecoveryServices/vaults",
"apiVersion": "2020-10-01",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[variables('skuName')]",
"tier": "[variables('skuTier')]"
},
"properties": {}
},
{
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers",
"apiVersion": "2021-03-01",
"name": "[format('{0}/{1}/{2};compute;{3};{4}', parameters('vaultName'), variables('backupFabric'), variables('containerType'), parameters('vmResourceGroup'), parameters('vmName'))]",
"properties": {
"containerType": "[variables('containerType')]",
"backupManagementType": "[parameters('backupManagementType')]",
"workloadType": "[parameters('workloadType')]",
"friendlyName": "[parameters('vmName')]",
"sourceResourceId": "[resourceId(parameters('vmResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('vmName'))]"
},
"dependsOn": [
"[resourceId('Microsoft.RecoveryServices/vaults/backupPolicies', parameters('vaultName'), parameters('policyName'))]",
"[resourceId('Microsoft.RecoveryServices/vaults', parameters('vaultName'))]"
]
},
{
"condition": "[parameters('isNewPolicy')]",
"type": "Microsoft.RecoveryServices/vaults/backupPolicies",
"apiVersion": "2021-03-01",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('policyName'))]",
"properties": {
"backupManagementType": "[parameters('backupManagementType')]",
"workloadType": "[parameters('workloadType')]",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Daily",
"scheduleRunTimes": [
"2019-03-24T16:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"dailySchedule": {
"retentionTimes": [
"2019-03-24T16:00:00Z"
],
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 60
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.RecoveryServices/vaults', parameters('vaultName'))]"
]
},
{
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
"apiVersion": "2016-06-01",
"name": "[concat(parameters('vaultName'), '/', parameters('fabricName'), '/',parameters('protectionContainers')[copyIndex()], '/', parameters('protectedItems')[copyIndex()])]",
"properties": {
"backupManagementType": "[parameters('backupManagementType')]",
"workloadType": "[parameters('workloadType')]",
"policyId": "[resourceId(concat(parameters('armProviderNamespace'), '/vaults/backupPolicies'), parameters('vaultName'), parameters('policyName'))]",
"protectedItemType": "[parameters('protectedItemTypes')[copyIndex()]]"
},
"copy": {
"name": "protectedItemsCopy",
"count": "[length(parameters('protectedItems'))]"
}
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"armProviderNamespace": {
"value": "Microsoft.RecoveryServices"
},
"vaultName": {
"value": "utk-ccy-vlt"
},
"vaultRG": {
"value": "utk-ccy-pe"
},
"vaultSubID": {
"value": "14d16a2a-56f6-4c75-b091-084df9640297"
},
"backupManagementType": {
"value": "AzureWorkload"
},
"workloadType": {
"value": "SAPAseDatabase"
},
"policyName": {
"value": "DailyPolicy-m85s4oxj"
},
"fabricName": {
"value": "Azure"
},
"protectionContainers": {
"value": [
"vmappcontainer;compute;utk-ccy-pe;utk-vm-asepe"
]
},
"protectedItems": {
"value": [
"sapasedatabase;ab4;asetestdb2"
]
},
"protectedItemTypes": {
"value": [
"AzureVmWorkloadAnyDatabase"
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
param armProviderNamespace string = 'Microsoft.RecoveryServices'
param vaultName string = 'utk-ccy-vlt'
param backupManagementType string = 'AzureWorkload'
param workloadType string = 'SAPAseDatabase'
param policyName string = 'DailyPolicy-m85s4oxj'
param fabricName string = 'Azure'
param protectionContainers array = [
'vmappcontainer;compute;utk-ccy-pe;utk-vm-asepe'
]
param protectedItems array = [
'sapasedatabase;ab4;asetestdb3'
]
param protectedItemTypes array = [
'AzureVmWorkloadAnyDatabase'
]
param vmName string = 'utk-vm-asepe'
param vmResourceGroup string = 'utk-ccy-pe'

@description('Conditional parameter for New or Existing Vault')
param isNewVault bool = false

@description('Conditional parameter for New or Existing Backup Policy')
param isNewPolicy bool = false

@description('Location for all resources.')
param location string = resourceGroup().location

var skuName = 'RS0'
var skuTier = 'Standard'
var backupFabric = 'Azure'
var containerType = 'VMAppContainer'

resource vault 'Microsoft.RecoveryServices/vaults@2020-10-01' = if (isNewVault) {
name: vaultName
location: location
sku: {
name: skuName
tier: skuTier
}
properties: {}
}

resource vaultName_backupFabric_containerType_compute_vmResourceGroup_vm 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers@2021-03-01' = {
name: '${vaultName}/${backupFabric}/${containerType};compute;${vmResourceGroup};${vmName}'
properties: {
containerType: containerType
backupManagementType: backupManagementType
workloadType: workloadType
friendlyName: vmName
sourceResourceId: resourceId(vmResourceGroup, 'Microsoft.Compute/virtualMachines', vmName)
}
dependsOn: [
vaultName_policy
vault
]
}

resource vaultName_policy 'Microsoft.RecoveryServices/vaults/backupPolicies@2021-03-01' = if (isNewPolicy) {
parent: vault
name: policyName
properties: {
backupManagementType: backupManagementType
workloadType: workloadType
settings: {
timeZone: 'UTC'
issqlcompression: false
isCompression: false
}
subProtectionPolicy: [
{
policyType: 'Full'
schedulePolicy: {
schedulePolicyType: 'SimpleSchedulePolicy'
scheduleRunFrequency: 'Daily'
scheduleRunTimes: [
'2019-03-24T16:00:00Z'
]
scheduleWeeklyFrequency: 0
}
retentionPolicy: {
retentionPolicyType: 'LongTermRetentionPolicy'
dailySchedule: {
retentionTimes: [
'2019-03-24T16:00:00Z'
]
retentionDuration: {
count: 30
durationType: 'Days'
}
}
}
}
{
policyType: 'Log'
schedulePolicy: {
schedulePolicyType: 'LogSchedulePolicy'
scheduleFrequencyInMins: 60
}
retentionPolicy: {
retentionPolicyType: 'SimpleRetentionPolicy'
retentionDuration: {
count: 30
durationType: 'Days'
}
}
}
]
}
}

resource vaultName_fabricName_protectionContainers_protectedItems 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems@2016-06-01' = [
for (item, i) in protectedItems: {
name: '${vaultName}/${fabricName}/${protectionContainers[i]}/${item}'
properties: {
backupManagementType: backupManagementType
workloadType: workloadType
policyId: resourceId('${armProviderNamespace}/vaults/backupPolicies', vaultName, policyName)
protectedItemType: protectedItemTypes[i]
}
}
]
Loading