Назад | Перейти на главную страницу

Puppet / hiera: создание файлов sereval из одного шаблона

Я запускаю марионетку 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'