在Ruby Block中运行Execute资源

时间:2018-09-10 11:42:15

标签: ruby chef

尝试使用以下代码,使resolv.conf不可变:

ruby_block "immutable_resolv" do
       block do
               r = Chef::Resource::Execute.new("attr settings")
               r.command "/usr/bin/chattr +i /etc/resolv.conf"
               r.run_action(:create)
       end
       only_if { ::File.exist?('/etc/resolv.conf') }
end

对节点执行返回:

================================================================================
Error executing action `run` on resource 'ruby_block[immutable_resolv]'
================================================================================

NoMethodError
-------------
undefined method `events' for nil:NilClass

任何人都可以告知这是怎么回事吗?我将其范围缩小到r.run_action行的问题,但是不确定为什么会导致错误?

1 个答案:

答案 0 :(得分:0)

这不再是一个选择。改写一个自定义资源。或者只是使用普通资源。