Linux
如何將參數傳遞給 puppet 模組?
配置 puppet 模組的最佳實踐是什麼?我有傀儡
2.7.11
。我覺得這種方式很亂,看起來像使用全域變數。node default { $always_apt_update = true include apt }
我應該創建從原始配置繼承大部分配置的類嗎?該文件似乎有太多版本,我不確定哪一個適用於我。
更新:
當我嘗試這個時:
class { 'apt': always_update => 'true', }
我收到一個錯誤:
Error 400 on SERVER: Invalid parameter always_update at /etc/puppet/manifests/nodes.pp:32
您應該使用參數化類而不是全域變數。
例如:
node default { class {'apt': always_update =>true } } class apt ($always_update = true ) { // code } node 'example.com' { class { bar: } }
有關更多資訊,請參閱 puppet 文件:
這些答案似乎有點過時,使用新版本的 puppet 即 3.7.x,可以使用 Hiera 傳遞類參數。類聲明之類的資源不再被視為最佳實踐。
雖然第二個答案確實使用了 Hiera,但它明確使用了“hiera”功能,這又是一個不太可取的做法。
新的解決方案看起來像這樣:
/etc/puppet/manifests/site.pp
:node default { include apt }
/etc/puppet/modules/apt/manifests/init.pp
:class apt ($always_update = true ) { // code }
/etc/puppet/hieradata/<filename>.yaml
apt::always_update: true
Hiera 數據 yaml 文件可以根據需要具有不同的參數值。