2016-10-12 23 views
0

シェフで特定のコマンドを実行する最善の方法は、ノードがブートストラップされている場合のみですが、その後のシェフの実行中ではありません。たとえば、Ubuntuノードが最初にブートストラップされたときにapt-get upgradeを実行したければ、それを達成する最も簡単な方法は何ですか?シェフのブートストラップ中にサーバパッケージを更新する方法はありますが、その後のシェフの実行中は更新できません。

解決策の1つは、タスクが完了した後にファイルに書き込み、そのファイルが存在しない場合にのみタスクを実行することかもしれませんが、これは既にこのレシピを持つ既存ノードのタスクを実行することの欠点です。唯一の選択肢は、デフォルトのブートストラップテンプレートを上書きすることですか?

答えて

1

通常、ファイルの冪等を使用しますが、ノード属性もチェックできます。この場合、特に、すべての既存ノードのトラッキングファイルtouchknife ssh '*:*' 'touch /whatever'が必要になります。

関連する問題