我正在使用 cloud-init 在 EC2 上设置 Ubuntu 虚拟机。我最近需要支持使用 Ubuntu 12.04(旧 LTS)映像的部署,但是 Ubuntu 12.04 中的旧 cloud-init 0.6.3 不支持write_files
我需要的模块。
我目前正在使用runcmd
和 bash 破解它,但这并不是处理向系统添加文件的正确方法。
有更好的解决方法的想法吗?
我正在使用 cloud-init 在 EC2 上设置 Ubuntu 虚拟机。我最近需要支持使用 Ubuntu 12.04(旧 LTS)映像的部署,但是 Ubuntu 12.04 中的旧 cloud-init 0.6.3 不支持write_files
我需要的模块。
我目前正在使用runcmd
和 bash 破解它,但这并不是处理向系统添加文件的正确方法。
有更好的解决方法的想法吗?
我仍然没有一个优雅的解决方案,但我的 hack 使用
runcmd
和 Ruby(可能会或可能不会安装在您的基础映像上,因此您可能需要将其列出packages
)如下所示:此 hack 也适用于相对较新的 Amazon Linux 实例,这些实例具有最近的 cloud-init,但由于某种原因
write_files
禁用了该模块。该代码假定用户数据是纯文本
#cloud-config
或 gzip 压缩。如果使用更复杂的东西,例如多部分或包含,那么您可能希望从中读取解析的数据/var/lib/cloud/instance/user-data.txt.i
,但这需要 MIME 解析——我将把它作为练习留给读者:-)。