2017-09-14 58 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']返回鍵的相應字符串值)。