我在Amazon OpsWorks中部署了一个堆栈,并且我广泛使用自定义cookbook来部署我的应用程序。我的堆栈中有许多基于负载的实例(它们仅在需要时启动)。
每当我对自定义cookbook进行更改时,我都必须在任何正在运行的实例上手动更新cookbook(通过导航到Deployments> Run Command)。问题是任何未引导的实例都不会更新,并且它们不会在下次引导时自动更新。
我已经发现我可以删除然后重新创建所有基于负载的实例,强制它们在下次需要时完全重新设置,但必须有更好的方法来部署更新的自定义cookbook。
如何强制我的离线基于负载的实例在下次启动时更新他们的烹饪书(即使每次启动都没问题)?
答案 0 :(得分:2)
From this AWS employee response on an Amazon Opsworks forum:
没有办法将更新推送到已停止的实例。我们正在考虑如何实现这一目标。目前,如果您创建新的时间或基于负载的实例,它将获得您的更新。
所以看来,现在,做你想做的唯一方法就是删除并重新创建每个基于负载的实例。这应该确保他们第一次启动时,他们会收到您自定义食谱的新版本。
答案 1 :(得分:1)
您可以从Stack,Run Command窗口运行Update Custom Cookbooks命令。
答案 2 :(得分:0)
根据opsworks文件:
手动更新自定义食谱
使用修改后的食谱更新您的存储库。 AWS OpsWorks使用您最初安装cookbook时提供的缓存URL,因此不应更改cookbook根文件名,存储库位置和访问权限。
对于Amazon S3或HTTP存储库,请将原始.zip文件替换为具有相同名称的新.zip文件。
对于Git或Subversion存储库,编辑堆栈设置以将“分支/修订”字段更改为新版本。
在堆栈页面上,单击“运行”命令,然后选择“更新自定义烹饪书”命令。