Skip to content

OpenStack 命令行参考

OpenStack 提供了强大的命令行工具 openstack,用于管理云平台中的所有资源。本章节详细介绍 openstack 命令的语法格式、参数选项和经典案例,帮助您高效管理 OpenStack 云环境。

openstack server - 虚拟机实例管理

openstack server 命令用于管理虚拟机实例的完整生命周期,包括创建、查看、启停、迁移、快照等操作。

语法格式

bash
openstack server <子命> [参数]

子命令

子命令功能说明
list列出虚拟机实例
create创建虚拟机实例
show查看虚拟机实例详情
delete删除虚拟机实例
stop关闭虚拟机实例
start启动虚拟机实例
pause暂停虚拟机实例
unpause恢复暂停的虚拟机实例
suspend挂起虚拟机实例
resume恢复挂起的虚拟机实例
reboot重启虚拟机实例
rebuild重建虚拟机实例
resize调整虚拟机规格
resize confirm确认调整规格
resize revert撤销调整规格
migrate冷迁移虚拟机
live migrate热迁移虚拟机
shelve搁置虚拟机实例
unshelve恢复搁置的虚拟机实例
rescue救援模式启动
unrescue退出救援模式
lock锁定虚拟机(防止误操作)
unlock解锁虚拟机
evacuate疏散虚拟机(宿主机故障时)
add floating ip绑定浮动 IP
remove floating ip解绑浮动 IP
add security group添加安全组
remove security group移除安全组
image create基于虚拟机创建镜像(快照)
volume attach挂载云硬盘
volume detach卸载云硬盘
dump导出虚拟机信息

server create 主要参数

参数说明示例
--image <镜像>指定虚拟机使用的镜像名称或ID--image centos-7
--flavor <规格>指定虚拟机规格名称或ID--flavor m1.medium
--network <网络>指定虚拟机连接的网络--network private-net
--key-name <密钥>指定 SSH 密钥对名称--key-name mykey
--security-group <安全组>指定安全组(可重复使用)--security-group default
--availability-zone <可用区>指定可用区--availability-zone az1
--nic <网络属性>指定网络接口属性--nic net-id=xxx,v4-fixed-ip=10.0.0.100
--block-device <卷配置>指定块设备配置--block-device source=image,id=xxx,size=50,dest=volume,bootindex=0
--user-data <文件>指定 cloud-init 用户数据脚本--user-data init.sh
--hint <提示>指定调度提示(如亲和性)--hint group=xxx
--property <key=value>指定自定义属性--property role=web
--min <数量>最少创建实例数--min 2
--max <数量>最多创建实例数--max 5
--volume <卷>从卷创建实例--volume my-volume
--boot-volume <卷>指定引导卷--boot-volume os-vol
--config-drive <true/false>是否使用 config drive--config-drive true
--description <描述>实例描述信息--description "Web Server"
--tags <标签>添加标签--tags env=prod,app=web

server list 参数

参数说明
--all-projects显示所有项目(管理员用)
--project <项目>按项目过滤
--host <宿主机>按宿主机过滤
--status <状态>按状态过滤(ACTIVE/ERROR/SHUTOFF等)
--name <名称>按名称模糊匹配
--limit <数量>限制返回数量
--marker <ID>分页查询标记
--long显示更多字段

经典案例

bash
# 列出所有虚拟机
openstack server list

# 列出所有项目中的所有虚拟机(管理员)
openstack server list --all-projects

# 创建一台虚拟机
openstack server create --image centos-7 --flavor m1.medium \
  --network private-net --key-name mykey --security-group default \
  --user-data init.sh my-web-server

# 查看虚拟机详情
openstack server show my-web-server

# 停止虚拟机
openstack server stop my-web-server

# 启动虚拟机
openstack server start my-web-server

# 软重启虚拟机
openstack server reboot my-web-server

# 硬重启虚拟机
openstack server reboot --hard my-web-server

# 基于虚拟机创建快照镜像
openstack server image create --name web-server-snapshot my-web-server

