通过人偶替换 ruby 模板上的变量值

replace variable value on ruby template via puppet

我正在寻找获得此 ruby 模板文件结果的方法:

ServerName 1.server.foo

知道如果我 运行

$ facter -p fqdn
1.server.foo.internet.com

我可能会玩 <%= @fqdn %> 和 .gsub?

server-id: <%= @fqdn %>.gsub(/.internet.com/, '')

整个表达式需要在<%= %>标签中,所以试试

server-id: <%= @fqdn.regsubst(/.internet.com/, '') %>

模板语法记录在 https://puppet.com/docs/puppet/5.5/lang_template_erb.html 中,其中包含 <%= %> 标签中使用的表达式示例。

我还注意到 ERB 模板已被 native Embedded Puppet EPP templates 取代,因此现在转换可能更好。

将 EPP 与 regsubst 结合使用很有效!

server-id: <%= $facts[fqdn].regsubst(/.internet.com/, '') %>