我想通过Puppet检索模块的版本。
例如:
notify { "module version is $module_version": }
但这对Puppet来说是不可能的。这就是我想使用Ruby来添加自定义资源或函数的原因。
我的想法是使用Ruby打开metadata.json
,获取模块的版本,并将其添加到事实中。您是否认为可以打开相关模块的metadata.json
?你还有其他想法吗?
答案 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']
返回键的相应字符串值)