簡體   English   中英

木偶使用hiera創建變量名

[英]Puppet create variable names using hiera

我希望Puppet根據與環境關聯的hiera文件創建一個不同的變量名。 我想要這樣做是因為我希望Puppet使用與特定網絡接口關聯的IP地址。 理想情況下,網絡接口將位於hiera文件中。 這樣,您可以將ip_address變量名稱與hiera文件中定義的網絡接口連接起來,看起來像這樣。

::ipaddress_{$network_interface_from_hiera_file}

這可能嗎?

現在,我有以下內容,但我認為有更好的實現方法。 如果網絡接口更改,我將不得不添加另一種情況。

if $environment == 'production' {
  $client_address = $::ipaddress_enp130s0f0
} else {
  $client_address = $::ipaddress_eth2
} 

聽起來您正在使用Puppet進行eval ,就像您在Shell和Perl其他語言中一樣,據我所知,還沒有。

我可能會使用一個總是返回我關心的IP地址的自定義事實。 當然,那么您需要解決如何將自定義事實提供給您的機隊的問題。

另一個解決方案可能是使用Hiera的分層查找:

在hiera.yaml中:

:hierarchy:
  - %{::node_environment}
  - common

在common.yaml中:

---
myclass::client_address: "%{::ipaddress_eth2}"

在production.yaml中:

---
myclass::client_address: "%{::ipaddress_enp130s0f0}"

最后,請注意,您可以在Hiera中查找值,請參見此處 可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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