Guido Oliveira
  • Home
  • Sobre
  • Contato
  • Home
  • Sobre
  • Contato
Menu
  • Home
  • Sobre
  • Contato

Criando Snapshots de discos gerenciados do Azure em lote

Published by Guido Oliveira on 25/03/2020
Categories
  • Powershell
Tags
  • azure
  • Azure Disk Snapshot
  • New-AzSnapshot
  • powershell
Facebook0
Twitter0
LinkedIn0
Google+0
Pinterest0

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
        }
    }
}

 

 

 

Dúvidas? Sugestões? Comente!

Até a próxima!

Share
Guido Oliveira
Guido Oliveira

Related posts

05/01/2021

Removendo dispositivos órfãos do Windows com Powershell


Read more
08/06/2020

Adicionando feriados no Outlook diretamente de um website pelo Powershell


Read more
31/03/2020

Armazenando Chaves RSA(SSH) no Azure Key Vault


Read more

1 Comment

  1. Denis Basílio Denis Basílio disse:
    14/07/2020 às 2:57 PM

    up

    Responder

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

ME SIGA:

  • youtube
  • facebook
  • twitter
  • instagram
  • github
  • linkedin
  • telegram

Busca

Prêmios

Powershell MVP
Facebook
© 2019 Guido Oliveira. All Rights Reserved.
Menu
  • Home
  • Sobre
  • Contato