Chef infra 为什么只有当Chef::Config[';solo';]也在服务器上运行时,才运行#u?

Chef infra 为什么只有当Chef::Config[';solo';]也在服务器上运行时,才运行#u?,chef-infra,Chef Infra,我曾尝试使用Chef::Config['solo']仅在本地运行时执行操作,例如运行厨房测试。但是,在另一台主机上运行时,它仍然会安装epel发布包,我不想这样做。这是一只虫子,还是我遗漏了什么 # added to pass kitchen test package 'epel-release' do action :upgrade only_if Chef::Config['solo'] end 因为你的意思是只有当{Chef::Config['solo']}时才是。如果没有{},

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

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

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


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

是否有一种方法仅在厨房测试中运行该资源,而在使用chef client时不在客户端上运行该资源?
如果ENV['test_kitchen']
或类似的话。该环境变量由测试厨房自动设置。谢谢!这似乎就是我要找的。投票是最好的答案,因为它解决了我的问题。