获取在食谱(Chef)上执行的方法名称

时间:2018-09-20 18:03:29

标签: chef chef-recipe

首先,我是编程的新手,也是厨师食谱的新手。但是我在玩耍,被困在试图弄清楚如何更改已更改的菜谱块。

例如:

  cookbook_file '/etc/wil.conf' do
        source 'wil.conf'
        owner 'root'
        group 'root'
        mode '0644'
        action :create
      end
       cookbook_file '/etc/wel.conf' do
        source 'wel.conf'
        owner 'root'
        group 'root'
        mode '0644'
        action :create
      end

  ruby_block 'sendpost' do
        block do
            `curl -s -o /dev/null -w "%{http_code}" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"appId":"APP","category":"APPLICATION","waterMark":null,"timestamp":"{EVENT.DATE}","status":"{Active}","resource":"#{changed}","alertTime":"{EVENT.AGE}","gateway":"#{ENV['HOSTNAME']}"}' http://server:port/context`
        end
        action :nothing
        subscribes :run, 'cookbook_file[/etc/wil.conf]', :immediately
        subscribes :run, 'cookbook_file[/etc/wel.conf]', :immediately
      end 

我正在对一些配置文件进行版本控制,并编写了ruby_block来发送发布请求,我的问题是,我想知道两个资源中的哪个已更改,或者:  
wil.conf或  
wel.conf

因此,在我的弯腰中,我将随请求一起发送已更改的资源 cookbook_file name 块(“资源”:“ {???已更改的文件???}”)

我通过#{ENV ['HOSTNAME']}获得了一些主机变量。 如何获取在运行时发生更改的块名称?

谢谢。

1 个答案:

答案 0 :(得分:0)

不直接支持此功能。资源没有编译时属性以外的输出值或输入值。