chef-infra - 在另一本食谱中重复使用一本食谱的输出
问题描述
考虑我有 2 个说明书,A 和 B,它们都是在 AWS EC2 实例上执行的运行列表的一部分。第一个食谱 A 执行一些代码并生成一个值并将其存储在 node.run_state['pass'] 变量中。我需要食谱 B 中的这个值,所以我可以直接在食谱 B 中重用这个值,因为它是在同一个节点上执行的。我无法在厨房测试场景,因为由于某些依赖关系,食谱 A 在厨房失败。我需要直接在 EC2 中尝试,但在尝试之前需要了解。新手厨师,请帮助理解。
解决方案
是的,您可以从不同的说明书中读取和写入节点属性和 run_state,并在它们之间共享一些信息。但是你需要记住:
- 食谱 A 必须在食谱 B 之前运行,要么在运行列表中,要么食谱 B 必须
include_recipe 'A'
在其配方中。 - Chef run 有两个阶段:编译和执行。首先编译阶段在两个说明书中执行,然后是执行阶段。因此,您必须确保在将 run_state 变量实际写入 A 之前,然后再将其读取到 B 中。
推荐阅读
- javascript - 输入 texbox 值在文本框 javascript 中不起作用
- python - 使用 Luhn 的模块我遇到了 IF 语句的问题
- python - 对 csv 文件中的列日期/时间数据进行排序
- react-native - React Native Orientation 不监听当前系统自动旋转状态
- c++ - 如何使用Qt删除word中的表格行
- javascript - 如何在 formData 中发送布尔值?
- amazon-lex - AWS Lex AlphaNumeric 内置插槽类型不接受字符串
- reactjs - 反应 TypeScript 错误。创建!没有重载匹配此调用。Overload 1 of 2, '(props: Readonly<{}>): 给出了以下错误
- python - 从 ROS 包导入时出现 ModuleNotFoundError
- matplotlib - 如何在 matplotlib 脚本中再添加一个绘图