有没有办法在Chef Data Bag中更改值时执行某些操作。
让我们说数据包看起来像这样。
{
"data": {
"version": "1.0.12-SNAPSHOT"
}
}
并且它会更改为
{
"data": {
"version": "1.0.13"
}
}
有没有办法让Chef资源“订阅”此更改或此更改为“通知”更改资源?
答案 0 :(得分:2)
对此的常见解决方案是不订阅数据包中的更改,但要明智地处理更改的结果。
您似乎在描述要安装的软件版本。因此,一个明智的方法是在每次厨师运行期间执行这些步骤:
这样,您不需要任何实际的发布/订阅架构,只需在常规厨师运行期间处理所有内容。
事实上,这种一般方法是厨师工作中的所有提供者:如果它与配方定义的预期状态不同,检查当前状态并进行调整。