Puppet 模板中的小写变量值

paw*_*que 7 puppet strings

在我的 puppet 配置中,我需要在模板中使用变量值之前将其小写。如何实现这一目标?有没有办法小写人偶清单中的变量值?我需要在模板中执行此操作吗?

更一般地说:我可以在清单中使用的字符串操作函数在哪里。

我是否必须编写自己的自定义 ruby​​ 函数来实现这一点?

小智 16

对于这个问题,我可以想到两种通用的解决方案。一般来说,我的意思是它们将在清单文件和模板中工作,而不仅仅是模板。

我推荐的解决方案是使用标准库模块中downcase()解析器函数。我推荐这个是因为你不需要写任何 ruby​​ 代码而且它更容易阅读:

class helloworld {
  $os_downcase = downcase($osfamily)
}
include helloworld
Run Code Online (Sandbox Code Playgroud)

如果你不想依赖stdlib模块,那么你可以使用inline_template函数来概括Shane提到的解决方案:

class helloworld {
  $os_downcase = inline_template('<%= osfamily.downcase %>')
}
include helloworld
Run Code Online (Sandbox Code Playgroud)

inline_template避免了创建单独*.erb文件的需要。

希望这可以帮助。-杰夫


Sha*_*den 13

Puppet 在清单中的字符串操作能力非常有限。清单并不是真的要处理这样的事情。

但是,在模板中,这很容易;可以使用普通的 ruby​​ 函数。说我想要一个小写的osfamily事实:

<%= osfamily.downcase %>
Run Code Online (Sandbox Code Playgroud)