В моей конфигурации марионетки мне нужно ввести значение переменной в нижний регистр, прежде чем использовать ее в шаблоне. Как этого добиться? Есть ли способ ввести значение переменной в нижний регистр в манифесте марионетки? Нужно ли мне это делать в шаблоне?
И в более общем плане: где находятся функции манипулирования строками, которые я мог бы использовать в манифестах.
Должен ли я писать свои собственные рубиновые функции для этого?
Я могу придумать два общих решения этой проблемы. В общем, я имею в виду, что они будут работать в файлах манифеста и шаблонах, а не только в шаблонах.
Решение, которое я рекомендую, - использовать 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 %>