openstack自动化测试用例(shell)脚本

#!/bin/bash
source /root/admin-openrc.sh

network_name=selfservice
dns=114.114.114.114
gw=192.168.1.1
net=192.168.1.0/24
vm_name=demo
#网络id,需要修改
net_id=`openstack network list|grep provider|awk -F "|" '{print $2}' |awk -F " " '{print $1}'`
flavor_name=m2
route_name=demo
image_name=cirros
cinder_name=demo

while true
do
    echo "请选择执行数字"
    echo -e "1.创建网络与路由\n2.创建虚机配置\n3.创建镜像\n4.创建虚机\n5.创建云硬盘\n6.分配浮动ip\n0.退出脚本"
    read num
    echo "您当前选择的选择是 $num"

do_network()
{
    echo "************创建网络*****************"
    openstack network create ${network_name}
    openstack subnet create --network ${network_name} --dns-nameserver ${dns} --gateway ${gw}  --subnet-range ${net} ${network_name}
    
    openstack subnet list|grep ${network_name}
    ret=$?
    if [ $ret -eq 0 ];then
        echo "****************${network_name} create success********************************"
    else
        uecho "****************${network_name} create error**********************************"
    fi
    
    echo "*****************使子网经过路由连接外网*********************************************"
    openstack router create ${route_name}
    neutron router-interface-add ${route_name} ${network_name}
    neutron router-gateway-set ${route_name} provider
    
}
do_flavor()
{
    echo "***************创建虚机配置****************"
    openstack flavor create --id 80 --vcpus 2 --ram 2047 --disk 10 ${flavor_name}
    
    openstack flavor list|grep ${flavor_name}
    ret=$?
    if [ $ret -eq 0 ];then
        echo "********************${flavor_name} create success********************"
    else
        echo "***************${flavor_name} create error***********************"
    fi
}
do_image()
{
    echo "***************上传镜像*****************"
    echo "上传cirros.qcow2镜像到当前目录"
    glance image-create --name ${image_name} --file cirros.qcow2  --disk-format qcow2 --container-format bare --progress
    
}
do_vm()
{
    echo "***************创建虚机***********************"    
    #net_id=`openstack network list|grep ${network_name}`|awk -F "|" '{print $2}'
    nova boot --flavor ${flavor_name} --image ${image_name} --nic net-id=${net_id} ${vm_name}
}
do_cinder()
{
    echo "**************创建云硬盘************************"
    cinder create --name ${cinder_name} 10
}
do_ip()
{
    echo "*************分配浮动ip******************************"
    openstack ip floating create provider
}

if [ "${num}" = "0" ];then
    break;
elif [ "${num}" = "1" ];then
    do_network
elif [ "${num}" = "2" ];then 
    do_flavor
elif [ "${num}" = "3" ];then
    do_image
elif [ "${num}" = "4" ];then
    do_vm
elif [ "${num}" = "5" ];then
    do_cinder
elif [ "${num}" = "6" ];then
    do_ip
fi
    
done

你可能感兴趣的:(Openstack)