同じレシピを異なる属性で 2 回実行しようとしています。実行リストで指定する方法はありますか? 例:
"myRecipe":{
"run-list": "recipe[test], recipe[test]"
}
最初のものは flag=false にする必要があり、2 番目のものは flag=true で実行する必要があります。
同じレシピを異なる属性で 2 回実行しようとしています。実行リストで指定する方法はありますか? 例:
"myRecipe":{
"run-list": "recipe[test], recipe[test]"
}
最初のものは flag=false にする必要があり、2 番目のものは flag=true で実行する必要があります。
私は以前に同様の質問に答えました:短いバージョンは、あなたの考えを変える必要があるということです. ソフトウェアをインストールして構成する必要がある場合は、ソフトウェアを 2 つに分割することを検討することをお勧めします。
より長い回答: opscode コミュニティ サイトのクックブックをご覧になりましたか? 多くのパターンが繰り返され、他の人が公開した作業は確かに役立つ可能性があります...特に、シェフを始めたばかりのように見える場合.
いいえ、それは不可能です。レシピにそのようなロジックを実装し、たとえば配列を反復処理する必要があります。
私の意見では、 https://github.com/daptiv/visualstudioの VisualStudio クックブックなど、Chef クックブックのいくつかは非常によく書かれています。
このレシピを 2 回実行する必要がある場合があります。別のソース コードをコンパイルするには、マシンに Visual Studio 2012 および 2013 をインストールする必要があります。これらのバージョンの Visual Studio には、XML ファイルを指定するサイレント インストール プロセスがまったく同じであるため、2012 と 2013 で簡単に機能させることができました。
プライベート Visual Studio 2012 ISO を指すように、VisualStudio クックブックの属性をオーバーライドする Chef ロール ファイルを作成することができました。それは簡単でした。次に、別の Visual Studio 2013 ISO を指すように 2013 をインストールするための別の Chef ロール ファイルを作成しました。Chef はレシピを 2 回実行しないため、Visual Studio 2013 のみをインストールすることになります。:(
「visualstudio」クックブックのローカル コピーを 2 つ作成する必要があるとしたら、最悪です。
リソースも使用してみました:
define :installx, :cmd=>'good', :upgrade=>true do
Chef::Log.info('cmd = #{params[:cmd]}')
if params[:upgrade]
Chef::Log.info('upgrading...')
else
Chef::Log.info('installing...')
end
end
installx resource
installx "name" do
cmd "install 1"
upgrade true
end
「エラー: 定義するリソースが見つかりません」というエラーが表示されます。これは、公式ドキュメントからほとんど外れています。何が原因なのかわかる方がいましたら教えてください。