# 调整虚拟机规格
openstack server resize --flavor m1.large my-web-server
openstack server resize confirm my-web-server       # 确认调整
openstack server resize revert my-web-server        # 撤销调整

# 绑定浮动 IP
openstack server add floating ip my-web-server 203.0.113.10

# 解绑浮动 IP
openstack server remove floating ip my-web-server 203.0.113.10

# 锁定虚拟机(防止误删除)
openstack server lock my-web-server

# 锁定后无法删除,需先解锁
openstack server unlock my-web-server

# 搁置虚拟机(释放资源但保留磁盘)
openstack server shelve my-web-server

# 恢复搁置的虚拟机
openstack server unshelve my-web-server

# 热迁移虚拟机到其他宿主机
openstack server live migrate --host compute-02 my-web-server

# 故障疏散(宿主机宕机时)
openstack server evacuate --host compute-03 my-db-server

# 创建虚拟机并指定固定 IP
openstack server create --nic net-id=xxx,v4-fixed-ip=10.0.0.100 \
  --image ubuntu-22 --flavor m1.small fixed-ip-vm

openstack image - 镜像管理

管理虚拟机镜像,包括上传、下载、删除、属性设置等操作。

语法格式

bash
openstack image <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出所有可用镜像--public, --private, --shared, --community, --long, --name, --status, --limit, --marker
create创建新镜像--file <文件>, --disk-format <格式>, --container-format <格式>, --public/--private, --property <key=value>
show查看镜像详情镜像名称或ID
delete删除镜像镜像名称或ID(可多个)
set修改镜像属性--name, --property <key=value>, --public/--private, --protected/--unprotected, --architecture, --min-disk, --min-ram
unset移除镜像属性--property <key>
save下载镜像到本地--file <输出文件>
add project共享镜像给指定项目<镜像> <项目>
remove project取消镜像共享<镜像> <项目>

image create 参数

参数说明示例
--file <文件>镜像文件路径--file ./centos-7.qcow2
--disk-format <格式>磁盘格式qcow2, raw, vhd, vmdk, vdi, iso
--container-format <格式>容器格式bare, ovf, aki, ari, ami
--min-disk <GB>最小磁盘需求--min-disk 20
--min-ram <MB>最小内存需求--min-ram 1024
--public设置镜像为公共(所有项目可用)
--private设置镜像为私有(仅本项目可用)
--protected设置镜像为受保护(禁止删除)
--property <key=value>自定义属性--property os_type=linux --property hypervisor_type=kvm
--tag <标签>添加标签--tag prod-ready

经典案例

bash
# 列出所有镜像
openstack image list

# 列出所有公共镜像(含详细字段)
openstack image list --public --long

# 上传本地镜像到 Glance
openstack image create --file centos-7.qcow2 --disk-format qcow2 \
  --container-format bare --public --property os_type=linux \
  --min-disk 20 --min-ram 2048 CentOS-7.9

# 上传 ISO 镜像
openstack image create --file ubuntu-22.04.iso --disk-format iso \
  --container-format bare ubuntu-22.04-iso

# 查看镜像详情
openstack image show CentOS-7.9

# 下载镜像到本地
openstack image save --file ./backup-centos.qcow2 CentOS-7.9

# 设置镜像为私有
openstack image set --private CentOS-7.9

# 设置镜像为受保护(防误删)
openstack image set --protected CentOS-7.9

# 删除镜像
openstack image delete CentOS-7.9

# 共享镜像给其他项目
openstack image add project CentOS-7.9 project-b

# 取消共享
openstack image remove project CentOS-7.9 project-b

openstack flavor - 虚拟机规格管理

管理虚拟机规格(flavor),定义虚拟机的 CPU、内存、磁盘等资源配置。

语法格式

bash
openstack flavor <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出所有规格--public, --private, --all, --long
create创建规格--vcpus <数量>, --ram <MB>, --disk <GB>, --id <ID>, --ephemeral <GB>, --swap <MB>, --rxtx-factor <因子>, --public/--private
show查看规格详情规格名称或ID
delete删除规格规格名称或ID
set修改规格属性--name, --property <key=value>, --public/--private
unset移除规格属性--property <key>

