openstack常用命令

各个组件命令总结

概览:

  • openstack domain list 查看目前的域
  • openstack domain create –description “An Example Domain” example 创建新域
  • openstack project create –domain default –description “Demo Project” myproject 创建普通项目

零、创建 service 项目、user 角色、域,default 域默认已经存在

1
2
3
4
5
# 查看目前的域
openstack domain list
# 创建新域 example,(仅用于测试,可以不创建)。
openstack domain create --description "An Example Domain" example
openstack domain list

创建普通项目 myproject(仅用于测试,可以不创建)。

一个租户在 OpenStack 里就是一个项目,创建用户时必须先要有租户(项目),同时还需要一个能分配给该用户的角色,这样创建的用户才有意义。

创建 service 项目(租户),service 项目将作为 OpenStack 的系统项目,所有系统服务都要加入到 service 项目中。


一、项目与角色

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 创建普通项目
openstack project create --domain default --description "Demo Project" myproject
# 创建普通用户 myuser(仅用于测试,可以不创建),密码为 myuser。
openstack user create --domain default --password-prompt myuser
# 创建角色(仅用于测试,可以不创建)
openstack role create myrole
# 将 myrole 角色添加到 myproject 项目和 myuser 用户(仅用于测试,可以不创建)。
openstack role add --project myproject --user myuser myrole

# 实际创建用户
openstack user create --domain default --password SKYLINE_PASS skyline
# 加入admin权限
openstack role add --project service --user skyline admin
 
# 查看角色权限
openstack role list
# 查看用户
openstack user list
# 查看目前的项目
openstack project list
# 查看当前认证用户的 Token 和相关认证信息
openstack token issue
# 列出 keystone 服务中的 API 端点以验证与 Identity 服务的连接。
openstack catalog list
# 查看镜像
openstack image list
# 查看实例类型
openstack flavor list

📌 openstack token issue 作用说明

当你运行 openstack token issue 时,它会向 Keystone 认证服务发送请求,然后返回一个包含用户认证详情的响应,主要用于验证当前环境变量(如用户名、密码、项目等)是否配置正确**。

二、查看服务

1
2
3
4
5
6
7
8
9
10
11
12
# 查看所有组件
openstack service list
# 查看计算服务组件
openstack compute service list
# 查看已注册的计算节点
openstack compute service list --service nova-compute
# 查看某一个服务
openstack volume service list


# 等同nova命令
nova service-list | grep nova-compute

三、查看实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看实例列表
openstack server list
# 查看某一个实例的详细信息
openstack server show d032241e-0bed-412

# 查看实例操作记录
openstack server event list 93a08381-b1be-4cec-9284-e48ece60cabb
# nova命令操作方式(可以看到requestid)
nova instance-action-list 93a08381-b1be-4cec-9284-e48ece60cabb

# 登录实例
virsh console instance-00000001

# 手动删除实例
说明:使用 virsh console 登录实例后如何退出实例:直接按 Ctrl + ] 组合键
# 关闭实例
openstack server stop vm01
# 启动实例
openstack server start vm01
# 删除所选的实例
openstack server delete vm01 (或-openstack server delete <虚拟机的ID>)

四、cinder常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 创建存储卷
openstack volume create --size 1 volume01
# 说明:创建一个卷名为 volume01 大小为 1GB 的卷
# 查看存储卷列表
openstack volume list
# 为存储卷创建快照
openstack volume snapshot create --volume volume01 snap-volume01
# 说明:为卷 volume01 创建一个名为 snap-volume01 的快照
# 查看快照列表
openstack volume snapshot list
# 挂载卷到实例
nova volume-attach vm01 ead55f47-a0f3-4eb9-854e-9dff638ff534 /dev/vdb
# 说明:挂载卷时,要指定卷 id,此处要指定卷 volume01 的 id,然后是连接到实例 vm01 的/dev/vdb 上
# 虚拟机卸载卷
nova volume-detach vm01 ead55f47-a0f3-4eb9-854e-9dff638ff534
# 说明:卸载卷时,请先在操作系统层停止正在使用要卸载的应用,umount 掉,然后再执行 volume-detach
# 删除所选存储卷
openstack volume snapshot delete snap-volume01
openstack volume delete volume01
# 说明:删除卷要具备 2 个条件,第一个是卷状态是可用(available)或其他而非使用中;第二个就是要删除的卷上没有快照,如果有要先删除快照。
openstack volume show volume01
# 禁用存储节点
openstack volume service set --disable compute02@lvm cinder-volume
# 启用存储节点
openstack volume service set --enable compute02@lvm cinder-volume


