cloud-init 模块顺序错误,如何修复?

cloud-init 模块顺序错误,如何修复?

我正在使用 cloud-init 设置运行 Ubuntu 14.04 的 AWS EC2 机器。cloud-init 的一个更有用的功能是write_files允许我在虚拟机初始化期间安装其他文件的模块。

write_files有几个有用的功能,其中包括设置文件的所有者,如记录在这里。不幸的是,我似乎无法write_files在 Ubuntu 14.04 中使用此功能将文件所有者设置为任何非系统帐户,因为添加用户的 cloud-init 模块 -“用户组”正在该部分之后运行write_files。如果我将文件所有者设置为该部分中添加的用户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_modules在 cloud-init 用户数据中进行设置的例子,但是如果我添加这样的部分并按照write-files下的顺序排列users-groups,似乎没有任何效果。

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

答案1

我打了同样的错误 #1231541。由于我在 OpenStack 中遇到了问题,因此我使用打包程序重建映像并更改 cloud-init 模块的顺序。之后一切都按预期运行。

相关内容