flavor create 参数

参数说明示例
--vcpus <数量>vCPU 核数--vcpus 4
--ram <MB>内存大小(单位 MB)--ram 8192
--disk <GB>根磁盘大小(单位 GB,0 表示不创建本地磁盘)--disk 50
--ephemeral <GB>临时磁盘大小--ephemeral 20
--swap <MB>交换分区大小--swap 1024
--rxtx-factor <因子>网络 TX/RX 因子--rxtx-factor 1.0
--public设置为公共规格
--private设置为私有规格
--property <key=value>额外属性(用于调度匹配)--property hw:cpu_policy=dedicated

经典案例

bash
# 列出所有规格
openstack flavor list

# 创建基础规格
openstack flavor create --vcpus 2 --ram 4096 --disk 40 m1.small

# 创建有临时盘的规格
openstack flavor create --vcpus 4 --ram 8192 --disk 50 --ephemeral 100 m1.ephemeral

# 创建 CPU 绑定规格(性能敏感型)
openstack flavor create --vcpus 8 --ram 32768 --disk 100 \
  --property hw:cpu_policy=dedicated \
  --property hw:mem_page_size=large m1.cpu-dedicated

# 创建 GPU 规格
openstack flavor create --vcpus 8 --ram 65536 --disk 200 \
  --property pci_passthrough:alias="gpu:1" gpu.large

# 查看规格详情
openstack flavor show m1.small

# 设置规格为私有
openstack flavor set --private m1.small

# 删除规格
openstack flavor delete m1.small

openstack volume - 云硬盘管理

管理块存储卷(Cinder),包括创建、挂载、快照、扩容等操作。

语法格式

bash
openstack volume <子命> [参数]

子命令

子命令功能说明
list列出云硬盘
create创建云硬盘
show查看云硬盘详情
delete删除云硬盘
set修改云硬盘属性
unset移除云硬盘属性
extend扩容云硬盘
upload to image将云硬盘上传为镜像
migrate迁移云硬盘
type list列出云硬盘类型
type create创建云硬盘类型
type delete删除云硬盘类型
type set修改云硬盘类型
snapshot list列出云硬盘快照
snapshot create创建云硬盘快照
snapshot show查看云硬盘快照详情
snapshot delete删除云硬盘快照

volume create 参数

参数说明示例
--size <GB>卷大小(单位 GB)--size 100
--type <类型>卷类型--type SSD, --type HDD
--image <镜像>从镜像创建卷--image centos-7
--snapshot <快照>从快照创建卷--snapshot vol-snap-01
--source <卷>从已有卷创建(克隆)--source data-vol-01
--availability-zone <可用区>指定可用区--availability-zone az1
--bootable标记为可引导卷
--read-only设置为只读
--multi-attach允许同时挂载给多个虚拟机
--property <key=value>自定义属性--property env=production
--description <描述>描述信息--description "Database data volume"

经典案例

bash
# 列出所有云硬盘
openstack volume list

# 列出所有云硬盘(含详细信息)
openstack volume list --long

# 创建 100GB 的 SSD 云硬盘
openstack volume create --size 100 --type SSD --description "Data volume" data-vol

# 从镜像创建可引导卷
openstack volume create --size 50 --image centos-7 --bootable boot-vol

# 挂载云硬盘到虚拟机
openstack server add volume my-web-server data-vol
# 或使用 openstack volume attach 命令
openstack volume attach --server my-web-server --device /dev/vdb data-vol

# 卸载云硬盘
openstack server remove volume my-web-server data-vol

# 扩容云硬盘(从 100G 扩展到 200G)
openstack volume extend --size 200 data-vol

# 创建云硬盘快照
openstack volume snapshot create --volume data-vol --description "Before upgrade" data-vol-snap

# 从快照恢复(创建新卷)
openstack volume create --snapshot data-vol-snap --size 100 data-vol-restored

# 将云硬盘上传为镜像
openstack volume upload to image --force True --disk-format qcow2 data-vol my-image-from-vol

# 查看卷类型
openstack volume type list

# 查看云硬盘详情
openstack volume show data-vol

