別のレシピにレシピを含める場合、どのように属性を変更するかを指定します。シェフが含まれているレシピは属性をオーバーライドします
これは、レシピが以前にrun_listで実行されたときのレシピの属性ではなく、デフォルトの属性を使用しているように見えます。
別のレシピにレシピを含める場合、どのように属性を変更するかを指定します。シェフが含まれているレシピは属性をオーバーライドします
これは、レシピが以前にrun_listで実行されたときのレシピの属性ではなく、デフォルトの属性を使用しているように見えます。
ラッパー料理ブックを作成するときは、属性を上書きするのが一般的です。
と仮定、あなたはこのようなmy_web_server/recipes/default.rb
でmy_web_server料理を持っている:
include_recipe "apache2"
そして、あなたはapache2のクックブックからdefault_site_enabled属性を上書きしたいと思います。 は、その後、あなたのファイルmy_web_server/attributes/default.rb
は、次のようになります。
override['apache']['default_site_enabled'] = true
などmy_web_server/metadata.rb
に依存関係を指定することを忘れないでください:私は、多くの場合、オーバーライド属性の役割を使用し
depends "apache2"
。
私は2つの料理本を持っていると言います.1つは私のsweet_rails_app用、もう1つはapacheとpassengerをインストール/設定するためのものです。私sweet_rails_app_cookbookで
私が持っていることがあります。どちらかの料理のデフォルトレベルで設定され、両方の料理で
# coding: UTF-8
# Cookbook Name:: sweet_rails_app
# Recipe:: default
include_recipe 'apache_passenger_cookbook::default'
... # recipe code
すべての属性を。
# coding: UTF-8
name 'sweet_rails_app'
description 'Deploys Sweet Rails App'
run_list "recipe[sweet_rails_app_cookbook]"
base_dir = '/opt/sweet_rails_app'
override_attributes(
sweet_rails_app: {
base_dir: base_dir,
... # more override attributes
},
apache_passenger: {
document_root: base_dir
}
)
次に、役割はノードのrun_listに追加する必要があります。これには、2つのcookbookの実行順序を制御する追加のボーナスもあります。
これはChefサーバーでのみ機能しますか? Chef 12.0.3を使って、シェフのソロではうまくいかないようです。 – Noz
これは本当にありがとう、chef_nginx料理本の属性を無効にするための類似の情報が必要でした。 – WhyAyala