どちらも実行可能です。
あなたが言及したあなたのオプションは次のとおりです。
1)
スクリプトをテンプレートに変換すると、レシピはテンプレートを特定のパスにレンダリングしてからcronジョブを登録するだけです。
これは簡単に始めることができます(スクリプトに実際の変更はなく、スクリプトが確実に存在するようにします)
シェフがすべてのレシピを毎回実行することを忘れないでください。jtimbermanが言ったように、「リソースがレシピと一致しない場合にのみリソースを変更します」。したがって、レシピは、変更されたときに新しいテンプレートを上書きする必要があります。
または2)
スクリプトをリソースやプロバイダーなどに分割し、Chefに1時間ごとに実行させます。
このオプションは、シェフに似ており、おそらくより信頼性が高く、スケーラブルです。特に、より多くのインフラストラクチャをシェフの管理下に置く場合はそうです。
chefクライアントがデーモン化されている場合、またはchef-soloがcronで実行されている場合は、うまく機能します。
この場合、「user」、「group」、「file」などのリソースを使用してレシピを設定できます(sshキーをコピーするため)。詳細については、こちらをご覧ください:http ://wiki.opscode.com/display/chef/Resources#Resources-File
次に、「データバッグ」(jsonデータ)を使用してユーザーの詳細を保存し、それに基づいてユーザーをインストールするのが最善の策です。これは、このレシピでopscodeが行ったこととまったく同じです(インスピレーションについては./recipe/sysadmins.rbを参照してください):
https ://github.com/opscode/cookbooks/tree/master/users
chef-server(またはopscodeプラットフォーム)を使用していることに注意してください。chef-soloを使用している場合は、'search(:users、' groups:sysadmin')'を、chef-soloが取得できる場所(ダウンロード可能、またはシェフ内)にある独自のデータバッグファイルに置き換える必要があります。 -レポ)。