openstack network - 网络管理

管理虚拟网络资源,包括网络、子网、路由器、端口等。

语法格式

bash
openstack network <子命> [参数]
openstack subnet <子命> [参数]
openstack router <子命> [参数]
openstack port <子命> [参数]

network 子命令和参数

子命令功能说明常用参数
list列出网络--external, --internal, --project, --name, --long
create创建网络--provider-network-type <vlan/vxlan/flat/gre>, --provider-physical-network <物理网络>, --provider-segment <分段ID>, --external/--internal, --shared, --project
show查看网络详情网络名称或ID
delete删除网络网络名称或ID
set修改网络属性--name, --shared/--no-share, --external/--internal, --enable/--disable, --description

subnet 子命令和参数

子命令功能说明常用参数
list列出子网--long, --project, --name
create创建子网--network <网络>, --subnet-range <CIDR>, --ip-version <4/6>, --gateway <网关>, --no-gateway, --dhcp/--no-dhcp, --allocation-pool <start=,end=>, --dns-nameserver <DNS>
show查看子网详情子网名称或ID
delete删除子网子网名称或ID
set修改子网属性--name, --dhcp/--no-dhcp, --gateway, --allocation-pool, --dns-nameserver

router 子命令和参数

子命令功能说明常用参数
list列出路由器--long, --name, --project
create创建路由器--project, --enable/--disable, --ha/--no-ha, --description
show查看路由器详情路由器名称或ID
delete删除路由器路由器名称或ID
set修改路由器--name, --description
add subnet添加子网接口路由器 <子网>
remove subnet移除子网接口路由器 <子网>
add port添加端口接口路由器 <端口>
remove port移除端口接口路由器 <端口>
set gateway设置外部网关路由器 <外部网络>
unset gateway移除外部网关路由器

port 子命令和参数

子命令功能说明常用参数
list列出端口--router, --device-owner, --device-id, --fixed-ip, --mac-address, --long
create创建端口--network <网络>, --fixed-ip <IP>, --mac-address <MAC>, --vnic-type, --binding-profile, --security-group <安全组>
show查看端口详情端口名称或ID
delete删除端口端口名称或ID
set修改端口属性--name, --security-group, --no-security-group, --enable/--disable, --vnic-type

经典案例

bash
# 创建外部(provider)网络
openstack network create --external --provider-network-type flat \
  --provider-physical-network physnet1 public-network

# 创建内部租户网络(VXLAN)
openstack network create --internal --provider-network-type vxlan private-net

# 创建子网
openstack subnet create --network private-net --subnet-range 192.168.100.0/24 \
  --gateway 192.168.100.1 --dhcp --allocation-pool start=192.168.100.10,end=192.168.100.200 \
  --dns-nameserver 8.8.8.8 --dns-nameserver 114.114.114.114 private-subnet

# 创建路由器并连接内外网
openstack router create my-router
openstack router set --external-gateway public-network my-router
openstack router add subnet my-router private-subnet

# 查看网络列表
openstack network list
openstack network list --external --long

# 查看子网列表
openstack subnet list

# 查看路由器列表
openstack router list

# 创建指定 IP 的端口(用于固定 IP)
openstack port create --network private-net --fixed-ip subnet=private-subnet,ip-address=192.168.100.50 fixed-port

# 列出所有端口
openstack port list --long

# 删除网络(需先删除子网和端口)
openstack port list --network private-net   # 查看关联端口
openstack port delete <port-id>             # 删除端口
openstack router remove subnet my-router private-subnet   # 移除路由器接口
openstack subnet delete private-subnet      # 删除子网
openstack network delete private-net        # 删除网络

openstack floating ip - 浮动 IP 管理

管理浮动 IP 地址,实现从外部网络访问虚拟机。

语法格式

bash
openstack floating ip <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出浮动 IP--network <网络>, --project <项目>, --status <状态>, --long
create创建浮动 IP--network <外部网络>, --subnet <子网>, --project <项目>, --floating-ip-address <IP>, --description <描述>
show查看浮动 IP 详情浮动 IP 地址或ID
delete删除浮动 IP浮动 IP 地址或ID
set修改浮动 IP--port <端口>, --description
unset移除浮动 IP 属性--port(解绑)

