我写了一个厨师definition
发帖到我们的聊天服务器。
由于不再推荐定义,我该如何将其重写为资源?我对如何使用“事件”方式来触发代码特别感兴趣。
文件chat\definitions\post.rb
:
define :chat_post do
chat_url = 'https://chat.our.company/hooks/abcdef1234567890'
message = params[:name]
execute "echo" do
command "curl -m 5 -i -X POST -d \"payload={"text": "#{message}"\" #{chat_url}"
ignore_failure true
end
end
在配方中调用代码:
artifacts.each do |artifactItem|
# deploy stuff
# ...
chat_post "#{node['hostname']}: Deployed #{artifact_name}-#{version}"
end
现在,我已经阅读了 chef 文档并尝试了各种方法(准确地说: a Module
、 alibrary
和 a resource
)并阅读了有关chef custom resources的文档,但没有成功。
有人可以指导我:如何将此代码转换为 a resource
,如果这是正确的方法(厨师 12.6+)?
我很高兴知道
- 食谱资源在食谱中的哪个位置(
chat/recipes
或其他地方?) - 代码的外观(从我上面的定义转换)
- 新代码是如何调用的(来自另一个配方),我需要在那里包含任何内容吗