基本流程:
从模板创建 开启 win7 虚拟机,获取uuid
xe vm-install template="win7" new-name-label="win7_1"
print UUID
xe vm-start uuid="uuid"
通过new-name-label或者UUID获取 新虚拟机的MAC及IP
xe vm-list name-label="win7_1" params=networks|awk '/network/ {print $5}'
xe vm-vif-list name-label=win7_1 | grep "MAC" | awk '{print $4}'
xe vm-list uuid="uuid" params=networks|awk '/network/ {print $5}'
为了方便使用,编写自动化的shell脚本。
vi install.sh
name=$1
new_name=$2
vm_list=$(xe vm-list name-label=${new_name})
if [[ ${vm_list} != "" ]]; then
echo "${new_name} EXIST"
else
vm_uuid=$(xe vm-install template=${name} new-name-label=${new_name})
echo "${new_name} INSTALL"
xe vm-start uuid=${vm_uuid}
echo "${new_name} START"
while true
do
net=$(xe vm-list name-label=${new_name} params=networks|awk '/network/ {print $4}')
if [[ ${net} == "0/ip:" ]]
then
ip=$(xe vm-list name-label=${new_name} params=networks|awk '/network/ {print $5}')
echo "${new_name}-IP:${ip}"
mac=$(xe vm-vif-list name-label=win7_1 | grep "MAC" | awk '{print $4}')
echo "${new_name}-MAC:${mac}"
break
else
echo 'WAITING'
fi
sleep 3
done
echo "CREATE SUCCESS"
fi