# 根据云主机id查询云硬盘
virsh domblklist 17dc79da-2c5c-4691-1855-154618622fa7
# 查看是否到期
cinder get-qos 17dc79da-2c5c-4691-1855-154618622fa7

五、nova操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看云主机
nova list
# 详细查看云主机信息
nova show 6ae61de8-b0bd-4567-bf5d-2a151d853fce
# 配置状态为active
nova reset-state --active fdfjfdjgbjgf-fdfkdkvn-fdkfv
# 执行强制删除
nova force-delete fdfjfdjgbjgf-fdfkdkvn-fdkfv

# 查看服务
nova service-list | grep nova-compute

# nova命令查看实例操作记录
nova instance-action-list 93a08381-b1be-4cec-9284-e48ece60cabb

六、 hypervisor使用命令查看资源利用率


1
2
3
4
5
6
# 列出所有计算节点
openstack hypervisor list
# 查看单个计算节点的资源使用情况
openstack hypervisor show compute1
# 查看所有计算节点的资源汇总情况
openstack hypervisor stats show

七、glance镜像操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 查看日志拿到镜像uuid(3.0)
grep ctyunos-cii-25.07 /var/lib/docker/volumes/glance-api-6516030_kolla_logs/_data/glance/glance.log
# 通过镜像名称过滤
glance image-list |grep ctyunos-cii-25.07
# 通过日志中的req id过滤
glance task-list |grep 7c91577eec464f4fa960be908ee372ff
--------------------------------------------------------------------
| 8a2dcafb-0fb6-494d-b4c7-98ccac7e8cd4 | import     | failure | 7c91577eec464f4fa960be908ee372ff |
| 0e6538d1-c781-4461-9bf2-c6359325b407 | import     | failure | 7c91577eec464f4fa960be908ee372ff |
| 753be1a9-2528-4b1f-8815-35bdb47892fc | import     | failure | 7c91577eec464f4fa960be908ee372ff |
| 17265974-5cac-4b18-8372-90ff2140a8e4 | import     | failure | 7c91577eec464f4fa960be908ee372ff |
| 2a7eb98c-7594-4960-9d9f-0325a5345cd4 | import     | failure | 7c91577eec464f4fa960be908ee372ff |
| a1645767-807d-4e8b-b1df-6291de2d200b | import     | failure | 7c91577eec464f4fa960be908ee372ff |
| cadc9b91-1646-4525-bdfa-12fbeba73863 | import     | failure | 7c91577eec464f4fa960be908ee372ff |
# 根据回显id过滤查看镜像状态(可以看到报错503)升级研发(镜像id)
glance task-show 8a2dcafb-0fb6-494d-b4c7-98ccac7e8cd4
# 查看镜像详情
glance image-show c83208ae-8dee-49ff-a1f3-3ba292067fea



# 查看镜像
openstack image list
# 查看镜像详情
openstack image show c83208ae-8dee-49ff-a1f3-3ba292067fea

八、热迁移与冷迁移(3.0)

热迁移

1
2
3
4
5
6
7
8
# 查看虚拟机列表信息
nova list
# 查看虚拟机详细信息
nova show demo
# 迁移到compute2
nova live-migration 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad compute2
# 查看最近五次的迁移记录
nova migration-list --instance-uuid 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad   --limit 5

新版本

1
2
3
4
# f7e9d5dc-0b9c-4d75-bbee-65b3b9b7c2b6实例热迁移到compute2
openstack server migrate --live compute2 --live-migration f7e9d5dc-0b9c-4d75-bbee-65b3b9b7c2b6 --shared-migration
# 查看迁移记录
openstack server migration list --server f7e9d5dc-0b9c-4d75-bbee-65b3b9b7c2b6 --limit 5

