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