cloud-init模块顺序错了,怎么修?

我正在使用cloud-init来设置运行Ubuntu 14.04的AWS EC2机器。 cloud-init更有用的function之一是write_files模块,它允许我在虚拟机的初始化期间安装额外的文件。

write_files有几个有用的function,其中包括设置文件的所有者,如文件所述 。 不幸的是,我似乎不能在Ubuntu 14.04中使用write_files这个特性来将文件所有者设置为任何非系统帐户,因为添加用户 – “用户组”的cloud-init模块正在执行write_files部分。 如果我将文件所有者设置为在users部分中添加的users (或者在我的情况下为默认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-filesusers-groups ,它似乎没有任何作用。

除了放弃write_files并实现基于runcmd的解决方法(如问题#605670中所述 ),还有什么可以做的吗?

我碰到了同样的错误#1231541 。 由于我在OpenStack中遇到了问题,我使用packer来重build映像并更改cloud-init模块的顺序。 之后一切按预期工作。