首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在厨师only_if保护中使用多个条件

在厨师only_if保护中使用多个条件
EN

Stack Overflow用户
提问于 2016-10-19 22:05:31
回答 1查看 4.5K关注 0票数 1

我正在使用以下厨师资源:

代码语言:javascript
运行
复制
execute 'run_command' do
  command "chkconfig service on"
  only_if node['platform_version'].to_i == 6, 5
end

请让我知道是否正确地使用了only_if防护

EN

回答 1

Stack Overflow用户

发布于 2019-02-01 23:41:56

保护块中的ruby命令应该包含在{}中。还要注意的是,保护块中的任何ruby代码都将在收敛阶段执行,即运行时。我有一个类似的场景,基于tensibai上面的评论,我只是使用了一个带有预先包含的值的数组来检查ubuntu版本。

代码语言:javascript
运行
复制
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

因此,对于您的场景,我认为保护块应该是这样的

代码语言:javascript
运行
复制
execute 'run_command' do
    command "chkconfig service on"
    only_if {[5, 6].include?(node['platform_version'].to_i)} 
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40133670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档