交互式CLI
- 设置环境变量
在stack里找到以bash_completion为后缀的文件存放地址,设置环境变量。本人的存放地址为/opt/stack/nova/tools/nova-manage.bash_completion
故执行source /opt/stack/nova/tools/nova-manage.bash_completion
- 以demo身份登录
执行命令:source openrc demo demo
- 通过镜像创建卷
1)查看可用镜像:openstack image list
2)创建卷:openstack volume create --size 1 --image 84d08b3f-4173-4e6b-a0e1-c6c3d00da37d v1
,–image后面的参数是1)中查看的可用镜像的ID,最后一个参数v1是卷的名字。 - 使用卷创建虚拟机
1)使用命令:nova flavor-list
查看flavor ID,这里选了m1.nano的ID
2)使用命令:neutron net-list
查看可用网络ID,这里选了private的网络ID
3)使用命令:nova boot --flavor 42 --boot-volume=cce279ee-2ba8-41c0-86e4-42c7cf713407 --nic net-id=d885ad48-f25f-40b2-8b45-ed9e5a126c8c s1
创建虚拟机 - 启动虚拟机
- 通过server ssh访问虚拟机
1)执行命令:openstack security group rule create default \ --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
创建ssh安全规则
2)执行命令:neutron floatingip-create public
创建浮动ip
3)执行命令:openstack server add floating ip s1 172.24.4.98
绑定浮动ip,其中,s1为实例的名称,172.24.4.98为浮动ip
4)执行命令:ssh cirros@172.24.4.98
,输入密码cubswin:)
Shell脚本
- 利用CLI,编写Shell脚本,用循环语句创建多台虚拟机并启动。
这里贴个自己写的辣鸡小脚本
#! /bin/bash
#用镜像创建3个卷
for i in $(seq 1 3)
do
openstack volume create --size 1 --image 84d08b3f-4173-4e6b-a0e1-c6c3d00da37d v$i
echo
done
#将新建的卷的id存入数组id中
id=$(openstack volume list -c ID)
array=($id)
#从新建的卷创建3个实例
for ((i=0,j=1;i<${#array[@]};i++))
do
echo ${array[$i]}
nova boot --flavor 42 --boot-volume=${array[$i]} --nic net-id=d885ad48-f25f-40b2-8b45-ed9e5a126c8c s$j
if [ $? -eq 0 ]; then
j=$((j+1))
else
echo "failed"
fi
done
# neutron floatingip-create public
# neutron floatingip-associate