Генерация конфигурационных файлов с использованием puppet и foreman

Я пытаюсь передать параметры из мастера в класс puppet для создания файла конфигурации.

Каждый файл должен быть таким:

file1
DB_USERNAME=toto
DUMP_TYPE=full
[...]

file2
DB_USERNAME=toto
DUMP_TYPE=full
[...]

Я определяю параметр в Foreman, который является массивом хэшей

bacula_client dumpCfg  [{"techno"=>"oracle", "DB_USERNAME"=>"toto", "DUMP_TYPE"=>"full", ...},
{"techno"=>"mysql", "DB_USERNAME"=>"toto", "DUMP_TYPE"=>"full",    ...}]

Я хотел бы знать, возможно ли сделать что-то подобное, чтобы сгенерировать, например, 2 разных файла конфигурации, так как я получаю "Ressource title должно быть строкой" при вызове dumpdb

class bacula_client (

$isDirector    = false,
$backupCrons   = [],
$isHostConcentrator = false,
$dumpCfg = [],

define bacula_client::dumpdb () {

    $techno     = $name['techno']
    $dbusername       = $name['DB_USERNAME']
    $dumptype        = $name['DUMP_TYPE']

    # call a function that generates the files
  } 
 [.....]
}#myclass

bacula_client::dumpdb{$dumpCfg:} 

Заранее спасибо,

1 ответ

Решение

Сообщение об ошибке говорит обо всем. Вы называете ресурс, используя хэш. Предполагается, что строка.

Попробуйте это так:

define bacula_client::dumpdb ($dumpCfg) {

    $techno     = $dumpCfg['techno']
    $dbusername       = $dumpCfg['DB_USERNAME']
    $dumptype        = $dumpCfg['DUMP_TYPE']

    # call a function that generates the files
  } 


bacula_client::dumpdb{'file1': dumpCfg => $dumpCfg[0] }
bacula_client::dumpdb{'file2': dumpCfg => $dumpCfg[1] }

Обратите внимание на "file1" и "file2". Это имена ресурсов, которые должны быть строками и быть уникальными. Данные передаются в качестве параметра.

Не уверен, работает ли использование массива / хэша или нет. Не тестировал, и я не очень часто передаю данные.

И сделайте себе одолжение и поместите свое определение в свой собственный файл, а не в середину класса. Позже избавит вас от головной боли (например, той, которую я пытаюсь найти в смыслах для 400+ линейных классов, в которых накоплено много всякого веселья за последние 2 года).

Изменить: грамматика

Другие вопросы по тегам