Virtualization the Linux/OSS Way
Listing 1. Script to Create Multiple VMs
#! /bin/bash # A quick and dirty script to create multiple virtual machines, # give them unique hostnames and IP addresses, and culminate in # bringing them on-line. # name of the directory where we'll mount our vdi's dir=temp rootdir=`pwd`/$dir # the basename for the vms basename=vbox-vm- # the file that contains the basic disk image basevdi=base.vdi # how many images are we making number=2 # what subnet will these guests be going on IPnetwork='10.7.7.' gateway='10.7.7.1' # the start of the address range we will use baseIP=10 # amount of memory these guests will get in Mbytes memory=512 # base VRDP port baseRDP=16001 counter=1 while [ $counter -le $number ] do echo $basename$counter $basename$counter.vdi \ $IPnetwork$baseIP $memory VBoxManage clonehd `pwd`/base.vdi \ `pwd`/$basename$counter.vdi --variant Fixed sudo mount_vdi/mount_vdi.sh $basename$counter.vdi $rootdir 1 sudo sed -i "s/basicsys/$basename$counter/g" $rootdir/etc/hosts sudo sed -i "s/basicsys/$basename$counter/g" $rootdir/etc/hostname sudo sed -i "s/22.214.171.124/$gateway/g" $rootdir/etc/network/interfaces sudo sed -i "s/126.96.36.199/$IPnetwork$baseIP/g" \ $rootdir/etc/network/interfaces sudo rm $rootdir/etc/udev/rules.d/70-persistent-net.rules sudo touch $rootdir/etc/udev/rules.d/70-persistent-net.rules sudo umount $rootdir sudo losetup -d /dev/loop1 sudo losetup -d /dev/loop0 VBoxManage createvm --name $basename$counter --register VBoxManage modifyvm $basename$counter --pae on --hwvirtex on VBoxManage modifyvm $basename$counter --memory $memory --acpi on VBoxManage modifyvm $basename$counter \ --hda `pwd`/$basename$counter.vdi VBoxManage modifyvm $basename$counter \ --nic1 bridged --nictype1 82540EM --bridgeadapter1 eth0 VBoxHeadless --startvm $basename$counter -p $baseRDP & sleep 5 baseRDP=$((baseRDP + 1)) baseIP=$((baseIP + 1)) counter=$((counter + 1)) done
If you get this script working, you are well on your way to having the infrastructure in place to support a manageable, flexible, cost-effective, robust virtualization environment. Personally, I'm looking forward to getting 3.2.x in place and being able to teleport running machines between hosts to manage workloads in real time—from the command line, of course. Stay tuned, my next article will deal with the back-end shared storage (based on open protocols and free, open-source software, while being redundant and performant). I intend to connect my virtualization hosts to support being able to:
VBoxManage controlvm vbox-vm-3 \ teleport --host vbox-host-2 --port 17001
-- I was cloud before cloud was cool. Not in the sense of being an amorphous collection of loosely related molecules with indeterminate borders -- or maybe I am. Holla @geek_king, http://twitter.com/geek_king
- Readers' Choice Awards 2013
- Mars Needs Women
- RSS Feeds
- Sublime Text: One Editor to Rule Them All?
- December 2013 Issue of Linux Journal: Readers' Choice
- Raspberry Pi: the Perfect Home Server
- IBM Will Minimize Impact of Future Disasters
- Linux Systems Administrator
- Tech Tip: Really Simple HTTP Server with Python
- Senior Perl Developer
- As much as I share your point
34 min 52 sec ago
- So girls had it better ?
4 hours 6 min ago
- Reply to comment | Linux Journal
4 hours 26 min ago
- why is GNOME 3 in the fifth position at 14.1 %?
9 hours 58 min ago
- Sublime Is Brilliant!
15 hours 1 min ago
15 hours 21 min ago
- Rapid[Disk,Cache] better than native ram caching?
15 hours 46 min ago
- Nothing is perfect
15 hours 59 min ago
- Mixtapes Community
21 hours 38 min ago
- KDE is one true DE
22 hours 12 min ago