2 git clone http://git.openstack.org/stackforge/compass-install
5 function join { local IFS="$1"; shift; echo "$*"; }
6 source ${SCRIPT_DIR}/../deploy/conf/${CONF_NAME}.conf
7 source ${SCRIPT_DIR}/../deploy/func.sh
8 if [[ ! -z $VIRT_NUMBER ]]; then
9 mac_array=$(${SCRIPT_DIR}/../deploy/mac_generator.sh $VIRT_NUMBER)
10 mac_list=$(join , $mac_array)
11 echo "pxe_boot_macs: [${mac_list}]" >> install/group_vars/all
12 echo "test: true" >> install/group_vars/all
14 virsh list |grep compass
15 if [[ $? == 0 ]]; then
16 compass_old=`virsh list |grep compass|awk '{print$2}'`
17 virsh destroy ${compass_old}
18 virsh undefine ${compass_old}
20 sudo vagrant up compass_nodocker
21 if [[ $? != 0 ]]; then
22 echo "installation of compass failed"
23 sudo vagrant destroy compass_nodocker
29 if [[ -n $mac_array ]]; then
30 echo "bringing up pxe boot vms"
32 for mac in $mac_array; do
33 echo "creating vm disk for instance pxe${i}"
34 sudo qemu-img create -f raw /home/pxe${i}.raw ${VIRT_DISK}
35 sudo virt-install --accelerate --hvm --connect qemu:///system \
36 --name pxe$i --ram=$VIRT_MEM --pxe --disk /home/pxe$i.raw,format=raw \
37 --vcpus=$VIRT_CPUS --graphics vnc,listen=0.0.0.0 \
38 --network=bridge:virbr2,mac=$mac \
39 --network=bridge:virbr2 \
40 --network=bridge:virbr2 \
41 --network=bridge:virbr2 \
42 --noautoconsole --autostart --os-type=linux --os-variant=rhel6
43 if [[ $? != 0 ]]; then
44 echo "launching pxe${i} failed"
47 echo "checking pxe${i} state"
48 state=$(virsh domstate pxe${i})
49 if [[ "$state" == "running" ]]; then
50 echo "pxe${i} is running"
51 sudo virsh destroy pxe${i}
53 echo "add network boot option and make pxe${i} reboot if failing"
54 sudo sed -i "/<boot dev='hd'\/>/ a\ <boot dev='network'\/>" /etc/libvirt/qemu/pxe${i}.xml
55 sudo sed -i "/<boot dev='network'\/>/ a\ <bios useserial='yes' rebootTimeout='0'\/>" /etc/libvirt/qemu/pxe${i}.xml
56 sudo virsh define /etc/libvirt/qemu/pxe${i}.xml
57 sudo virsh start pxe${i}