Поделиться через


Резервное копирование зашифрованной виртуальной машины Azure с помощью PowerShell

Этот сценарий создает хранилище служб восстановления и геоизбыточное хранилище (GRS) для зашифрованной виртуальной машины Azure. Для хранилища применяется политика защиты по умолчанию. Она ежедневно создает резервную копию виртуальной машины и хранит эти копии в течение 365 дней. Скрипт также активирует начальную точку восстановления для виртуальной машины и сохраняет ее в течение 30 дней.

Для этого примера требуется Azure PowerShell Az 1.0 или более поздней версии. Запустите Get-Module -ListAvailable Az для просмотра установленных версий. Если необходимо выполнить установку, см. статью об установке модуля Azure PowerShell.

Запустите Connect AzAccount для входа Azure.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Пример скрипта

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

# Edit these global variables with your unique Recovery Services Vault name, resource group name and location
$rsVaultName = "myRsVault"
$rgName = "myResourceGroup"
$location = "East US"

# Register the Recovery Services provider and create a resource group
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
New-AzResourceGroup -Location $location -Name $rgName

# Create a Recovery Services Vault and set its storage redundancy type
New-AzRecoveryServicesVault `
    -Name $rsVaultName `
    -ResourceGroupName $rgName `
    -Location $location 
$vault1 = Get-AzRecoveryServicesVault –Name $rsVaultName
Set-AzRecoveryServicesProperties ` 
    -Vault $vault1 `
    -BackupStorageRedundancy GeoRedundant
    
# Set Recovery Services Vault context and create protection policy
Get-AzRecoveryServicesVault -Name $rsVaultName | Set-AzRecoveryServicesVaultContext 
$schPol = Get-AzRecoveryServicesSchedulePolicyObject -WorkloadType "AzureVM"
$retPol = Get-AzRecoveryServicesRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesProtectionPolicy `
    -Name "NewPolicy" `
    -WorkloadType "AzureVM" ` 
    -RetentionPolicy $retPol `
    -SchedulePolicy $schPol
    
# Provide permissions to Azure Backup to access key vault and enable backup on the VM
Set-AzKeyVaultAccessPolicy `
    -VaultName "KeyVaultName" `
    -ResourceGroupName "KyeVault-RGName" ` 
    -PermissionsToKeys backup,get,list `
    -PermissionsToSecrets backup,get,list ` 
    -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesProtectionPolicy -Name "NewPolicy" `
Enable-AzRecoveryServicesProtection `
    -Policy $pol `
    -Name "myVM" `
    -ResourceGroupName "VM-RGName" 
    
# Modify protection policy
$retPol = Get-AzRecoveryServicesRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesProtectionPolicy -Name "NewPolicy"
Set-AzRecoveryServicesProtectionPolicy `
    -Policy $pol `
    -RetentionPolicy $RetPol
    
# Trigger a backup and monitor backup job
$namedContainer = Get-AzRecoveryServicesContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "myVM"
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM"
$job = Backup-AzRecoveryServicesBackupItem -Item $item
$joblist = Get-AzRecoveryServicesJob -Status "InProgress"
Wait-AzRecoveryServicesJob `
        -Job $joblist[0] `
        -Timeout 43200

Очистка развертывания

Выполните следующую команду, чтобы удалить группу ресурсов, виртуальную машину и все связанные с ней ресурсы.

Remove-AzResourceGroup -Name myResourceGroup

Описание скрипта

Чтобы создать развертывание, скрипт использует следующие команды. Для каждого элемента в таблице приведены ссылки на документацию по команде.

Команда Примечания.
New-AzResourceGroup Создает группу ресурсов, в которой хранятся все ресурсы.
New-AzRecoveryServicesVault Создает хранилище Служб восстановления для хранения резервных копий.
Set-AzRecoveryServicesBackupProperty Задает свойства хранения резервных копий для хранилища служб восстановления.
New-AzRecoveryServicesBackupProtectionPolicy Создает политику защиты с помощью политик расписания и хранения в хранилище служб восстановления.
Set-AzKeyVaultAccessPolicy Задает разрешения для Key Vault, предоставляя субъекту-службе доступ к ключам шифрования.
Enable-AzRecoveryServicesBackupProtection Позволяет выполнять резервное копирование элемента с помощью указанной политики защиты Azure Backup.
Set-AzRecoveryServicesBackupProtectionPolicy Изменяет существующую политику защиты Azure Backup.
Backup-AzRecoveryServicesBackupItem Запускает резервное копирование для защищенного элемента Azure Backup, который не привязан к расписанию резервного копирования.
Wait-AzRecoveryServicesBackupJob Ожидает завершения задания Azure Backup.
Remove-AzResourceGroup Удаляет группу ресурсов и все ресурсы, содержащиеся в ней.

Следующие шаги

Дополнительные сведения о модуле Azure PowerShell см. в документации по Azure PowerShell.