Como faço o script da criação de Máquinas Virtuais Descartáveis com a estação de trabalho vmware?

1

Estou fazendo um descartável (use para uma tarefa / site e exclua) Máquina Virtual (VM) é um processo lento para fazê-lo na estação de trabalho do VMware. Eu quero automatizá-lo assim é como o rápido ~ 5 segundo DispVM (Disposable VM = DispVM) recurso no Secure OS Qubes. Introdução ao Qubes

É apenas para um caso de uso, uma VM de navegador de site descartável quando você precisa visitar sites da Web com Java, Adobe Flash e muito mais. Portanto, se o Adobe Flash tiver outro problema de segurança, não importa, já que a VM desapareceu.

Esboço da ideia

  • Verifique se a VM principal mudou desde o último instantâneo
  • ... se o instantâneo estiver inalterado, use o instantâneo existente, caso contrário, crie um novo instantâneo
  • cria um clone vinculado (usa o disco + delta do vm master, por isso não é necessário copiar todo o master vm)
  • Nomeie o clone vinculado Disp # (número seqüencial gerado automaticamente)
  • quando a vm está desligada, exclua a vm

Preciso de ajuda para completar toda a solução desejada.

  • Como posso verificar se a VM foi alterada desde o último instantâneo? Os instantâneos da lista de VMs fornecem apenas os nomes que não são carimbos de data / hora.

  • As variáveis ambientais do Bash são apagadas quando o script é concluído / o terminal é fechado. como faço para armazenar ou detectar quantos DispVMs estão sendo executados, então eu sei o que para nomear a próxima DispVM criada? Eu vi esta loja variáveis em um arquivo , mas esperando por uma opção melhor:

  • Como isso pode ser generalizado para trabalhar em várias versões do DispVM e se nomear com exclusividade ao mesmo tempo?

script bash:

# assume snapshot current, | tail -1 (gives last snapshot name)
$strCurrentSnapshotName = vmrun -T ws listShapshots VMs/Master-Fedora-DVM.vmx | tail -1

# make linked clone
vmrun -T ws clone VMs/Master-Fedora/Master-Fedora-DVM.vmx VMs/DVM1/DVM1.vmx linked strCurrentSnapshotName 

vmrun start VMs/DVM1/DVM1.vmx

vmrun -gu <user> -gp <pass> runProgramInGuest VMs/DVM1/DVM1.vmx /usr/bin/firefox --display=:0

# How to  check if VM is powered off 
# when list of running VMs does not contain DVM then we are ok to break and delete
while [ !(vmrun -T ws list | grep DVM) ]
do
  sleep 5
done

# now dispose of and delete vm
vmrun -T ws unregister VMs/DVM1.vmx

# shred directory and delete
find VMs/DVM1/ -type f -exec shred {} \;
vmrun -T ws deleteVM VMs/DVM1/DVM1.vmx
    
por StackAbstraction 09.09.2015 / 02:54

0 respostas