如何获得puppet模块的版本

时间:2017-09-14 15:21:36

标签: ruby puppet

我想通过Puppet检索模块的版本。

例如:

notify { "module version is $module_version": }

但这对Puppet来说是不可能的。这就是我想使用Ruby来添加自定义资源或函数的原因。

我的想法是使用Ruby打开metadata.json,获取模块的版本,并将其添加到事实中。您是否认为可以打开相关模块的metadata.json?你还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用load_module_metadata中的stdlib功能来完成此操作:https://github.com/puppetlabs/puppetlabs-stdlib#load_module_metadata

例如,要在上面的示例代码段中实现您要查找的内容,您可以执行以下操作:

$metadata = load_module_metadata('module_name')
notify { "module version is ${metadata['version']}": }

请注意,load_module_metadata的返回值将是包含键和值字符串的哈希值,因此请相应地在Puppet中使用相应的哈希查找结构($hash_name['hash_key']返回键的相应字符串值)