用途:编写、校验和排错云镜像首次启动配置。cloud-init user-data/cloud-config 跨 Ubuntu 与 Fedora/RHEL 云镜像通用;操作系统安装自动化不通用——Ubuntu 用 autoinstall(subiquity),RHEL 系(Fedora、RHEL、CentOS Stream、Rocky、Alma、Oracle)用 Kickstart(Anaconda)。
主要能力:编写并验证 user-data、autoinstall 配置与 Kickstart 文件;检查 YAML 结构与 cloud-init 语义;从 /var/log/cloud-init.log、cloud-init-output.log 及 /var/log/installer/ 下日志提取失败阶段与原因;确认已创建用户、密钥登录、包版本、服务与网络状态。适用云镜像首启、ISO/bare-metal 安装、以及需在部署前验证多机配置的场景。
使用方式:先用 yamllint 与 cloud-init schema --config-file user-data.yaml(可加 --strict)校验,再在一次性实例上启动验证,例如 lxc launch ubuntu:24.04 test --config=user.user-data="$(cat user-data.yaml)",随后 cloud-init status --long 检查。调试可用 cloud-init analyze show/blame/dump、cloud-init query --all、grep 日志错误;重跑需 sudo cloud-init clean --logs --seeds 后重启。可选脚本 sudo install-skills-bin linux-cloud-init 会安装 sk-cloud-init-validate 与 sk-cloud-init-debug 包装命令,非必需。
限制:不负责已上线主机的日常配置变更(交给 linux-config-management)或交互式安装后配置(linux-server-provisioning),也不负责云厂商建 VM API。user-data 不要放明文密钥,cloud-init 会缓存在 /var/lib/cloud/。runcmd 需用绝对路径且属最后手段;模块每实例仅运行一次;autoinstall 与运行时 user-data 模式不同,不可混用。未启动验证的配置不视为已验证。