我想要一个条件,仅当运行列表中没有其他菜谱时,才在 Chef 菜谱中执行某项操作,另一个条件,仅当运行列表中没有特定菜谱时,才为真。有办法做到这一点吗?
另外,最佳实践对这种逻辑有何看法?是否应该出于某种原因避免这种情况?
答案1
一般来说,这种事情可能非常脆弱,因为如果你使用include_recipe
,事情可能会对顺序很敏感。但话虽如此,你可以这样做:
if node['recipes'].include?('foo::bar')
# Do something ...
end
我想要一个条件,仅当运行列表中没有其他菜谱时,才在 Chef 菜谱中执行某项操作,另一个条件,仅当运行列表中没有特定菜谱时,才为真。有办法做到这一点吗?
另外,最佳实践对这种逻辑有何看法?是否应该出于某种原因避免这种情况?
一般来说,这种事情可能非常脆弱,因为如果你使用include_recipe
,事情可能会对顺序很敏感。但话虽如此,你可以这样做:
if node['recipes'].include?('foo::bar')
# Do something ...
end