Кукольный шаблон со строкой вместо массива

Я использую шаблон erb в Puppet для создания файла конфигурации. Я использую следующий код:

databasename = <%= @db_name %>

переменная db_name определена в следующем формате yaml:

databases::db_name:
- DB_PLACEHOLDER

Проблема в том, что когда я создаю файл из шаблона, Puppet заключает в квадратные скобки мою подстановку переменных, как показано ниже. Я не хочу квадратные скобки?

["DB_PLACEHOLDER"]

person GergA    schedule 20.03.2019    source источник


Ответы (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 не приводит к строке, вы всегда можете явно указать значение как строку в yaml:

databases::db_name: 'DB_PLACEHOLDER'
person Matt Schuchard    schedule 20.03.2019