2 ##############################################################################
3 # Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
11 # this is a modified copy of compass4nfv/deploy/host_virtual.sh
15 SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd`
16 WORK_DIR=${SCRIPT_DIR}/work
20 source ./env_config.sh
22 host_vm_dir=$WORK_DIR/vm
25 function download_iso()
27 mkdir -p ${WORK_DIR}/cache
28 curl --connect-timeout 10 -o ${WORK_DIR}/cache/$IMAGE_NAME $IMAGE_URL
32 function tear_down_machines() {
33 for i in $HOSTNAMES; do
34 echo "tear down machine:" $i
36 sudo virsh undefine $i
37 rm -rf $host_vm_dir/$i
42 function get_host_macs() {
43 local mac_generator=${SCRIPT_DIR}/mac_generator.sh
46 chmod +x $mac_generator
47 mac_array=$($mac_generator $VIRT_NUMBER)
48 machines=$(echo $mac_array)
53 function launch_host_vms() {
54 mac_array=($(get_host_macs))
62 echo "bringing up vms ${mac_array[*]}"
64 for host in $HOSTNAMES; do
65 echo "creating vm disk for instance $host" \
66 "ip ${IPADDR_PREFIX}$((i+11))" \
67 "mac ${mac_array[$i]}"
68 vm_dir=$host_vm_dir/$host
71 cp ${WORK_DIR}/cache/$IMAGE_NAME $vm_dir
74 sed -e "s/REPLACE_IPADDR/${IPADDR_PREFIX}$((i+11))/g" \
75 -e "s/REPLACE_GATEWAY/${IPADDR_PREFIX}1/g" \
76 -e "s/REPLACE_HOSTNAME/${host}/g" \
79 cp user-data_template user-data
80 genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
84 sed -e "s/REPLACE_MEM/$VIRT_MEM/g" \
85 -e "s/REPLACE_CPU/$VIRT_CPUS/g" \
86 -e "s/REPLACE_NAME/$host/g" \
87 -e "s#REPLACE_IMAGE#$vm_dir/disk.img#g" \
88 -e "s#REPLACE_SEED_IMAGE#$vm_dir/seed.iso#g" \
89 -e "s/REPLACE_MAC_ADDR/${mac_array[$i]}/g" \
90 libvirt_template.xml \
93 sudo virsh define $vm_dir/libvirt.xml
94 sudo virsh start $host
98 rm -rf meta-data user-data seed.iso