Chef infra 菜谱如何获得服务器标签的完整列表?
菜谱如何获得服务器标签的完整列表 或 配方如何检查某个标签是否设置/存在Chef infra 菜谱如何获得服务器标签的完整列表?,chef-infra,chef-recipe,rightscale,Chef Infra,Chef Recipe,Rightscale,菜谱如何获得服务器标签的完整列表 或 配方如何检查某个标签是否设置/存在 顺便说一句:标签?对我不起作用你可以通过node.tags或node[:tags]获取配方中某个节点的所有标签。因此,要检查是否存在特定标签,您需要: node[:tags].include? 'mytag' 要获得所有节点上所有标记的完整列表,必须使用搜索 search( :node, '*:*' ).collect(:tags).flatten.uniq 但是标记了吗mytag“实际上应该可以工作。显示您的代码。使
顺便说一句:标签?对我不起作用你可以通过
node.tags
或node[:tags]
获取配方中某个节点的所有标签。因此,要检查是否存在特定标签,您需要:
node[:tags].include? 'mytag'
要获得所有节点上所有标记的完整列表,必须使用搜索
search( :node, '*:*' ).collect(:tags).flatten.uniq
但是
标记了吗mytag“
实际上应该可以工作。显示您的代码。使用Chef标签时需要记住以下几点:
if tagged?('legacy')
do legacy things
end
或
从你的食谱来看,这些类型的使用应该是有效的,没有问题。我和@IgorM有同样的问题。我的代码是
if taged?(“au”)
,我得到一个错误:TemplateError(undefined method
taged?”for…`我在Chef::Recipe中遇到了名为taged?的方法。我想检查一些标记是否为'active'。如何获取?您仍然可以访问它们,只是没有获取作为Recipe类成员的taged?方法。您必须像普通属性IE节点['tags']一样访问它们。包括?
return if tagged?('ignore')