Olá pessoal,
Um snapshot é uma cópia completa e somente leitura de um disco rígido virtual (VHD). Você pode tirar um snapshot de um VHD de um sistema operacional ou disco de dados para usar como backup ou para solucionar problemas de máquina virtual (VM).
Recentemente precisei tirar diversos snapshots tanto do disco de dados quanto do disco de sistema operacional de um grupo de servidores no azure. Para fazer mais rapido decidi criar um script que só precisaria passar o nome da maquina virtual como argumento e todo o resto seria feito de maneira automatica.
O Script abaixo vai listar todas as maquinas virtuais do azure na variavel $VMs e para cada nome da array de nomes que estou passando, ele vai buscar a VM correspondente, ler as informações de disco e fazer o snapshot do disco de sistema operacional, caso haja algum disco de dados, o snapshot também será feito para cada um presente.
$VMs = Get-AzVM
'Ubuntu18','Windows10' | ForEach-Object -Process {
$VM = $VMs | Where-Object -Property Name -EQ -Value $PSItem
$snapshot = New-AzSnapshotConfig -SourceUri $VM.StorageProfile.OsDisk.ManagedDisk.Id -Location $VM.Location -CreateOption copy
New-AzSnapshot -Snapshot $snapshot -SnapshotName ('{0}-snapshot1' -f $VM.StorageProfile.OsDisk.Name) -ResourceGroupName $VM.resourceGroupName -Verbose
if($VM.StorageProfile.DataDisks.Count -gt 0){
$VM.StorageProfile.DataDisks | ForEach-Object -Process {
$Disk = $PSItem
$snapshot = New-AzSnapshotConfig -SourceUri $Disk.ManagedDisk.Id -Location $VM.Location -CreateOption copy
New-AzSnapshot -Snapshot $snapshot -SnapshotName ('{0}-snapshot1' -f $Disk.Name) -ResourceGroupName $VM.resourceGroupName -Verbose
}
}
}
1 Comment
up