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