我正在创建一个厨师食谱,以便使用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/

10-12 00:38
查看更多