使用Terraform与cloud-init创建DigitalOcean Droplet未自动更新问题
问题排查与解决方案
核心错误:cloud-init 配置字段命名错误
cloud-init 的包管理相关配置字段要求使用下划线作为分隔符,你当前配置里用的短横线格式会被系统直接忽略,导致更新、升级逻辑完全没有执行:
- 错误写法:
package-update、package-upgrade - 正确写法:
package_update、package_upgrade
修正后的 cloud-config 配置
#cloud-config package_update: true package_upgrade: true package_reboot_if_required: true packages: - sudo - git - htop - zsh - iptables - socat
附加说明
即便修正配置执行了升级,首次登录的Ubuntu欢迎页(MOTD)提示仍可能显示待更新,这是因为MOTD的统计数据是定时生成的缓存,并非实时结果。你可以登录后执行以下命令确认实际更新状态:
apt update && apt list --upgradable
如果确认更新已执行完成,后续MOTD刷新后就会显示正确的状态。
执行结果验证
新建Droplet后可以查看cloud-init运行日志确认升级步骤是否正常执行:
cat /var/log/cloud-init-output.log
内容的提问来源于stack exchange,提问作者John Nemo
相关产品推荐
相关产品推荐

