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

Значения переменных в нижнем регистре в шаблоне марионетки

В моей конфигурации марионетки мне нужно ввести значение переменной в нижний регистр, прежде чем использовать ее в шаблоне. Как этого добиться? Есть ли способ ввести значение переменной в нижний регистр в манифесте марионетки? Нужно ли мне это делать в шаблоне?

И в более общем плане: где находятся функции манипулирования строками, которые я мог бы использовать в манифестах.

Должен ли я писать свои собственные рубиновые функции для этого?

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

Решение, которое я рекомендую, - использовать downcase() функция парсера в стандартный библиотечный модуль. Я рекомендую это, потому что вам не нужно писать какой-либо рубиновый код, и его легче читать:

class helloworld {
  $os_downcase = downcase($osfamily)
}
include helloworld

Если вы не хотите зависеть от stdlib модуль, то вы можете использовать inline_template функция для обобщения решения, упомянутого Шейном:

class helloworld {
  $os_downcase = inline_template('<%= osfamily.downcase %>')
}
include helloworld

inline_template позволяет избежать необходимости создания отдельного *.erb файл.

Надеюсь это поможет. -Джефф

Возможности Puppet по управлению строками внутри манифестов очень ограничены. Манифесты на самом деле не предназначены для обработки подобных вещей.

Но в шаблоне это просто; доступны обычные функции рубина. Скажем, я хотел строчные буквы osfamily факт:

<%= osfamily.downcase %>