仅在节点被引导时在Chef中运行特定命令的最佳方法是什么,但在后续Chef运行期间不是这样?例如,如果我想在首次引导Ubuntu节点时运行apt-get upgrade
,那么最简单的方法是什么?
一个解决方案可能是在任务完成后写入文件,并运行任务only_if该文件不存在 - 但这有缺点为已有此配方的现有节点运行任务。唯一的选择是否会涉及覆盖默认的bootstrap模板?
答案 0 :(得分:1)
通常,您可能会使用文件idempotence,但您也可以检查节点属性。对于这种情况,您可能希望touch
所有现有节点上的跟踪文件knife ssh '*:*' 'touch /whatever'
。