在我的木偶configuration中,我需要在模板中使用它之前小写一个variables值。 如何做到这一点? 有没有办法在puppet清单中小写一个variables值? 我需要在模板中执行此操作吗?
更一般的:我可以在清单中使用的string操作函数在哪里。
我是否必须编写自己的自定义ruby函数来实现这个function?
清单内的木偶string操作function非常有限。 清单并不是真的打算处理这样的事情。
但是,在模板中,这很容易; 正常的rubyfunction可用。 说我想要一个小写的osfamily事实:
<%= osfamily.downcase %>
有两个通用的解决scheme,我可以想到这个问题。 一般来说,我的意思是他们将工作在清单文件和模板,而不仅仅是模板。
我build议的解决scheme是在标准库模块中使用downcase()parsing器函数。 我推荐这个,因为你不需要写任何ruby代码,而且它更容易阅读:
class helloworld { $os_downcase = downcase($osfamily) } include helloworld
如果你不想依赖于stdlib模块,那么你可以使用inline_template函数来推广Shane提到的解决scheme:
class helloworld { $os_downcase = inline_template('<%= osfamily.downcase %>') } include helloworld
inline_template避免了创build一个单独的*.erb文件的需要。
希望这可以帮助。 -Jeff