我想了解 dos cloud-init、curtin 和临时映像如何协同工作。我正在尝试写出它们在 MAAS 架构中的作用。
Cloud-init 有两个配置源:
云提供商提供的元数据:此阶段发生在映像安装之前。curtin 会去往此处吗?curtin 中定义的配置会在此阶段进行?
用户提供的配置在机器部署后运行。这里是用户部署机器时可以运行的文件,对吗?
短暂的图像
临时图像,使用 cloud-init 发现节点的硬件(例如,CPU 数量、RAM、磁盘等)并将该信息发送到 MAAS 区域控制器。
因此临时图像也使用 cloud-init。
科廷
Curtin 在操作系统 (OS) 映像安装过程中应用了自定义。系统参数(例如内核类型、磁盘分区、网络配置、交换内存配置等)可以在预置文件中预先配置,该文件将在安装过程中自动配置映像
我想要了解的是这些事件的时间顺序,什么叫什么以及何时叫什么。
以及它们之间有什么区别?
谢谢您的帮助
答案1
- 用户通过告诉 MaaS a) 使用哪个裸机(又名目标裸机)b) 想要部署到哪个映像和内核来触发 MaaS 进行部署。
- MaaS 控制目标裸机(通常通过 BMC)进行电源重置
- 通过 MaaS 提供的 PXE 服务进行目标裸机网络启动
- 目标裸机启动到 MaaS 提供的临时映像(通过之前的 PXE 服务)
- 当之前的启动过程完成时,系统中的 cloud-init(由目标裸机上的临时映像启动)被触发与 MaaS 对话。
- 由于之前cloud-init触发的查询,MaaS为目标裸机提供了更多信息和数据。
- cloud-init 根据上一步提供的信息触发 curtin 写入数据。例如,curtin 知道应该将目标映像写入目标裸机的哪个磁盘。
- curtin完成将目标镜像写入目标裸机的目标磁盘。
- cloud-init获取curtin写任务的返回状态,并将执行状态和日志上报给MaaS。
- MaaS 确认了 cloud-init 报告的内容。如果一切正常,cloud-init 将重新启动目标裸机,MaaS 将目标裸机(节点)的状态从“正在部署”更改为“已部署”,因此 MaaS 将禁用此部署节点的 PXE 服务。