OpsWorks生命周期事件,我想了解configuration更好

在我承包公司之前,我已经成为了临时工的人,他发现了一个比我更多的人。 我正在通过我们目前的OpsWorks和我们的食谱设置。 我注意到我们的部署配方包括我们的configuration配方。 当我问到这个问题的时候,我被告知这是由于configuration被实际触发时的一些谜团造成的。

我一直在阅读这里的文档 ,这里是我的问题:

文档说OpsWorks在安装之后运行Deploy。 该文档还说,configuration在任何实例进入或离开在线状态后都会运行。 Configure然后在安装和部署之间运行,或者在部署之后运行,当一个新的实例被启动?

另外,标准做法是将部署配方中的configuration配方包含在部署单独执行的时候,还是应该使用不同的配方来处理基于部署的configuration更改?

Configure然后在安装和部署之间运行,或者在部署之后运行,当一个新的实例被启动?

通过我的OpsWorks日志,确实看起来configuration是在安装之后但部署之前运行的。 一般来说,你应该在每次启动实例的时候使用它(比如更新一个DNSlogging,例如,如果你不使用弹性IP)。 请记住,除非它是一个基于时间的实例,否则当一个实例停止后,OpsWorks不会自动运行一个新的部署(尽pipe它是一个新的实例)。

不同的配方可以处理基于部署的configuration更改?

对于应用程序特定的部署configuration(例如设置文件权限等),您应该使用Chef部署挂钩 。

真理的答案的第二部分是正确的,但第一部分需要澄清:

无论从冷启动(全新实例)还是从“停止”状态(之前启动的EBS支持的实例)启动实例,都会运行设置事件。 此设置事件包括指定为部署事件运行的配方,但不实际发出单独的部署事件。 因此,OpsWorks日志并不是运行部署配方的可靠指标。

configuration事件在堆栈中的实例进入或离开在线状态时运行,包括本实例本身。 此事件可用于更新跨实例依赖关系,例如将实例添加到(可能是HAProxy)负载均衡器实例,或将其添加到(可能是MongoDB)集群。

响应点击用户界面中的“部署”button,运行部署事件。

有关更多信息,请参阅AWS OpsWorks文档 。