Chef infra 为什么只有当Chef::Config[';solo';]也在服务器上运行时,才运行#u?
我曾尝试使用Chef::Config['solo']仅在本地运行时执行操作,例如运行厨房测试。但是,在另一台主机上运行时,它仍然会安装epel发布包,我不想这样做。这是一只虫子,还是我遗漏了什么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']}时才是。如果没有{},
# 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
vschef client
作为原始命令。是否有一种方法仅在厨房测试中运行该资源,而在使用chef client时不在客户端上运行该资源?如果ENV['test_kitchen']
或类似的话。该环境变量由测试厨房自动设置。谢谢!这似乎就是我要找的。投票是最好的答案,因为它解决了我的问题。