Tek Kullanımlık Sanal Makinelerin oluşturulmasını vmware iş istasyonuyla nasıl kodlarım?


1

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

Ne sorduğun belli değil. Bu konuyu kurmakla ilgili bir sorunun mu var? Yoksa nasıl yapılacağını mı soruyorsun? Ne denedin
Michael Frank

@MichaelFrank Evet komut dosyası (GUI kolay ama yavaş ve 3 DispVMs demeniz gerektiğinde gerçek bir acı) de bazı kodlar ekledi. Tek Kullanımlık VM ile neyi hedeflediğim net mi?
StackAbstraction 9:15

1
@FranciscoTapia Kod yorumlarındaki sorular da dahil olmak üzere iş ve araştırmamı gösteriyorum. Önceki yorum şu ana kadar ne yaptığımı sordu. Açıkça araştırmayı ve girişimlerimi açıkça gösteriyorum, o halde soru neden belirsiz ya da sizin için yararlı değil?
StackAbstraction

2
Soruyu burada göremiyorum. Sorunu kendiniz çözmenin bir parçası gibi görünüyorsunuz, öyleyse neden memnuniyeti çalışana kadar senaryo yazma işine devam etmiyorsunuz? Sen zaten orada yarı yoldan, sen 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.
allquixotic

1
@FranciscoTapia Sorun yaşadığım yerlere özel sorular ekledim, bu endişenizi çözdü mü?
StackAbstraction 10:15
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.