gpt4 book ai didi

ruby - 使用 CHEF 将配方应用于主机名与正则表达式匹配的所有服务器

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:26 25 4
gpt4 key购买 nike

我正在创建一个 Chef Recipe ,以使用正则表达式在主机名与特定模式匹配的所有服务器上应用配置更改。但是,我不确定该怎么做。

示例:我的主机名如下所示:

  • dvabwichf01
  • dvcdwichf01

我在 default.rb 中的 Recipe 是:

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”模板在所有服务器上更新。请协助。

最佳答案

您需要使用实际的正则表达式,而不是像您那里那样的字符串(同时您使用的是 fnmatch glob 匹配,而不是正则表达式)。这只会在主机名字面上是 *ab* 时解决。 Ruby 中的正则表达式文字通常看起来像 /whatever/。所以 when/ab/ 在这种情况下。

关于ruby - 使用 CHEF 将配方应用于主机名与正则表达式匹配的所有服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com