我们遇到一个问题,即我们没有管理员权限来仅用刀来标记服务器。我将如何告诉Chef读取模板,以及模板是否包含服务器的节点名称以对其进行标记。
我知道我可以用tag('tagnamehere')标记服务器,但是围绕它的代码...我不知道这样是否可行。或者,如果“ Template.readlines”是搜索功能而不是“ File.readlines”。
if Template.readlines('template1.erb').grep(/#{node.name}/).any?
tag('mytag')
end
不确定如何完成这项壮举。但要努力以Ops的身分来理解。
如果我理解正确地读取了静态模板erb文件,并且您正在寻找是否使用了#{node.name}
变量。
在这种情况下,解决方案是通过使用grep中的\
跳过字符串插值
if Template.readlines('template1.erb').grep(/\#{node.name}/).any?
tag('mytag')
end