Veeam Backup Free Edition: agora com PowerShell!

Vladimir EreminEsta é uma postagem do convidado Vladimir Eremin, gerente de produtos da Veeam. Vladimir é muito ativo nos fóruns da Veeam, no Twitter e no Spiceworks. Uma das habilidades de Vladimir é o PowerShell; nesta postagem, ele vai orientar você neste processo. Se tiver alguma dúvida sobre as partes do PowerShell mencionadas nesta postagem, use os fóruns da Veeam para discutí-la. Você também pode fazer o download do script de amostra para VMware e para Hyper-V, e discutir no tópico correspondente nos fóruns da Veeam.

Nosso Veeam Backup Free Edition tem sido a ferramenta gratuita mais popular da Veeam, principalmente graças à funcionalidade do VeeamZIP: realizar backup completos interativos de uma quantidade ilimitada de VMs. Mas o VeeamZIP sempre teve uma limitação pequena, mas irritante: a incapacidade de agendar backups regulares. Realmente, como só é possível ativar o VeeamZIP de forma interativa, não há uma maneira simples de agendá-lo com tarefas de backup regulares na interface. Se você já se deparou com esse problema, pode se alegrar em saber que, a partir do Update 2, não é mais assim. Graças aos fóruns da Veeam e nosso envolvimento no Veeam e em outras áreas, reconhecemos o problema e decidimos resolvê-lo ao disponibilizar o cmdlet do PowerShell Start-VBRZip disponível na Free Edition.

Como funciona

Como dissemos antes, a funcionalidade principal do Veeam Backup Free Edition é poder realizar backups VeeamZIP de suas VMs (e, é claro, recuperar VMs, arquivos guest e itens de aplicação desses backups). O VeeamZIP sempre gera um arquivo de backup completo (.vbk) que funciona como um ponto de restauração independente. A Free Edition permite armazenar esse arquivo em um repositório de backup, em uma pasta local ou em um compartilhamento de rede.

Quando você realiza um backup com o VeeamZIP, pode iniciar o processo de backup para a VM selecionada imediatamente. Esse tipo de backup requer um mínimo de configuração; portanto, é extremamente fácil ativá-lo manualmente.

Com o Update 2, agora você pode escrever um script simples de PowerShell (confira a amostra para VMware e para Hyper-V), que inicia a atividade do VeeamZIP para uma VM selecionada, e definir a programação que quiser para ele por meio do Agendador do Windows. Até criamos o script de exemplo a seguir que, além de ativar backups do VeeamZIP para as VMs selecionadas, manda por e-mail um relatório bem formatado com os resultados dos backups!

Parâmetros do script

O script pode realizar backups ad hoc das VMs selecionadas que estejam tanto em um host ou cluster independente quanto em um servidor vCenter. Antes de executar o script, você precisa fornecer três parâmetros obrigatórios: nomes das VMs para os backups, o host onde as VMs estão e a pasta onde os arquivos de backup devem ser armazenados. Observação: este script foi atualizado em 18/5 graças aos feedbacks.

 

##################################################################

# Variáveis definidas pelo usuário

##################################################################

# Nomes das VMs que passarão por backup, separados por vírgula (obrigatório). Por exemplo, $VMNames = “VM1”,”VM2”

$VMNames = ""

# Nome do host vCenter ou ESXi independente nos quais as VMs estão (obrigatório).

$HostName = ""

# Pasta para a qual os backups das VMs devem ir (obrigatório; por exemplo, C:\Backup)

$Directory = ""

 

Opcionalmente, você pode alterar o nível de compactação e retenção desejado, desativar o quiescence do VMware, ativar a criptografia ou até mesmo configurar notificações:

# Nível de compactação desejado (opcional; valores possíveis: 0 - nenhum, 4 - amigável à deduplicação, 5 - ideal, 6 - alto, 9 - extremo)

$CompressionLevel = "5"

# Quiesce VM ao fazer snapshot (opcional; para usar o recurso, é preciso ter o VMware Tools ou os Componentes de Integração do Hyper-V no SO guest; valores possíveis: $True/$False)

$EnableQuiescence = $True

# Proteger o backup resultante com chave de criptografia (opcional; $True/$False)

$EnableEncryption = $False

# Chave de criptografia (opcional; caminho para uma string segura)

$EncryptionKey = ""

# Configurações de retenção (opcional; por padrão, os arquivos do VeeamZIP não são removidos, sendo mantidos no local especificado por tempo indeterminado.

# Valores possíveis: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)

$Retention = "Never"

 

Se quiser receber um relatório por e-mail quando o backup terminar, você também deve preencher as configurações de notificação a seguir.

##################################################################

# Configurações de notificação

##################################################################

# Ativar notificação (opcional)

$EnableNotification = $True

# Servidor de e-mail SMTP

$SMTPServer = ""

# Remetente do e-mail

$EmailFrom = ""

# Destinatário do e-mail

$EmailTo = ""

# Assunto do e-mail

$EmailSubject = ""
O relatório de e-mail resultante ficará parecido com o seguinte:

Name Start Time End Time Result Details
CentOS-tiny_2015-03-26T180459 3/26/2015 6:04:59 PM 3/26/2015 6:07:17 PM Warning Processing finished with warnings at 3/26/2015 6:07:13 PM Cannot use VMware Tools quiescence because VMware Tools are not found.
CentOS-tiny_replica_2015-03-26T180720 3/26/2015 6:07:20 PM 3/26/2015 6:11:20 PM Success Processing finished at 3/26/2015 6:11:18 PM

Todas as configurações mencionadas acima, podem ser configuradas ao ajustar certas variáveis com os valores correspondentes. Por exemplo, para ativar a criptografia, você deve definir o valor $True (booleano) para a variável $EnableEncryption e fornecer a chave de criptografia (consulte o próximo capítulo). Além disso, se quiser que os arquivos de backup sejam excluídos depois de duas semanas, você deve definir o valor “In2Weeks” (string) para a variável $Retention, etc. Não é preciso lembrar o que cada variável faz e quais valores são aceitáveis; para sua conveniência, o script de exemplo inclui uma descrição curta para cada variável.

Criptografia

Vamos voltar a falar da criptografia. A segurança dos dados é fundamental na estratégia de backup. Os dados de backup devem ser protegidos do acesso não autorizado, especialmente quando o backup de uma VM confidencial é levado para um local externo ou arquivado em fitas. Para manter seus dados seguros, você pode criptografar seus backups do VeeamZIP. Como notamos acima, isso exige a escolha de um arquivo que contenha a senha de criptografia.

É claro que você poderia fornecer a senha ao script como uma string de texto puro. Mas strings comuns são, no mínimo, inseguras, já que são armazenadas na memória como texto puro. Como resultado, a maioria dos cmdlets PowerShell simplesmente não aceita senhas nesse formato.

Uma string segura é a melhor opção. Esse tipo de dado é parecido com a string comum, mas o conteúdo é criptografado na memória. Ele usa uma criptografia reversível para que a senha possa ser descriptografada quando for necessário, mas somente pela entidade de segurança que a criptografou. Para criar uma string segura, você precisa abrir o console do PowerShell e digitar as duas linhas abaixo. Quando esse código for executado, ele pedirá que você digite uma senha e, então, a salvará como uma string segura em um arquivo:

$SecurePassword = Read-Host -Prompt "Enter password" -AsSecureString

$SecurePassword | ConvertFrom-SecureString > > “Directory where secure string should be stored; C:\SecureString.txt, for instance”

Depois disso, especifique o caminho para o arquivo recém-criado no script principal:
# Proteger o backup resultante com chave de criptografia (opcional; $True/$False)

$EnableEncryption = $True

# Chave de criptografia (opcional; caminho para uma string segura)

$EncryptionKey = "C:\SecureString.txt"

Agendando o script

Antes de agendar o script, não deixe de iniciá-lo manualmente para garantir que ele funcione conforme o esperado.

A maneira mais fácil de agendar o script para realizar backups periódicos automaticamente é usar o Agendador de Tarefas do Windows. Basta acessar a ferramenta Agendador de Tarefas e criar uma tarefa básica nova:

Atribua um nome e uma descrição a ela para que você se lembre facilmente do que a tarefa faz.

A próxima página é o Disparador de Tarefa. Ele é bem básico e autoexplicativo. As opções disponíveis são bem flexíveis (é possível executar os backups várias vezes ao dia ou uma vez por mês), então ajuste os melhores valores para seus requisitos de RPO. A maioria das pessoas usa backups diários:

Ajuste a hora de início da tarefa fora do expediente. Neste exemplo, a tarefa é executada toda noite, às 22h, a partir de 22 de abril de 2015.

Na página seguinte, Ação, especifique que a tarefa agendada deve iniciar um programa e clique em Avançar.

No painel Iniciar um Programa, você vai inserir o seguinte comando no campo Programa/script:

Powershell –file “caminho para o arquivo Veeamzip.ps1”

Pronto! Mas talvez você queira abrir a tarefa depois de criada para fazer mais mudanças. Para isso, ative a opção Abrir a caixa de diálogo Propriedades desta tarefa ao clicar em Concluir:

Como a tarefa deve ser executada em um servidor no qual talvez não haja um usuário conectado quando a tarefa acontecer, é bom permitir que a tarefa seja executada independentemente do usuário estar conectado ou não, associando as credenciais do usuário à tarefa.

Quando terminar, clique com o botão direito na tarefa e escolha “Executar” para garantir que a tarefa seja concluída adequadamente:

O PowerShell oferece aos usuários o que eles sempre quiseram fazer com o Veeam Backup Free Edition!

Agora, com essa capacidade nova e incrível, você deve ser capaz de atingir aquele objetivo tão aguardado: fazer backups agendados com o Veeam Backup Free Edition, que oferece muito mais recursos de backup e recuperação do que as outras soluções gratuitas de backup baseadas em scripts.

Exit mobile version