经典案例

bash
# 列出所有浮动 IP
openstack floating ip list

# 创建一个浮动 IP(从外部网络池分配)
openstack floating ip create --description "Web server public IP" public-network

# 创建指定地址的浮动 IP(管理员用)
openstack floating ip create --floating-ip-address 203.0.113.10 public-network

# 绑定浮动 IP 到虚拟机
openstack server add floating ip my-web-server 203.0.113.10

# 解绑浮动 IP
openstack server remove floating ip my-web-server 203.0.113.10

# 查看浮动 IP 详情
openstack floating ip show 203.0.113.10

# 删除浮动 IP
openstack floating ip delete 203.0.113.10

openstack security group - 安全组管理

管理安全组和防火墙规则,控制虚拟机的网络访问。

语法格式

bash
openstack security group <子命> [参数]
openstack security group rule <子命> [参数]

security group 子命令

子命令功能说明
list列出安全组
create创建安全组
show查看安全组详情
delete删除安全组
set修改安全组属性

security group rule 子命令

子命令功能说明
list列出安全组规则
create创建安全组规则
delete删除安全组规则

security group rule create 参数

参数说明示例
--proto <协议>IP 协议类型tcp, udp, icmp, any
--dst-port <端口>目标端口或端口范围22, 80, 443, 3000:3100
--src-ip <CIDR>源 IP 地址范围0.0.0.0/0, 10.0.0.0/24
--src-port <端口>源端口(通常不指定)
--remote-group <安全组>远程安全组(允许组内互访)web-sg
--ethertype <类型>以太网类型IPv4, IPv6
--ingress入站规则(默认)
--egress出站规则

经典案例

bash
# 创建安全组
openstack security group create --description "Web server security group" web-sg

# 允许 SSH 访问(入站)
openstack security group rule create --proto tcp --dst-port 22 --src-ip 0.0.0.0/0 web-sg

# 允许 HTTP/HTTPS 访问
openstack security group rule create --proto tcp --dst-port 80 --src-ip 0.0.0.0/0 web-sg
openstack security group rule create --proto tcp --dst-port 443 --src-ip 0.0.0.0/0 web-sg

# 允许组内实例互访(常用于集群)
openstack security group rule create --proto any --remote-group web-sg web-sg

# 允许特定来源 IP 访问数据库端口
openstack security group rule create --proto tcp --dst-port 3306 --src-ip 192.168.100.0/24 db-sg

# 允许全部 ICMP(Ping)
openstack security group rule create --proto icmp --src-ip 0.0.0.0/0 default

# 查看安全组规则
openstack security group rule list web-sg

# 将安全组应用于虚拟机
openstack server add security group my-web-server web-sg
openstack server remove security group my-web-server web-sg

# 查看安全组
openstack security group list
openstack security group show web-sg

openstack keypair - 密钥对管理

管理 SSH 密钥对,用于虚拟机实例的 SSH 免密登录。

语法格式

bash
openstack keypair <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出密钥对
create创建密钥对--public-key <文件>(导入公钥),不指定则生成新密钥对
show查看密钥对信息密钥名称
delete删除密钥对密钥名称

经典案例

bash
# 列出所有密钥对
openstack keypair list

# 创建并下载密钥对(不指定公钥则会生成新的)
openstack keypair create --public-key ~/.ssh/id_rsa.pub my-key

# 查看密钥对信息
openstack keypair show my-key

# 创建虚拟机时指定密钥对
openstack server create --image centos-7 --flavor m1.small \
  --key-name my-key --network private-net my-server

# 删除密钥对
openstack keypair delete my-key

openstack project / user / role - 租户与权限管理

管理 OpenStack 的多租户体系,包括项目、用户、角色和权限。

语法格式

bash
openstack project <子命> [参数]
openstack user <子命> [参数]
openstack role <子命> [参数]

project 子命令

