之前学习搭建过OpenStack,好久都没有使用了,这里主要搜集下OpenStack的常用命令,温故而知新。
OpenStack 搭建记录——筑梦之路_筑梦之路的博客-CSDN博客
查看日志
日志位置:
使用devstack方式部署,默认日志路径为:/opt/devstack/logs
采用非devstack方式部署,日志路径为:/var/log/xxx
日志格式:
<时间戳><日志等级> <日志内容><源代码位置>
认证管理
#查看服务目录
openstack endpoint list
openstack catalog list
#查看项目列表
openstack project list
#查看用户列表
openstack user list
#查看角色列表
openstack role list
#查看角色分配
openstack role assignment list
#创建项目
openstack project create PROJECT_NAME
#创建用户
openstack user create --project PROJECT_NAME USER_NAME
#用户分配角色
openstack role add --project PROJECT_NAME --user USER_NAME _member_1
#查看角色分配列表
openstack role assignment list
#删除项目
openstack project delete PROJECT_NAME
#删除用户
openstack user delete USER_NAME
镜像管理
#列出镜像
openstack image list
#查看镜像的详细信息
openstack image show IMAGE_NAME
#设置镜像属性
openstack image set --public IMAGE_NAME
上传镜像
#上传完整的qcow2镜像
openstack image create --file IMAGE_NAME.qcow2 --disk-format qcow2 --container-format bare --property hw_scsi_model=virtio-scsi --property hw_disk_bus=virtio --public IMAGE_NAME
#上传含kernel、initramfs和rootfs三者的镜像
openstack image create "cirros-threepart-kernel" --disk-format aki --container-format aki --public --file ~/images/cirros-0.3.5-x86_64-kernel
openstack image create "cirros-threepart-ramdisk" --disk-format ari --container-format ari --public --file ~/images/cirros-0.3.5-x86_64-initramfs
openstack image create "cirros-threepart" --disk-format ami --container-format ami --public --property kernel_id=$KID-property ramdisk_id=$RID --file ~/images/cirros-0.3.5-x86_64-rootfs.img
#下载镜像
openstack image save IMAGE_NAME --file IMAGE_NAME.qcow2
#查看镜像元数据
glance md-namespace-list
glance md-property-show NAMESPACE
#设置镜像元数据
openstack image set --property <key=value> IMAGE_NAME
#取消镜像元数据
openstack image unset --property <property> IMAGE_NAME
#删除镜像
openstack image delete IMAGE_NAME
网络管理
#查看网络服务状态
openstack network agent list
#查看网络列表
openstack network list
#查看子网列表
openstack subnet list
#根据配置文件tenant_network_types顺序选择第一个
openstack network create NETWORK_NAME
#创建一个指定的provider类型的网络,比如vxlan网络创建,自动分配segmentation_id
openstack network create NETWORK_NAME --provider-network-type vxlan
openstack network create NETWORK_NAME --provider-network-type vxlan --provider-segment 1000 --shared
#创建一个指定的provider类型的网络,比如vlan网络创建,可选择指定physical_network,segmentation_id
openstack network create NETWORK_NAME --provider-network-type vlan
openstack network create NETWORK_NAME --provider-network-type vlan --provider-physical-network physnet1 --provider-segment 101 --shared
#创建一个指定的provider类型的网络,比如flat网络创建,并设置为外部网络
openstack network create NETWORK_EXTRERNAL --provider-network-type flat --provider-physical-network external --external --shared
#为网络创建子网
openstack subnet create SUBNET_NAME --network NETWORK_NAME --subnet-range 192.0.2.0/24
#创建路由器
openstack router create ROUTER_NAME
#将路由器连接到外部的提供商网络
openstack router set ROUTER_NAME --external-gateway NETWORK_NAME
#将路由器连接到子网
openstack router add subnet ROUTER_NAME SUBNET_NAME
#在不指定IP地址的情况下创建一个端口
openstack port create PORT_NAME --network NETWORK_NAME
#创建指定IP地址的端口
openstack port create --network NETWORK_NAME --fixed-ip subnet=SUBNET_NAME,ip-address=192.0.2.40 PORT_NAME
#指定的固定IP地址的查询端口
neutron port-list --fixed-ips ip_address=192.0.2.2 ip_address=192.0.2.40
#列出浮动IP池中提供的所有浮动IP地址
openstack network list --external
#列出分配给当前项目的所有浮动的IP地址
openstack floating ip list
#分配浮动IP
openstack floating ip create NETWORK_EXTRERNAL
#释放浮动IP
openstack floating ip delete FLOATING_IP_ADDRESS
#删除子网
openstack subnet delete SUBNET_NAME
#删除网络
openstack network delete NETWORK_NAME
计算管理
查看计算服务状态
openstack compute service list
设置计算服务可用与不可用
openstack compute service set --enable/--disable HOSTNAME nova-compute
查看虚拟化节点列表
openstack hypervisor list
查看虚拟化节点详细信息
openstack hypervisor show HYPERVISOR_ID
查看所有虚拟化节点统计信息如下
openstack hypervisor stats show
查看云主机/虚拟机列表
openstack server list --all
显示云主机详细信息
openstack server show INSTANCE_NAME
查看云主机的控制台日志
openstack console log show INSTANCE_NAME
获得一个可访问的云主机的URL
openstack console url show INSTANCE_NAME/INSTANCE_ID --novnc
创建云主机
openstack server create --flavor FLAVOR_ID --image IMAGE_ID --network NETWORK_ID --wait
INSTANCE_NAME
挂起和恢复云主机
openstack server suspend INSTANCE_NAME
openstack server resume INSTANCE_NAME
暂停和取消暂停云主机
openstack server pause INSTANCE_NAME
openstack server unpause INSTANCE_NAME
关闭云主机
openstack server stop INSTANCE_NAME
启动云主机
openstack server start INSTANCE_NAME
重启云主机
软重启
openstack server reboot --soft INSTANCE_NAME
硬重启
openstack server reboot --hard INSTANCE_NAME
重置云主机状态
openstack server set --state active INSTANCE_NAME
调整云主机
openstack server resize --flavor FLAVOR_ID INSTANCE_NAME
手动确认调整大小
openstack server resize --confirm INSTANCE_ID
如果调整失败或未按预期运行,可以恢复调整大小
openstack server resize --revert INSTANCE_ID
重建虚拟机
openstack server rebuild --image IMAGE_ID INSTANCE_NAME
云主机挂载云硬盘
openstack server add volume INSTANCE_ID VOLUME_ID
openstack server add volume --device /dev/vdb INSTANCE_ID VOLUME_ID
云主机卸载云硬盘
openstack server remove volume INSTANCE_ID VOLUME_ID
云主机添加浮动IP
openstack server add floating ip INSTANCE_NAME/INSTANCE_ID FLOATING_IP_ADDRESS
云主机移除浮动IP
openstack server remove floating ip INSTANCE_NAME/INSTANCE_ID FLOATING_IP_ADDRESS
云主机添加固定IP地址
openstack server add fixed ip --fixed-ip-address FIXED_IP_ADDRESS
INSTANCE_NAME/INSTANCE_ID NETWORK_NAME
云主机移除固定IP地址
openstack server remove fixed ip INSTANCE_NAME/INSTANCE_ID FIXED_IP_ADDRESS
云主机添加网络
openstack server add network INSTANCE_NAME/INSTANCE_ID NETWORK_NAME
云主机移除网络
openstack server remove network INSTANCE_NAME/INSTANCE_ID NETWORK_NAME
云主机添加端口
openstack server add port INSTANCE_NAME/INSTANCE_ID PORT_NAME
云主机移除端口
openstack server remove port INSTANCE_NAME/INSTANCE_ID PORT_NAME
云主机添加安全组
openstack server add security group INSTANCE_NAME/INSTANCE_ID SECURITY_GROUP_ID
云主机移除安全组
openstack server remove security group INSTANCE_NAME/INSTANCE_ID SECURITY_GROUP_ID
创建云主机快照
openstack server image create INSTANCE_NAME --name INSTANCE_NAME_SNAPSHOT
撤离云主机
从失败的计算节点撤离该云主机,若为共享存储则保留原系统数据,若非共享存储,则基于原镜像和原端口重建虚拟机,挂载的共享盘保留。
openstack server evacuate INSTANCE_NAME/INSTANCE_ID
云主机迁移
openstack server migrate --live-migration INSTANCE_ID
删除云主机
openstack server delete INSTANCE_NAME
安全组管理
查看安全组列表
openstack security group list
查看安全组规则列表
openstack security group rule list
查看安全组详细信息
openstack security group show SECURITY_GROUP_ID
创建安全组
openstack security group create SECURITY_GROUP_NAME
openstack security group create SECURITY_GROUP_NAME --project PROJECT_ID
在安全组中,添加ssh规则
openstack security group rule create default --dst-port 22 --description ssh SECURITY_GROUP_ID
在安全组中,添加允许所有icmp、tcp、udp
openstack security group rule create default --protocol icmp --description icmp SECURITY_GROUP_ID
openstack security group rule create default --protocol tcp --description tcp SECURITY_GROUP_ID
openstack security group rule create default --protocol udp --description udp SECURITY_GROUP_ID
查看规则详细信息
openstack security group rule show SECURITY_GROUP_RULE_ID
删除规则
openstack security group rule delete SECURITY_GROUP_RULE_ID
删除安全组
openstack security group delete SECURITY_GROUP_ID
密钥管理
查看秘钥列表
openstack keypair list
创建秘钥
openstack keypair create KEY_PAIR_NAME > KEY_PAIR_NAME.pem
使用秘钥
openstack server create --flavor FLAVOR_ID --image IMAGE_ID --network NETWORK_ID --key-name KEY_PAIR_NAME INSTANCE_NAME
chmod 600 KEY_PAIR_NAME.pem
ip netns exec qdhcp-xxxxxx ssh -i KEY_PAIR_NAME.pem username@x.x.x.x
删除秘钥
openstack keypair delete KEY_PAIR_NAME
FLAVOR管理
查看FLAVOR列表
openstack flavor list
创建FLAVOR
openstack flavor create --ram 8192 --disk 200 --vcpus 4 FLAVOR_NAME
删除FLAVOR
openstack flavor delete FLAVOR_NAME
资源统计
查看资源使用情况
openstack usage list
查看单个项目的资源使用情况
openstack usage show --project <project>
部署参考资料: