创建第一台实例:Horizon ↔ CLI

创建第一台实例:Horizon ↔ CLI

前置:DevStack 安装OpenStack 是什么 目标:用页面和命令各开一台虚机,搞清镜像 / Flavor / 网络 / 安全组 / 项目作用域。

引言

环境起来了,下一步是真正开出一台实例。 很多第一次失败不是「OpenStack 坏了」,而是:镜像架构不对、网络没选、安全组没放行、或者开在了错误的项目里。

本文按「准备材料 → Horizon 走一遍 → CLI 走一遍 → 核对状态」写,两边对照。


开始前:确认环境与作用域

bash 复制代码
# 进入 stack 用户后
source ~/devstack/openrc admin admin
# 或 demo 用户:source ~/devstack/openrc demo demo

openstack token issue
openstack project list
注意 说明
openrc 第二个参数是项目名 admin admin = 用户 admin、项目 admin
列表为空 先怀疑项目 / 用户是否搞错,再怀疑「资源没了」
Apple Silicon aarch64 镜像;见安装篇 cpu_mode = none

开实例需要的四样东西

材料 是什么 怎么查
镜像 Image 虚拟机磁盘模板 openstack image list
规格 Flavor vCPU / 内存 / 磁盘套餐 openstack flavor list
网络 Network 实例插哪张「虚拟网卡」 openstack network list
安全组 Security Group 防火墙规则集合 openstack security group list

可选但强烈建议:密钥对 Keypair(SSH 公钥)。Cirros 也可用控制台 + 默认密码试登录;正式镜像基本靠密钥。密钥对专篇见后续。

bash 复制代码
openstack image list
openstack flavor list
openstack network list
openstack security group list

DevStack 通常自带 Cirros 镜像和 private 一类租户网;Flavor 常见 m1.nano / m1.tiny(小规格适合学习机)。


路径 A:Horizon 创建

  1. 浏览器打开 http://<HOST_IP>/dashboard,用 admin / 你的 ADMIN_PASSWORD 登录。
  2. 右上角确认当前项目 (例如 admindemo)。
  3. 计算 → 实例 → 启动实例

建议按向导填:

步骤 建议
详情 实例名称如 web-01
从镜像启动;选匹配架构的 Cirros / Ubuntu
规格 m1.nanom1.tiny
网络 勾选一条可用的私有网络
安全组 先用 default(后面再改规则)
密钥对 有则选;没有可先跳过(Cirros + 控制台)

创建后到 实例 列表,状态应到 运行中 / ACTIVE。点实例名可看 IP、控制台。

打开控制台 ,Cirros 常见提示用户 cirros,密码看控制台输出(或文档默认 gocubsgo,以你镜像为准)。


路径 B:CLI 创建

先拿网络 ID(示例取第一条非 external 的网;以你环境为准):

bash 复制代码
source ~/devstack/openrc admin admin

# 看清镜像名(Apple Silicon 选 aarch64)
openstack image list -c Name -c Status

# 网络
openstack network list

NET_ID=$(openstack network list -f value -c ID -c Name | awk '/private/{print $1; exit}')
# 若没有叫 private 的网,手动:
# NET_ID=<你的网络 UUID>

openstack server create web-cli-01 \
  --flavor m1.nano \
  --image cirros-0.6.3-aarch64-disk \
  --nic net-id=$NET_ID \
  --wait

openstack server list
openstack server show web-cli-01

镜像名以 openstack image list 为准;x86 环境把镜像换成对应的 amd64 Cirros。


对照表:同一件事两种入口

动作 Horizon CLI
列表 计算 → 实例 openstack server list
创建 启动实例 openstack server create ...
详情 点实例名 openstack server show <名或ID>
控制台 控制台 Tab openstack console url show <名>(VNC/SPICE 链接)
删除 删除实例 openstack server delete <名>
bash 复制代码
openstack console url show web-cli-01
openstack server delete web-cli-01

项目作用域:为什么「我刚创建的看不见」

典型坑:

  1. Horizon 右上角项目是 demo,CLI 却 source openrc admin admin
  2. 管理员用了 --all-projects 才看得见,普通列表只显示当前项目。
bash 复制代码
# 只看当前项目
openstack server list

# 管理员看全部
openstack server list --all-projects

口诀:先确认「我是谁、在哪个项目」,再谈资源在不在。


创建失败时先看这三处

  1. 实例状态ERRORopenstack server show <名>,看 fault 字段。
  2. 计算服务openstack compute service listnova-compute 是否 up
  3. 架构 / CPU 模式 → Apple Silicon 必看安装篇热修复;镜像必须是 aarch64。
bash 复制代码
openstack server show web-cli-01 -c status -c fault -c addresses
openstack compute service list

更系统的排障见后续「实例 ERROR」专篇。


小结

  • 开实例 = 镜像 + Flavor + 网络(+ 安全组 / 密钥对)。
  • Horizon 与 CLI 是同一套 API;学习时两边都做一遍。
  • 列表为空优先查项目作用域
  • 下一篇起按组件拆开:Keystone → Glance → Nova → Neutron → Cinder。

下一篇:身份与权限:Keystone


参考

相关推荐
JudithHuang1 小时前
Apple Silicon 上 Cirros 控制台VNC打不了字
openstack
JudithHuang1 天前
OpenStack 是什么:一张图看懂在干什么
openstack
SeanQhl4 天前
基于华为云ARM架构ECS平台的OpenStack Wallaby All-in-one 完整部署指导
openstack·all-in-one
JudithHuang6 天前
从零安装 OpenStack:DevStack + Multipass 本地可复现指南
openstack
小马同学-7 天前
OpenStack 使用实战:Web 界面与 CLI 命令行实验
运维·云计算·openstack
小马同学-7 天前
OpenStack 镜像管理:Glance 镜像服务实验
运维·云计算·openstack
闲云自留地7 天前
Neutron 实战教程:物理 vs 虚拟网络,OVN 环境创建网络与安全策略
服务器·网络·openstack
Lysander.Jovian7 天前
OpenStack使用_网页版
php·openstack
闲云自留地8 天前
动手玩 Nova:Hypervisor、主机聚合、可用分区、虚拟机生命周期实操
运维·架构·openstack