子命令功能说明常用参数
list列出所有项目--domain, --user, --long, --enabled/--disabled
create创建项目--domain <域>, --description <描述>, --enable/--disable, --property <key=value>
show查看项目详情项目名称或ID
delete删除项目项目名称或ID
set修改项目--name, --description, --enable/--disable, --property

user 子命令

子命令功能说明常用参数
list列出用户--project, --domain, --long, --enabled/--disabled
create创建用户--project <项目>, --password <密码>, --email <邮箱>, --enable/--disable, --domain, --description
show查看用户详情用户名或ID
delete删除用户用户名或ID
set修改用户--name, --password, --email, --enable/--disable

role 子命令

子命令功能说明常用参数
list列出角色
create创建角色
show查看角色详情角色名称或ID
delete删除角色角色名称或ID
add为用户授予角色--user <用户> --project <项目> <角色>
remove移除用户角色--user <用户> --project <项目> <角色>

经典案例

bash
# 列出所有项目
openstack project list

# 创建项目
openstack project create --domain default --description "Production environment" production

# 启用/禁用项目
openstack project set --disable production
openstack project set --enable production

# 创建用户
openstack user create --domain default --project production --password 'SecurePass123' --email admin@example.com admin-user

# 创建角色
openstack role create admin

# 为用户授予项目的 admin 角色
openstack role add --user admin-user --project production admin

# 查看用户在项目中的角色
openstack role list --user admin-user --project production

# 移除角色
openstack role remove --user admin-user --project production admin

# 列出用户
openstack user list --project production

# 查看项目详情
openstack project show production

openstack compute service - 计算服务管理

管理 Nova 计算服务,查看服务状态、启用/禁用服务。

语法格式

bash
openstack compute service <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出所有计算服务--service <服务名>, --host <宿主机>, --long
set设置计算服务--enable/--disable, --disable-reason <原因>

经典案例

bash
# 列出所有计算服务及其状态
openstack compute service list

# 禁用计算节点(维护前操作)
openstack compute service set --disable --disable-reason "Hardware maintenance" compute-01 nova-compute

# 启用计算节点(维护完成)
openstack compute service set --enable compute-01 nova-compute

# 禁用调度器
openstack compute service set --disable compute-01 nova-scheduler

openstack hypervisor - 宿主机管理

查看计算节点的硬件资源和运行状态。

语法格式

bash
openstack hypervisor <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出所有宿主机--long, --matching <主机名>
show查看宿主机详情宿主机名称或ID
stats show显示宿主机资源统计(总量/已用/剩余)

经典案例

bash
# 列出所有宿主机
openstack hypervisor list

# 查看单个宿主机详细信息
openstack hypervisor show compute-01

# 查看所有宿主机的资源统计
openstack hypervisor stats show

# 输出示例:
# +----------------------+-------+
# | Field                | Value |
# +----------------------+-------+
# | count                | 5     |
# | current_workload     | 0     |
# | disk_available_least | 2048  |
# | free_disk_gb         | 500   |
# | free_ram_mb          | 65536 |
# | local_gb             | 2000  |
# | local_gb_used        | 1500  |
# | memory_mb            | 262144|
# | memory_mb_used       | 196608|
# | running_vms          | 24    |
# | vcpus                | 80    |
# | vcpus_used           | 56    |
# +----------------------+-------+

openstack quota - 配额管理

管理项目和项目的资源配额,限制资源使用上限。

语法格式

bash
openstack quota <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出所有项目的配额
show查看指定项目的配额<项目>
set设置项目的配额--cores <数量>, --ram <MB>, --instances <数量>, --volumes <数量>, --gigabytes <GB>, --snapshots <数量>, --networks <数量>, --subnets <数量>, --routers <数量>, --floating-ips <数量>, --secgroups <数量>, --secgroup-rules <数量>, --ports <数量>, --backups <数量>, --backup-gigabytes <GB>

经典案例

bash
# 查看项目的配额
openstack quota show production

# 设置项目的计算资源配额
openstack quota set --cores 100 --ram 262144 --instances 50 production

# 设置项目的存储资源配额
openstack quota set --volumes 20 --gigabytes 1000 --snapshots 20 production

