From d423beeee5a632fb78e010356c1cbbef1062deca Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Date: Fri, 24 Sep 2010 18:00:36 -0400
Subject: [PATCH] [#4116] Add initial VM deployment scripts and xml
 specification

---
 tools/vm/Ubuntu-10.04-i386-on-KVM.xml | 23 ++++++++
 tools/vm/deploy_vm.sh                 | 82 +++++++++++++++++++++++++++
 2 files changed, 105 insertions(+)
 create mode 100644 tools/vm/Ubuntu-10.04-i386-on-KVM.xml
 create mode 100644 tools/vm/deploy_vm.sh

diff --git a/tools/vm/Ubuntu-10.04-i386-on-KVM.xml b/tools/vm/Ubuntu-10.04-i386-on-KVM.xml
new file mode 100644
index 0000000000..089dee1907
--- /dev/null
+++ b/tools/vm/Ubuntu-10.04-i386-on-KVM.xml
@@ -0,0 +1,23 @@
+<domain type='kvm'>
+  <name>Ubuntu-10.04-i386-on-KVM</name>
+  <description>Virtual machine to test SFLphone compilation</description>
+  <memory>524288</memory>
+  <vcpu>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+  </os>
+  <devices>
+    <emulator>usr/bin/kvm</emulator>
+    <disk type='file' device='disk'>
+      <source file='/home/msavard/Development/vm/firstvm/vm0-ubuntu-10.04.1-desktop-i386.qcow2'/>
+      <target dev='hda'/>
+    </disk>
+    <interface type='network'>
+      <source network='default'/>
+    </interface>
+    <graphics type='vnc' port='-1'/>
+  </devices>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+</domain>
diff --git a/tools/vm/deploy_vm.sh b/tools/vm/deploy_vm.sh
new file mode 100644
index 0000000000..4f566c33dc
--- /dev/null
+++ b/tools/vm/deploy_vm.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+# Requirements:
+
+# 1) apt-get install kvm virsh
+
+# 2) Make sure kvm and kvm_intel are installed
+# lsmod | grep kvm
+
+# 3) Get a .iso file for the coresponding distro
+
+# 4) Install a new VM on a disk image
+# kvm-img create vm0-ubuntu-10.04.1-desktop-i386.qcow2 -f qcow2 6G
+# kvm -k en-us -usbdevice tablet -hda vm0-ubuntu-10.04.1-desktop-i386.qcow2 -cdrom ubuntu-10.04.1-desktop-i386.iso -boot d -m 512
+# kvm -k en-us -usbdevice tablet -hda vm0-ubuntu-10.04.1-desktop-i386.qcow2 -cdrom ubuntu-10.04.1-desktop-i386.iso -boot c -m 512
+
+# 5) Create the VM
+# virsh -c qemu:///system define Ubuntu-10.04-i386-on-KVM.xml
+
+# 6) Copy Host's public ssh key in order to avoid password request
+# ssh-copy-id sflphone@machine
+
+# 7) Take a snapshot of this disk image
+# kvm-img snapshot -c tag_name disk_image_filename
+
+# 8) Add NOPASSWORD in sudoers
+
+VM=Ubuntu-10.04-i386-on-KVM
+
+VIRSH="virsh -c qemu:///system"
+
+# Get the full path to vm's 
+DISK_IMG=$($VIRSH dumpxml "${VM}"|grep source.file|cut -d"'" -f2)
+echo "Disk Image: $DISK_IMG"
+# Get MAC address for this vm
+MAC_ADDR=$($VIRSH dumpxml "${VM}"|grep mac.address|cut -d"'" -f2)
+echo "Mac Address: $MAC_ADDR"
+
+# Reset disk to last snapshot
+LAST_SNAPSHOT_ID=$(kvm-img snapshot -l $DISK_IMG|tail -n 1|cut -d' ' -f1)
+kvm-img snapshot -a $LAST_SNAPSHOT_ID $DISK_IMG
+
+# Create VM
+$VIRSH start $VM
+
+# Get its IP address
+echo -n "Waiting for IP address..."
+LAST_STAMP=$(grep $MAC_ADDR /var/lib/misc/dnsmasq.leases | cut -d' ' -f1)
+while [ 1 ]
+do
+  NEXT_STAMP=$(grep $MAC_ADDR /var/lib/misc/dnsmasq.leases | cut -d' ' -f1)
+  if [ $LAST_STAMP != $NEXT_STAMP ]; then
+    IPADDR=$(grep $MAC_ADDR /var/lib/misc/dnsmasq.leases | cut -d' ' -f3)
+    break
+  fi
+  echo -n "."
+  sleep 0.5
+done
+echo " got $IPADDR"
+
+HOST=sflphone@$IPADDR
+
+# Connect ssh
+echo -n "Waiting for ssh to start..."
+while [ 1 ]; do
+  ssh $HOST echo Connected && break
+  sleep 2
+done
+
+# create an archive of the repository
+# git archive --format=tar -o sflphone.tar HEAD
+# gzip sflphone.tar
+# scp -C sflphone.tar.gz $HOST
+
+# sudo add-apt-repository ppa:savoirfairelinux
+
+# sudo apt-get build-dep sflphone-common
+# sudo apt-get build-dep sflphone-client-gnome
+
+
+
+
-- 
GitLab