【发布时间】:2015-03-03 22:35:31
【问题描述】:
我是厨师新手。我想知道如何仅当我在食谱中进行任何更改(如食谱版本)并再次上传时才自动运行厨师客户端(这意味着对于一本食谱只运行一次厨师客户端)。我知道以特定时间间隔运行 chef-client 的命令。但我不需要它。因为即使我没有改变任何东西,它也拿了食谱并运行它。我需要自动运行厨师客户端,仅在食谱中进行更改。有可能吗?
【问题讨论】:
标签: chef-infra
我是厨师新手。我想知道如何仅当我在食谱中进行任何更改(如食谱版本)并再次上传时才自动运行厨师客户端(这意味着对于一本食谱只运行一次厨师客户端)。我知道以特定时间间隔运行 chef-client 的命令。但我不需要它。因为即使我没有改变任何东西,它也拿了食谱并运行它。我需要自动运行厨师客户端,仅在食谱中进行更改。有可能吗?
【问题讨论】:
标签: chef-infra
我认为你走错了路(至少不是厨师要走的路)
chef的主要思想是使用幂等资源,这意味着你可以定期运行chef,这将确保系统处于cookbooks食谱想要的状态。
如果没有原因,它也不会重新启动已经启动的服务(例如,没有配置更改触发重新启动通知)。
这背后的想法是确保您不会在服务器上进行手动配置更改,这些更改会随着时间的推移而被遗忘。
您应该专注于您的食谱,以确保它们是幂等的,并尽可能避免使用临时厨师运行。
如果你仍然想要这个,命令行是chef-client -o 'cookbook::recipe' 来覆盖运行列表并只运行一本食谱的一个食谱。如果配方是 default.rb,你可以在命令行中省略它。
【讨论】: