我已经成为临时运营人员,直到我签约的公司找到一个比我懂得多得多的人。我正在检查我们当前的 OpsWorks 设置和我们的配方。我注意到我们的部署配方包括我们的配置配方。当我问起这件事时,我被告知这是因为配置实际触发的时间存在一些谜团。
我一直在读文档在这里以下是我的问题:
文档中说 OpsWorks 在 Setup 之后运行 Deploy。文档还说 Configure 在任何实例进入或离开在线状态后运行。Configure 是在 Setup 和 Deploy 之间运行,还是在 Deploy 之后(新实例启动时)运行?
此外,当部署自行执行时,在部署配方中包含一个配置配方是否是标准做法,或者我们应该使用不同的配方来处理基于部署的配置更改?
答案1
那么配置是在安装和部署之间运行,还是在部署之后运行,即在启动新实例时运行?
根据我的 OpsWorks 日志,配置确实似乎是在设置之后但在部署之前运行的。通常,您应该将其用于每次启动实例时都需要执行的操作(例如,如果您不使用弹性 IP,则更新 DNS 记录)。请记住,除非它是基于时间的实例,否则 OpsWorks 不会在实例停止后重新上线时自动运行新的部署(但如果它是新实例,则会运行)。
是否有不同的方案可以根据部署来处理配置更改?
对于特定于应用程序的部署配置(例如设置文件权限等),您应该使用Chef 部署钩子。
答案2
thexacre 答案的第二部分是正确的,但第一部分需要一些澄清:
设置事件在实例启动时运行,无论是从冷启动(全新实例)还是从“停止”状态(之前启动的 EBS 支持的实例)。此设置事件包括为部署事件指定运行的配方但实际上并未发出单独的部署事件。因此,OpsWorks 日志并不是部署配方运行时间的可靠指标。
当堆栈中的实例(包括此实例本身)进入或离开联机状态时,将运行 configure 事件。此事件可用于更新跨实例依赖关系,例如将实例添加到(可能是 HAProxy)负载均衡器实例,或将其添加到(可能是 MongoDB)集群。
当点击 UI 中的“部署”按钮时,部署事件就会运行。
看AWS OpsWorks 文档了解更多信息。