GuestAgent
- Launchpad 条目: NovaSpec:resize-servers
- 创建: 2010-09-01
- 贡献者: JesseAndrews, ChrisBehrens
目录
总结
该功能将允许从计算节点控制器与 Guest Agent 进行通信。 这允许添加云控制器 API,用于用户控制的密码重置、设置 IP 等 - 从而支持 Windows。
设计峰会笔记
有关此主题的实时笔记记录在: http://etherpad.openstack.org/GuestAgent
Rackspace Guest Agent 的当前架构
App -> Host (XenStore) <-> Guest Agent
有关 XenStore 通信的更多信息,请参阅 GuestAgentXenStoreCommunication wiki 条目。 包含有关用于 XenStore 通信的“协议”的详细信息。 请求和响应都以 JSON 编码。
请求的格式是
"{'name': '<command_name>', 'value': '<command_args>'}"
响应是
"{'returncode': '<response_code>', 'message': '<response_string>'}"
Guest Agent 上的当前命令 (Linux/Windows)
| 描述 | 命令 | 命令参数 | 响应代码 |
| 从 Agent 获取版本信息 | "version" | "agent" 或 "xentools" 或 "updater" | "0" |
| 获取 Agent 功能列表 | "features" | "" | "0" |
| 执行 Diffie-Hellman 密钥交换 | "keyinit" | 本地公钥 | "D0" |
| (重)置 root 密码 | "password" | 加密密码 | "0" |
| 配置网络 | "resetnetwork" | "" | "0" |
| 更新 Agent | "agentupdate" | "URL,MD5SUM" | "0" |
| 注入文件 | "injectfile" | “file_path,file_contents”的 base64 编码 | "0" |
| Guest 是否准备就绪/可用? | |||
| 更新 XenTools (仅 Windows) | |||
| KMS 许可 (仅 Windows) |
注意事项
1. 当客户端/客户终止 Guest Agent 或禁用启动时会发生什么? 2. Agent 应该与超visor 无关/支持许多超visor
- Launchpad 条目: NovaSpec:resize-servers
- 创建: 2010-09-01
- 贡献者: JesseAndrews
总结
该功能将允许从计算节点控制器与 Guest Agent 进行通信。 这允许添加云控制器 API,用于用户控制的密码重置、设置 IP 等 - 从而支持 Windows。
发布说明
已向 OpenStack 计算主机 Agent 代码添加支持,以支持与 Guest Agent 的通信。
原理
Windows 实例无法像 Linux 机器一样配置。 支持它们以及提供更好用户体验的工具(例如密码重置)可以提供 rackspace/slicehost 的同等功能。
用户故事
用户忘记了密码。 与其必须使用救援模式来重置密码,不如用户可以使用 API 重置密码。
前提条件
- Unix 和 Windows 的 Guest Agent 代码都可用,并根据 Apache 2.0 许可。 它们可在 https://launchpad.net/openstack-guest-agents 上找到
设计
为了与 Guest Agent 通信,我们使用 XenStore 在 XenServer 中。
实现
API 添加
- 重置密码
消息使用 xenstore-write 写入 XenStore,每个实例通过 /local/domain/(domid)/data/guest/(message_uuid)