冷迁移(必须要先关闭实例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 冷迁移实例到 compute2(如果支持指定 host)
nova migrate --host compute2 <server-id>
# 查看状态,变成 VERIFY_RESIZE
openstack server show <server-id>
# 确认变更
nova resize-confirm <server-id>
# 或取消迁移
nova resize-revert <server-id>

# 关闭虚拟机
nova stop 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad
# 查看是否成功关闭
nova list
nova show 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad
# 开始进行冷迁移 将虚拟机 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad 迁移到compute1
nova migrate --host compute1 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad
# 最后确认迁移变更操作 输入如下命令
nova resize-confirm 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad
# 最后进行开机确认业务即可
nova start 7d1f1d0f-3afd-45fe-8c7a-07cca49067ad

新版本

1
2
3
4
5
6
7
8
9
10
11
12
13
# 自动选择节点
openstack server migrate <server-id>
# 手动选择迁移节点
openstack server migrate --host <target-hostname> <server-id>
# 确认迁移
openstack server resize confirm <server-id>

# 迁移到compute2
openstack server migrate --host compute2 ccef2616-2578-4a08-b2b8-e034a9fc1b8e
# 等待迁移完成(用以下命令查看状态,直到状态变为VERIFY_RESIZE)
openstack server show ccef2616-2578-4a08-b2b8-e034a9fc1b8e
# 确认迁移
openstack server resize confirm ccef2616-2578-4a08-b2b8-e034a9fc1b8e

九、移域

1
2
3
4
5
6
7
8
9
10

![](https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/25/8/image_922caf1409b32e8703bb535c64785ef7.png)# 主机聚合3是ceshi1
# 列出所有主机聚合及其相关信息(如 ID、名称、可用域等)
nova aggregate-list
# 查看主机聚合ceshi1`中有哪些计算节点
nova aggregate-show 3
# 从指定的聚合中移除某个计算节点(主机)
nova aggregate-remove-host 3 compute1
# 将compute1再次加入主机聚合3
nova aggregate-add-host 3 compute1

十、flavor实例类型操作

1
2
3
4
5
6
7
8
# 创建实例类型
openstack flavor create --disk 1 --ram 512 --vcpu 1 --id 99999 test0
# 查看实例类型
openstack flavor list
# 查看实例类型详情
openstack flavor show 48ddfdf5-c00d-4681-bcc7-2f6b5d16dd6e
# 删除实例类型
openstack flavor delete 99999

十一、安全组操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建安全组
openstack security group create my-security-group --description "My-Security-Group"
# 查看安全组id
openstack security group list
# 添加所有icmp规则入口
openstack security group rule create --protocol icmp --ingress 89a9d87c-03ae-4315-854f-a1c817a2979d
# 添加所有icmp规则出口
openstack security group rule create --protocol icmp --egress 89a9d87c-03ae-4315-854f-a1c817a2979d
# 添加所有udp规则入口
openstack security group rule create --protocol udp --ingress 89a9d87c-03ae-4315-854f-a1c817a2979d
# 添加所有udp规则出口
openstack security group rule create --protocol udp --egress 89a9d87c-03ae-4315-854f-a1c817a2979d
# 添加所有tcp规则入口
openstack security group rule create --protocol tcp --ingress 89a9d87c-03ae-4315-854f-a1c817a2979d
# 添加所有tcp规则出口
openstack security group rule create --protocol tcp --egress 89a9d87c-03ae-4315-854f-a1c817a2979d
# 放通入方向22端口
openstack security group rule create --ingress --protocol tcp --dst-port 22:22 89a9d87c-03ae-4315-854f-a1c817a2979d
# 放通10.0.0.30入方向80端口
openstack security group rule create --ingress --protocol tcp --dst-port 80:80 --remote-ip 10.0.0.30/32 89a9d87c-03ae-4315-854f-a1c817a2979d
# 查看安全组规则
openstack security group rule list 89a9d87c-03ae-4315-854f-a1c817a2979d