如何在Chef引导期间更新服务器包,但在后续Chef运行期间不更新?

时间:2016-10-12 16:31:00

标签: chef chef-recipe configuration-management

仅在节点被引导时在Chef中运行特定命令的最佳方法是什么,但在后续Chef运行期间不是这样?例如,如果我想在首次引导Ubuntu节点时运行apt-get upgrade,那么最简单的方法是什么?

一个解决方案可能是在任务完成后写入文件,并运行任务only_if该文件不存在 - 但这有缺点为已有此配方的现有节点运行任务。唯一的选择是否会涉及覆盖默认的bootstrap模板?

1 个答案:

答案 0 :(得分:1)

通常,您可能会使用文件idempotence,但您也可以检查节点属性。对于这种情况,您可能希望touch所有现有节点上的跟踪文件knife ssh '*:*' 'touch /whatever'