我正在使用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-files
在users-groups
,它似乎没有任何作用。
除了放弃write_files
并实现基于runcmd
的解决方法(如问题#605670中所述 ),还有什么可以做的吗?
我碰到了同样的错误#1231541 。 由于我在OpenStack中遇到了问题,我使用packer来重build映像并更改cloud-init模块的顺序。 之后一切按预期工作。