在厨师中使用if语句的正确方法是什么?

时间:2017-02-28 04:14:12

标签: if-statement chef

这里其他部分无法正常工作我无法找出原因,如何成功执行此代码?

service 'McAfeeFramework' do
if{ supports :status =>true}
File.write('c:\chef-repo\n1.txt','running')
else
File.write('c:\chef-repo\n1.txt','not running')
end

2 个答案:

答案 0 :(得分:0)

正如你在上一个问题中所指出的那样,你所拥有的内容与Chef代码无关。请从https://learn.chef.io教程开始学习编写Chef配方代码的基础知识。

答案 1 :(得分:0)

这是一种检查给定流程是否与Chef一起运行的方法。您需要将procname替换为您的进程名称。但是,如果您需要Windows,那么这是Linux的示例,您需要将only_if语句更改为sc query | find "RUNNING

之类的内容
file 'running process' do
  path '/tmp/running_process'
  content 'services is running'
  only_if 'pgrep procname && echo 0'
  action :create
end

file 'stoped process' do
  path '/tmp/stoped_process'
  content 'services is not running'
  only_if 'pgrep procname || echo 1'
  action :create
end