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