# 设置项目的网络资源配额
openstack quota set --networks 10 --subnets 10 --routers 5 --floating-ips 20 \
  --secgroups 10 --secgroup-rules 100 production

# 列出所有项目的配额
openstack quota list

openstack stack - 编排管理

使用 Heat 编排服务管理基础设施堆栈,实现自动化部署。

语法格式

bash
openstack stack <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出所有堆栈--name, --status, --tags, --long, --limit, --marker
create创建堆栈-t <模板文件>, --parameter <key=value>, --environment <环境文件>, --enable-rollback/--no-rollback, --timeout <分钟>, --tags <标签>, --dry-run
show查看堆栈详情堆栈名称或ID
delete删除堆栈堆栈名称或ID
update更新堆栈-t <模板>, --parameter, --environment, --rollback/--no-rollback
resource list列出堆栈资源<堆栈>
resource show查看资源详情<堆栈> <资源名称>
output list列出堆栈输出<堆栈>
output show查看输出详情<堆栈> <输出名称>
event list列出堆栈事件<堆栈>, --resource <资源>, --action <动作>, --long
template show获取堆栈模板<堆栈>

经典案例

bash
# 根据模板创建堆栈
openstack stack create -t ./heat-web-cluster.yaml \
  --parameter image=centos-7 --parameter flavor=m1.medium \
  --parameter network=private-net --parameter key_name=my-key \
  --enable-rollback --timeout 60 web-cluster

# 列出所有堆栈
openstack stack list

# 查看堆栈详情
openstack stack show web-cluster

# 查看堆栈资源
openstack stack resource list web-cluster
openstack stack resource show web-cluster web_server

# 查看堆栈事件(排查失败原因)
openstack stack event list web-cluster --long

# 查看堆栈输出
openstack stack output list web-cluster
openstack stack output show web-cluster website_url

# 更新堆栈
openstack stack update -t ./heat-web-cluster-v2.yaml \
  --parameter instance_count=5 web-cluster

# 删除堆栈
openstack stack delete web-cluster

openstack endpoint - 服务端点管理

管理 Keystone 服务目录中的服务端点(Endpoint)。

语法格式

bash
openstack endpoint <子命> [参数]

子命令和参数

子命令功能说明常用参数
list列出服务端点--service <服务>, --interface <接口>, --region <区域>
create创建服务端点--service <服务>, --interface <接口>, --url <URL>, --region <区域>
delete删除服务端点端点ID
show查看端点详情端点ID

经典案例

bash
# 列出所有端点
openstack endpoint list

# 列出特定服务的端点
openstack endpoint list --service nova

# 创建服务端点
openstack endpoint create --service nova --interface public \
  --url https://nova.example.com:8774/v2.1 --region RegionOne

# 删除服务端点
openstack endpoint delete <endpoint-id>

全局命令行选项

以下选项适用于所有 openstack 子命令。

选项说明示例
--os-cloud <云名称>指定 clouds.yaml 中的云配置名称--os-cloud mycloud
--os-auth-url <URL>指定 Keystone 认证地址--os-auth-url https://keystone.example.com:5000/v3
--os-username <用户名>指定用户名--os-username admin
--os-password <密码>指定密码--os-password xxxxxx
--os-project-name <项目>指定项目名--os-project-name admin
--os-user-domain-name <域>指定用户域--os-user-domain-name Default
--os-project-domain-name <域>指定项目域--os-project-domain-name Default
--insecure跳过 SSL 证书验证
--debug开启调试模式(显示详细 API 调用)
--quiet静默模式,减少输出
--version显示版本号
-h / --help显示帮助信息

注意事项

  1. OpenStack 命令支持分页查询,使用 --limit--marker 参数遍历大量资源
  2. 管理员可以通过 --all-projects 查看所有项目的资源
  3. 大多数命令支持 -f json-f yaml 格式化输出,方便脚本处理
  4. 资源名称和 ID 都可以作为参数使用,但 ID 是唯一的,名称可能重复
  5. 生产环境中建议使用 clouds.yaml 配置文件管理认证信息,避免在命令行暴露密码