我正在使用cloud-init来设置运行Ubuntu 14.04的AWS EC2机器. cloud-init的一个更有用的功能是write_files模块,它允许我在虚拟机初始化期间安装其他文件.
write_files有几个有用的功能,其中就是设置文件的所有者,如documented here.不幸的是,似乎我不能在Ubuntu 14.04中使用write_files的这个功能来将文件所有者设置为任何非系统帐户,因为添加用户的cloud-init模块 – 在write_files部分之后运行“users groups”.如果我将文件所有者设置为在users部分(或者在我的情况下是默认用户)中添加的用户,即使我通过uid执行此操作,也会出现如下错误:
StandardError:('write-files',OSError("Unknown user or group: 'getpwnam(): name not found: ubuntu'",))
这似乎编码到/etc/cloud/cloud.cfg中,其中包含以下部分:
cloud_init_modules: - migrator - seed_random - bootcmd - write-files - growpart - resizefs - set_hostname - update_hostname - update_etc_hosts - ca-certs - rsyslog - users-groups - ssh
我在互联网上看到了一些在cloud-init用户数据中设置cloud_init_modules的例子,但是如果我添加这样一个部分并对其进行排序,那么写文件就在用户组之下,它似乎没有任何影响.
除了放弃write_files并实现question #605670中记录的基于runcmd的变通方法,还有什么可以做的吗?
我打了同样的
bug #1231541. 由于我在OpenStack中遇到了问题,我使用了packer来重建映像并更改了cloud-init模块的顺序.之后一切都按预期工作.