料理本で私はライブラリ(client_helper.rb)を持っています。内部にモジュールが定義されています。モジュール名はです。Client_helperです。ここにモジュールコードがあります。料理本のレシピでライブラリモジュールを使用する方法
module Client_helper
# This module contains helper methods
def network_zone
Chef::Log.debug('network zone called...********')
Chef::Log.debug("inside-::::"+self.class.to_s)
end
end
Chef::Recipe.send(:include, Client_helper)
は今、私はデフォルトレシピを持っています。私が方法を呼び出すところでnetwork_zoneは直接レシピから働いています。
しかし、私がメソッドnetwork_zoneをruby_block(例えばClient_helper.network_zone)の中で呼び出すとき、それは動作しません。。
レシピコードを確認してください。
# Cookbook: client
# Recipe: default
Chef::Resource.send(:include, Sap_splunk_client_helper)
host_network_zone = network_zone # This is working
Log.info("inside-::::"+self.class.to_s)
ruby_block 'parse auto generated templates' do
block do
host_network_zone = Client_helper.network_zone #This is not working
Log.info("inside ruby block-::::"+self.class.to_s)
end
end
私の料理のディレクトリ構造 -
私を助けてください。
パーフェクトで分かりやすい –