3 # this is a modified copy of compass4nfv/deploy/host_virtual.sh
7 SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd`
8 WORK_DIR=${SCRIPT_DIR}/work
12 source ./env_config.sh
14 host_vm_dir=$WORK_DIR/vm
17 function download_iso()
19 mkdir -p ${WORK_DIR}/cache
20 curl --connect-timeout 10 -o ${WORK_DIR}/cache/$IMAGE_NAME $IMAGE_URL
24 function tear_down_machines() {
25 for i in $HOSTNAMES; do
26 echo "tear down machine:" $i
28 sudo virsh undefine $i
29 rm -rf $host_vm_dir/$i
34 function get_host_macs() {
35 local mac_generator=${SCRIPT_DIR}/mac_generator.sh
38 chmod +x $mac_generator
39 mac_array=$($mac_generator $VIRT_NUMBER)
40 machines=$(echo $mac_array)
45 function launch_host_vms() {
46 mac_array=($(get_host_macs))
54 echo "bringing up vms ${mac_array[*]}"
56 for host in $HOSTNAMES; do
57 echo "creating vm disk for instance $host" \
58 "ip ${IPADDR_PREFIX}${i}" \
59 "mac ${mac_array[$i]}"
60 vm_dir=$host_vm_dir/$host
63 cp ${WORK_DIR}/cache/$IMAGE_NAME $vm_dir
66 sed -e "s/REPLACE_IPADDR/${IPADDR_PREFIX}$((i+11))/g" \
67 -e "s/REPLACE_GATEWAY/${IPADDR_PREFIX}1/g" \
68 -e "s/REPLACE_HOSTNAME/${host}/g" \
71 cp user-data_template user-data
72 genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
76 sed -e "s/REPLACE_MEM/$VIRT_MEM/g" \
77 -e "s/REPLACE_CPU/$VIRT_CPUS/g" \
78 -e "s/REPLACE_NAME/$host/g" \
79 -e "s#REPLACE_IMAGE#$vm_dir/disk.img#g" \
80 -e "s#REPLACE_SEED_IMAGE#$vm_dir/seed.iso#g" \
81 -e "s/REPLACE_MAC_ADDR/${mac_array[$i]}/g" \
82 libvirt_template.xml \
85 sudo virsh define $vm_dir/libvirt.xml
86 sudo virsh start $host
90 rm -rf meta-data user-data seed.iso