OpenStack 命令整理
参考地址:
Openstack
查看物理机的资源
查看主机列表
$ openstack host list
查看某台主机资源情况
$ openstack host show 主机名
查看实例 ( 虚拟机 ) 资源
查看虚拟机详情
$ openstack server show {{ 虚机名 }}
KeyStone ( 用户验证相关 )
列出所有用户
$ openstack user list
列出认证服务目录
$ openstack catalog list
查看openstack token信息
# 需要定时source 用户信息
$ source /etc/kolla/admin-openrc.sh
# 查看信息
$ openstack token issue
Glance ( 镜像相关 )
查看:
列出您可以访问的镜像
$ openstack image list
删除:
删除指定的镜像
$ openstack image delete {{ IMAGE }}
描述一个指定的镜像
$ openstack image show {{ IMAGE }
改:
更新镜像
$ openstack image set IMAGE
新增:
上传内核镜像
$ openstack image create "cirros-threepart-kernel" \
--disk-format aki --container-format aki --public \
--file ~/images/cirros-0.3.5-x86_64-kernel
上传RAW镜像
$ 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
注册raw镜像
$ openstack image create "cirros-raw" --disk-format raw \
--container-format bare --public \
--file ~/images/cirros-0.3.5-x86_64-disk.img
Nova ( 实例相关命令 )
实例的创建和删除
创建虚拟机
server create
(--image |--volume ) --flavor # 选择使用的镜像 | 硬盘 | 云主机类型
--security-group # 安全组
--key-name # 添加一个秘钥
--file <dst-path=src-path> # 将本地的<src-path>文件存储到虚拟机<dst-path>目录下。注射的文件收quota限制。
--user-data # 云主机注入文件信息
--availablilty-zone # 选择可用域
--block-device-mapping # 块设备映射。格式:<dev-name>=<id>:<type><size(GB)>:<delete-on-terminate>
--nic # 添加网卡信息。<net-id=net-uuid,net-name=network-name,port-id=port-uuid,v4-fixed-ip=ip-addr,v6- fixed-ip=ip-addr,tag=tag> net-id,net-name,port-id分别为网络ID、网络名字、端口ID,三者配置一个即 可, v4-fixed-ip: 配置ipv4固定IP v6-fixed-ip:配置ipv6固定IP
-- network --port # 与 --nic 用法相同,比其更简单一些。
--hint # 调用server group。在调度过程中,增加一个ServerGroupAffinity/Anti-affinity Filter
--config-drive | Ture # 使用指定的卷作为配置驱动器,或“True”使用临时驱动器。
--min —mix # 启动的虚拟机最大/最小的数量。
删除虚拟机
$ openstack server delete {{ 虚拟机名字 }}
$ openstack server force-delete {{ 虚拟机名字 }} # 强制删除虚拟机 无视状态
停止和启动实例
暂停和取消暂停实例
暂停
# 暂停
$ openstack server pause NAME
$ openstack server pause {{ 虚拟机名字 }}
取消暂停
$ openstack server unpause NAME
$ openstack server unpause {{ 虚拟机名字 }}
挂起和恢复实例
挂起
- 状态值:SUSPENDED
- 挂起,相当于物理机中的休眠,会将内存中的数据全部存放到对应的休眠文件中,占用的空间为内存大小,并且会对虚拟机执行关机操作。
- 休眠后的虚拟机不占任何CPU、内存
$ openstack server suspend NAME
$ openstack server suspend {{ 虚拟机名字 }}
取消挂起
$ openstack server resume NAME
$ openstack server resume {{ 虚拟机名字 }}
释放和取消释放实例
- 如果有不使用的云主机,但希望在云主机列表中仍然保留,此时需要用到释放功能。
释放实例
$ openstack server shelve SERVERNAME
$ openstack server shelve {{ 虚拟机名字 }}
取消释放实例
$ openstack server unshelve SERVERNAME
$ openstack server unshelve {{ 虚拟机名字 }}
删除以释放的实例
$ nova shelve-offload {{ 虚拟机名字 }}
实例的开关机
关机
$ openstack server stop NAME
$ openstack server stop {{ 虚拟机名字 }}
开机
$ openstack server stop NAME
$ openstack server start {{ 虚拟机名字 }}
重启
$ openstack server reboot NAME
$ openstack server reboot {{ 虚拟机名字 }}
恢复
$ openstack server rebuild Name IMAGE
调整实例大小规格
1.查看虚拟机信息
$ openstack server show {{ 虚拟机名字 }}
+-------------------------------------+----------------------------------------------------------+
| Field | Value |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-SRV-ATTR:host | controller1 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | controller1 |
| OS-EXT-SRV-ATTR:instance_name | instance-00000022 |
| OS-EXT-STS:power_state | Running |
| OS-EXT-STS:task_state | shelving_image_uploading |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2021-10-27T10:20:50.000000 |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | 外网=172.27.147.34 |
| config_drive | |
| created | 2021-10-27T08:37:41Z |
| flavor | 4core4096MB60G (61e4528c-ba6d-4734-a00b-68780c19bb0d) |
| hostId | 19bee44991253bf3b7fcb09656d66cf63818c9071c3df0d0db029207 |
| id | e4a97a17-801d-426b-aa3b-10333174c91c |
| image | win10 (7315b7f3-4c24-4377-82af-6e86c9851a84) |
| key_name | None |
| name | kkdehan |
| progress | 0 |
| project_id | 175baf0f677d46998cbabd60d2c50c48 |
| properties | |
| security_groups | name='default' |
| status | ACTIVE |
| updated | 2021-10-28T01:18:18Z |
| user_id | 1f2eb5a4695f4b8fa09c0fac213a7e18 |
| volumes_attached | |
+-------------------------------------+----------------------------------------------------------+
2.查看所有可用的主机规格
$ openstack flavor list
+--------------------------------------+-----------------+------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+-----------------+------+------+-----------+-------+-----------+
| 3f6968f8-656f-42f4-ab9b-5cb0267389e2 | 1core1024MB50G | 1024 | 50 | 0 | 1 | True |
| 61e4528c-ba6d-4734-a00b-68780c19bb0d | 4core4096MB60G | 4096 | 60 | 0 | 4 | True |
| b5eff4da-6a7a-4c00-863b-dc1f3f3e967d | 4core8192MB100G | 8192 | 100 | 0 | 4 | True |
+--------------------------------------+-----------------+------+------+-----------+-------+-----------+
3.调整虚拟机规格
$ openstack server resize --flavor {{ flavor_id }}
重建实例
# 重建
$ openstack server rebuild NAME IMAGE
$ openstack server rebuild {{ 虚拟机名字 }} --image {{ 镜像名字 }}
usage: openstack server rebuild [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--noindent] [--prefix PREFIX]
[--max-width <integer>] [--fit-width]
[--print-empty] [--image <image>]
[--password <password>] [--wait]
<server>
其他操作 ??
将用户数据和文件注入到实例
$ openstack server create --user-data FILE INSTANCE
# 使用示例
$ openstack server create --user-data userdata.txt --image cirros-qcow2 \
--flavor m1.tiny MyUserdataInstance2
使用ssh连接到实例
ip netns exec qdhcp-98f09f1e-64c4-4301-a897-5067ee6d544f \ssh -i test.pem cirros@10.0.0.4
Neutron
创建网络
$ openstack network create NETWORK_NAME
创建子网
$ openstack subnet create --subnet-pool SUBNET --network NETWORK SUBNET_NAME
$ openstack subnet create --subnet-pool 10.0.0.0/29 --network net1 subnet1