我使用以下主厨资源:
execute 'run_command' do
command "chkconfig service on"
only_if node['platform_version'].to_i == 6, 5
end
如果only_if guard以正确的方式使用,请告诉我
答案 0 :(得分:0)
保护块中的ruby命令应放在{}中。还要注意,保护块内的任何红宝石代码都将在收敛阶段(即运行时)执行。我有一个类似的情况,根据上述tensibai的评论,我只是使用了一个带有预包含值的数组来检查ubuntu版本。
execute "apt-get-update" do
command "apt-get update"
ignore_failure true
notifies :install, 'package[ntp]', :immediately
not_if {[16.04, 18.04].include?(node['platform_version'].to_f) && (node['packages'].keys.include? "ntp")}
#not_if {(node['packages'].keys.include? "ntp")}
end
所以对于您的情况,我认为防护块将类似于
execute 'run_command' do
command "chkconfig service on"
only_if {[5, 6].include?(node['platform_version'].to_i)}
end