是否可以在厨师的if语句中使用support语句?

时间:2017-02-27 09:35:25

标签: chef

我想要做的是,如果服务作为RUNNING运行,我想写入文件,如果不是,则不要运行。

service 'McAfeeFramework' do
puts 'true'
only_if{ supports :status =>true}

File.write('c:\chef-repo\n1.txt','running')
puts 'false'
only_if{ supports :status =>false}
File.write('c:\chef-repo\n1.txt','not running')
end

1 个答案:

答案 0 :(得分:0)

您正在尝试使用service resource错误。

service resource可用于管理系统中的服务,例如启用,禁用,启动或停止服务。您正在使用的guards(only_if,not_if)仅在某些情况下触发资源操作。例如,只有在另一个服务正在运行时才启动服务。

对于您要在此处实现的任务,您应该使用powershell_script resource,您可以在其中编写一些实际代码,以便在每个chef-client运行的配置节点中执行,这将编写文件。 / p>

=编辑=

正如coderanger所述, 也可以使用file资源,尽管你必须在ruby中创建逻辑以向其添加内容而不是PS。