Tek kullanımlık hale getiriyorum (bir görev / web sitesi için sil sonra kullan) Sanal Makine (VM) VMware iş istasyonunda yapmak için yavaş bir işlemdir. Secure OS Qubes'teki hızlı ~ 5 saniye DispVM (Tek Kullanımlık VM = DispVM) özelliği gibi otomatikleştirmek istiyorum. Qubes'e Giriş
Sadece bir kullanım durumu için, sıklıkla tehlikeye atılmış java, adobe flash ve daha pek çok siteyi ziyaret etmeniz gerektiğinde tek kullanımlık bir web sitesi tarayıcısı VM'dir. Bu nedenle, Adobe Flash'ın başka bir güvenlik sorunu varsa, bu VM'nin gittiğinden beri önemli değil.
Fikir taslağı
- Ana VM'nin son anlık görüntüden bu yana değişip değişmediğini kontrol edin
- ... anlık görüntü değişmiyorsa mevcut anlık görüntüyü kullanın, aksi takdirde yeni anlık görüntüyü
- bağlantılı bir klon yapın (ana vm disk + delta dosyasını kullanır, böylece tüm ana vm'yi kopyalamamız gerekmez)
- Bağlantılı klonu Disp # olarak adlandırın (otomatik oluşturulan sıra numarası)
- vm kapandığında vm'yi silin
İstenilen çözümü tamamlamak için yardıma ihtiyacım var.
VM'nin son anlık görüntüden bu yana değişip değişmediğini nasıl kontrol ederim? VM listesi anlık görüntüleri yalnızca saat / tarih damgası değil, adları verir.
Kod çevrimi bitince / terminal kapandığında Bash ortam değişkenleri silinir, bu yüzden kaç DispVM'nin çalıştığını nasıl kaydeder veya tespit ederim, böylece bir sonraki DispVM'nin ne adını vereceğimi biliyorum. Bu mağaza değişkenlerini bir dosya yaklaşımında gördüm ancak daha iyi bir seçenek umduğumu gördüm :
Bu, çalışan ve aynı anda kendilerini benzersiz şekilde adlandıran birden fazla DispVM için çalışmak için nasıl genelleştirilebilir?
bash betiği:
# 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
vmrunve benzeri sözdizimi anladın . Sadece biraz daha sağlam yapman gerekiyor. Çıkarım yapabileceğim tek sorunuz "Ben doğru yolda mıyım?" "Kesinlikle evet" diye cevaplayacağım.