2017-09-14 56 views
0

我想通过Puppet获取模块的版本。如何获得傀儡模块的版本

例如:

notify { "module version is $module_version": } 

,但这是不可能的木偶。这就是为什么我想添加一个自定义资源或使用Ruby的功能,可以处理。

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

回答

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']返回键的相应字符串值)。