#!/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