[英]How to @Override an Attribute declared in an Interface implemented in a class
[英]In puppet how to override a class variable if the class is already declared in a forged module
我正在使用來自puppetlabs的jenkins木偶模塊,並希望在我的jenkins機器中安裝一個特定的java包。 這個jenkins puppet模塊使用java puppet模塊進行java安裝。 我想在我的jenkins節點中安裝一個特定的java包。 所以我想我需要在puppet模塊中覆蓋偽造java模塊的java :: package變量。 像這樣的東西 -
class {'java':
package => $my_jdk_package,
}
但是java :: init類已經在jenkins :: init.pp中被重寫了。 因此我不能在我的puppet模塊中重新聲明java類。 知道怎么做嗎?
您可以在jenkins類中將install_java參數設置為false:
class { 'jenkins':
install_java => false,
require => Class['java'],
}
require參數是確保在jenkins之前安裝java。 通過將install_java參數設置為false,jenkins模塊將不再包含java類。 這將允許您根據需要在jenkins節點中聲明java類:
class { 'java':
package => $my_jdk_package,
}
如果您正在使用hiera,那么您可以覆蓋這樣的參數:
---
java::package: 'packageyouwant'
然后,您不需要將install_java設置為false,也不需要在jenkins節點中定義java類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.