#yaml #puppet #erb #hiera
#yaml #кукольный #ошибка #hiera
Вопрос:
Я использую шаблон erb в Puppet для создания конфигурационного файла. Я использую следующий код:
databasename = <%= @db_name %>
db_name
переменная определена в следующем формате yaml:
databases::db_name:
- DB_PLACEHOLDER
Проблема в том, что когда я генерирую файл из шаблона, Puppet заключает в квадратные скобки мою замену переменной, как показано ниже. Мне не нужны квадратные скобки?
["DB_PLACEHOLDER"]
Ответ №1:
["DB_PLACEHOLDER"]
в Puppet и Ruby (поскольку вы используете ERB) синтаксически представляет собой массив с одним элементом: "DB_PLACEHOLDER"
. Если вы не хотите, чтобы databases::db_name
это был массив, тогда вам нужно указать его как строку, а не массив в вашем yaml, из которого просматривает Hiera.
В приведенном ниже примере указано databases::db_name
как массив.
databases::db_name:
- DB_PLACEHOLDER
Вы можете изменить тип databases::db_name
на строку, используя соответствующий синтаксис yaml:
databases::db_name: DB_PLACEHOLDER
В случае, если вывод типа во время поиска Hiera из yaml не приводит к преобразованию в string, вы всегда можете явно указать значение в виде строки в yaml:
databases::db_name: 'DB_PLACEHOLDER'