Puppet
Puppet/hiera : 從一個模板生成多個文件
我正在執行 puppet 4,我想從同一個模板生成幾個配置文件,每個配置文件都有不同的配置。
例如 :
# cat /tmp/a.conf test1 # cat /tmp/b.conf test2
而且我需要將所有這些資訊放在 hiera 中,所以我認為是這樣的:
test::clusters: - 'a.conf' text: 'test1' - 'b.conf' text: 'test2'
謝謝
好的,我找到了使它起作用的方法:
這是我的 hiera data/common.yaml :
test::paramconf: 'a': text: '1' 'b': text: '2'
這是我的模組配置 manifests/init.pp :
class test ($paramconf){ create_resources(test::conf, $paramconf) } define test::conf ( String[1] $text, String[1] $text2 = $title, ) { file { "/tmp/${title}.conf": ensure => file, owner => 'root', group => 'root', mode => '0644', content => template('test/test2.erb'), } }
我唯一不明白的是為什麼這是有效的:
test::paramconf: 'a': text: '1' 'b': text: '2'
這不起作用:
test::paramconf: - 'a': text: '1' - 'b': text: '2'
你需要一個定義的類型
define test::clusters ( $text = undef ) { file { "/tmp/${title}": ensure => $ensure, owner => 'root', group => 'root', content => template('my_file/example.erb'), } }
在模板/測試/集群中
<%= @text %>
然後您可以
test::clisters
像這樣在清單中定義 a :::test::clusters { 'a.conf': text => 'test1' }
或者如果您仍然希望使用 hiera,您可以使用create_resources