AWS OpsWorks – 如何从命令行针对特定图层执行自定义配方?

我想通过CLI单击堆栈,只select特定层中的实例并运行“执行食谱”命令(或者触发“configuration生命周期”步骤)。

我需要以编程方式执行此操作,有一个选项可以在堆栈级别执行此操作,但这并没有帮助,

试图避免像下面这样的事情,我可能会最终将图层成员拉到一个数组中,然后按照下面的build议单独触发它们。 不是很好,因为我将不得不添加堆栈和图层信息的静态信息。

if deploy[:application_type] != 'php' Chef::Log.debug("Skipping mod_php5_apache2::php application #{application} as it is not an PHP app") next 

结束

您必须分两步进行操作,首先使用describe-instances通过设置--layer-id参数获取特定图层中的实例 ,然后使用create-deployment在这些实例上运行命令,方法是设置--instance-ids参数。

另一种select是让你的自定义食谱如果没有在正确的图层上执行,或者应用types错误,就不会做任何事情。 这种技术在默认食谱中经常使用,这里是一个跳过部署的例子 ,如果它不是一个PHP应用程序。 然后你可以在所有的实例上运行你的配方,但它只会在特定的层次上做一些事情。