【问题标题】:Why does only_if Chef::Config['solo'] also run on server?为什么 only_if Chef::Config['solo'] 也在服务器上运行?
【发布时间】:2018-06-23 08:46:24
【问题描述】:

我尝试使用 Chef::Config['solo'] 仅在本地运行时执行操作,例如运行厨房测试。但是,在另一台主机上运行时,它仍然会安装 epel-release 包,我不想这样做。这是一个错误,还是我在这里遗漏了什么?

# added to pass kitchen test
package 'epel-release' do
  action :upgrade
  only_if Chef::Config['solo']
end

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    因为你的意思是only_if { Chef::Config['solo'] }。如果没有{},它将被解释为要运行的命令字符串。

    同样,solo vs. not 与“本地”没有特别的关系,它是 chef-solo vs chef-client 作为原始命令。

    【讨论】:

    • 是否有办法只在厨房测试中运行该资源,而不是在使用 chef-client 时在客户端本身上运行?
    • if ENV['TEST_KITCHEN'] 或类似的。该环境变量由 Test Kitchen 自动设置。
    • 谢谢!这似乎是我一直在寻找的。投票最佳答案,因为它解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2023-03-31
    • 2014-04-07
    • 2017-01-27
    • 2015-08-19
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多