Я запускаю марионетку 4 и хотел бы сгенерировать несколько файлов конфигурации из одного шаблона с разными конфигурациями для каждого one.
например:
# cat /tmp/a.conf
test1
# cat /tmp/b.conf
test2
И мне нужно поместить всю эту информацию в hiera, поэтому я думаю примерно так:
test::clusters:
- 'a.conf'
text: 'test1'
- 'b.conf'
text: 'test2'
Thx
Хорошо, я нашел, как это сделать :
Вот мои hiera data/common.yaml :
test::paramconf:
'a':
text: '1'
'b':
text: '2'
Вот мои манифесты/входные данные конфигурации модуля. 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'
В шаблонах/тесте/кластерах
<%= @text %>
вам нужен определенный тип
define test::clusters (
$text = undef
) {
file { "/tmp/${title}":
ensure => $ensure,
owner => 'root',
group => 'root',
content => template('my_file/example.erb'),
}
}
, а затем вы можете определить тест::clisters
в манифесте подобного рода:
::test::clusters { 'a.conf':
text => 'test1'
}
Или если вы все еще хотите использовать hiera, вы можете использовать create_resources