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/188.8.131.52/$gateway/g" $rootdir/etc/network/interfaces sudo sed -i "s/184.108.40.206/$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
|Geek Hide-away in Guatemala - Stay for Free!||Nov 26, 2015|
|Microsoft and Linux: True Romance or Toxic Love?||Nov 25, 2015|
|Non-Linux FOSS: Install Windows? Yeah, Open Source Can Do That.||Nov 24, 2015|
|Cipher Security: How to harden TLS and SSH||Nov 23, 2015|
|Web Stores Held Hostage||Nov 19, 2015|
|diff -u: What's New in Kernel Development||Nov 17, 2015|
- Cipher Security: How to harden TLS and SSH
- Microsoft and Linux: True Romance or Toxic Love?
- Non-Linux FOSS: Install Windows? Yeah, Open Source Can Do That.
- Web Stores Held Hostage
- Firefox's New Feature for Tighter Security
- Geek Hide-away in Guatemala - Stay for Free!
- PuppetLabs Introduces Application Orchestration
- It's a Bird. It's Another Bird!
- diff -u: What's New in Kernel Development
- IBM LinuxONE Provides New Options for Linux Deployment