Puppet / hiera: генерировать файлы sereval из одного шаблона

Я запускаю марионетку 4 и хотел бы сгенерировать несколько файлов конфигурации из одного шаблона с разными конфигурациями для каждого one.

например:

# cat /tmp/a.conf 
test1

# cat /tmp/b.conf 
test2

И мне нужно поместить всю эту информацию в hiera, поэтому я думаю примерно так:

test::clusters:
  - 'a.conf'
    text: 'test1'
  - 'b.conf'
    text: 'test2'

Thx

0
задан 24 November 2016 в 20:05
2 ответа

Хорошо, я нашел, как это сделать :

Вот мои 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'
0
ответ дан 4 December 2019 в 13:37

В шаблонах/тесте/кластерах

<%= @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

2
ответ дан 4 December 2019 в 13:37

Теги

Похожие вопросы