我正在创建一个厨师食谱,以便使用regexp在其主机名与特定模式匹配的所有服务器上应用配置更改。但是,我不知道怎么做。
示例:我的主机名如下:
DVABWICHF01型
DVCDWICHF01型
我在default.rb中的配方是:
case node['hostname']
when '*ab*'
template "/tmp/regextest" do
source "test_ab.erb"
mode "0644"
end
else
template "/tmp/regextest" do
source "test_cd.erb"
mode "0644"
end
end
但这并没有按预期工作,只有“else”模板正在所有服务器上更新。请协助。
最佳答案
您需要使用一个实际的regex,而不是像您在那里那样的字符串(您还使用fnmatch glob matching,而不是regex)。只有当主机名字面上是*ab*
时,这个问题才能解决。ruby中的regexp文本通常看起来像/whatever/
。所以在这种情况下。
关于ruby - 使用CHEF将配方应用于主机名与正则表达式匹配的所有服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46893896/