簡體   English   中英

在puppet中如果已經在偽造模塊中聲明了類,則如何覆蓋類變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM