Ubuntu 22.04 cloud-init配置失败:用户未创建且主机名不生效
问题分析与解决办法
核心问题:执行命令错误
cloud-init init仅属于cloud-init的初始化阶段,只负责加载数据源、初始化基础模块,并不会执行你配置的用户创建、主机名设置这类业务配置模块。要让你的cloud-config配置生效,需要运行完整的cloud-init执行流程:
- 先清理cloud-init的执行状态(因为cloud-init默认只在系统首次启动时运行一次):
sudo cloud-init clean - 再重新运行整个cloud-init流程:
sudo cloud-init init --local && sudo cloud-init init
或者直接单独触发配置模块的执行:
sudo cloud-init modules --mode=config
其他排查与优化点
- 状态残留清理:如果之前运行过cloud-init,
cloud-init clean可能无法彻底清除所有状态,可手动删除以下目录强制重置:sudo rm -rf /var/lib/cloud/instance /var/lib/cloud/instances /var/lib/cloud/sem - 脚本细节调整:你的脚本语法无明显错误,但两个小细节可规避潜在兼容性问题:
- 将
ssh_import_id: None改为ssh_import_id: [](空列表),部分cloud-init版本对None的解析存在兼容问题; - 确认
<ssh-pub-key>已替换为实际的SSH公钥内容(该点不影响用户创建,但会影响后续SSH登录)。
- 将
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

