【发布时间】:2014-12-24 10:05:17
【问题描述】:
我想在配方中使用一个方法,所以我为它创建了一个辅助方法。
my_cookbook/libraries/foo_helper.rb
module Foo
module Helper
def foo_daemon_command(action)
%Q{bash -c "export PATH='/usr/local/bin:/opt/rbenv/bin:$PATH'; eval '$(rbenv init -)'; cd /opt/foo; /opt/rbenv/shims/ruby foo_daemon.rb #{action} >>/var/log/foo/cron_#{action}.log 2>>/var/log/foo/cron_#{action}.log" }
end
end
end
并从配方中加载方法。
my_cookbook/recipes/default.rb
Chef::Resource::User.send(:include, Foo::Helper)
execute "foo daemon restart" do
command foo_daemon_command("restart")
end
当我应用配方时,我收到undefined method 这样的错误:
NoMethodError
-------------
undefined method `foo_daemon_command' for Chef::Resource::Execute
我做错了什么?
【问题讨论】:
标签: ruby chef-infra