本地模式下的 AWS 和 Chef:在新实例上使用保存的 AMI 实例中的节点缓存

AWS and Chef in local mode: use node cache from saved AMI instance on a new instance

我是 运行 厨师 13+ 在 AWS Ubuntu 在 local mode 通过 EC2 UserData。我有一个 common 角色,installs/configures 组织的许多常见事情。

本地模式下的 Chef 将在 repo checkout 中创建一个 nodes 目录。然后它会创建一个用于缓存的 private-IP.json 文件。

一切正常,我映像到 AMI 并向其添加用于 AutoScaling 的 LaunchConfig。

但是,在 AutoScaling 中,我必须删除那个 private-IP.json 文件,因为我得到了一个新的私有 IP。从而有效删除所有缓存和成像前所做的工作。

我想到的一种方法是重命名文件并使用一些 sed 魔法来替换 IP 和主机名,但我认为还有更好的基于 Chef 的方法吗?

对于 chef-solo 和本地模式,您通常会通过初始 JSON -j 或直接通过 -r 设置 运行 列表。