---
url: /courses/cloud-platform-build-management/lab-10/index.md
---
# 实训 10：OpenStack 服务映射与实例工作流

所有操作在 WSL 的 `~/cloud-course/lab-10` 中完成，不需要 OpenStack 账号，不创建云资源。

## 一、实训目标

* 把核心服务与职责一一对应；
* 沿 `BUILD` 的任务状态找到负责服务；
* 写出证据已经证明什么、还不能证明什么；
* 使用脚本检查答题表结构，再完成人工复核。

## 二、安全边界

* 不在 2 核 2 GiB ECS 上安装 OpenStack。
* 不使用网络上来源不明的“一键安装脚本”。
* 不填写真实令牌、账号、公网地址或云平台凭据。
* 没有真实平台证据时，明确写“教学案例”，不编造命令输出。

## 三、准备答题目录

```bash
[WSL] cd ~/cloud-course/lab-10
```

用途：进入本课目录。预期 `pwd` 的末尾为 `/cloud-course/lab-10`。

```bash
[WSL] mkdir -p answers
```

用途：创建答题目录。`-p` 允许目录已存在时不报错。

```bash
[WSL] cp starter/service-map.tsv answers/service-map.tsv
```

用途：复制服务职责模板。保留表头和服务名，填写职责、创建实例时的作用与证据。

```bash
[WSL] cp starter/instance-workflow.tsv answers/instance-workflow.tsv
```

用途：复制工作流模板。每行对应一个状态或任务阶段。

截图 1：`pwd`、两条模板文件和 `answers/` 中的副本。

## 四、完成服务职责表

用编辑器填写 `answers/service-map.tsv`。必须保留：

* Keystone
* Nova
* Placement
* Glance
* Neutron
* Cinder
* Horizon

每项都要填写“负责什么”“不负责什么”“创建实例时提供什么”。例如，Horizon 负责用户界面，但不直接在虚拟化层创建实例。

截图 2：至少显示四项已完成的服务映射。

## 五、完成实例工作流表

填写 `answers/instance-workflow.tsv` 中的：

* `request`
* `scheduling`
* `networking`
* `block_device_mapping`
* `spawning`
* `ACTIVE`
* `ERROR`

每行至少说明主要服务、现有证据、下一条检查和不能直接得出的结论。

截图 3：`scheduling`、`networking` 和 `spawning` 三行的完整判断。

## 六、完成案例分析

把下列案例写入 Word：

```txt
实例状态：BUILD
任务状态：networking
已知：镜像存在，规格配额足够
未知：网络端口是否成功创建
```

回答：

1. 当前请求最可能停在哪个职责范围？
2. 下一条证据应查看什么？
3. 为什么不能直接判断 Nova Compute 已损坏？
4. 如果后来变为 `ACTIVE`，还要怎样验证 SSH？

截图 4：案例的“证据—证明范围—下一条检查”表。

## 七、自动与人工验收

```bash
[WSL] bash verify.sh
```

用途：检查答题文件、表头、必需服务、必需阶段和空白占位符。预期最后显示“结构检查通过”。

人工验收：

* Horizon 没有被写成底层计算服务；
* Placement 与 Nova Compute 的职责没有混在一起；
* `ACTIVE` 没有被解释为 SSH 一定成功；
* 每个结论都引用状态或官方资料；
* 没有虚构平台输出。

截图 5：自动检查通过和一项人工复核结论。

## 八、清理与提交

本实训没有后台服务和远程资源。只删除编辑器产生的明确临时文件，保留 `answers/` 与 Word 报告。

提交文件名：

```txt
班级_学号_姓名_第10次课_OpenStack架构分析报告.docx
```

只提交一个 Word 到智慧职教“第10次课”。
