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

как я могу вызвать базовое имя функции Ruby в марионетке

Я хочу вызвать функцию File.basename который доступен на Ruby. Возможно ли это в марионетке?

Что-то вроде:

$filename = basename($download_url)

Функции Ruby напрямую недоступны в Puppet, но вы можете использовать inline_template:

$filename = inline_template('<%= File.basename(download_url) %>')

тем временем можно использовать puppetlabs-stdlib что обеспечивает basename() функция.

Возвращает базовое имя пути (при необходимости удаляя расширение).

basename('/path/to/a/file.ext') returns 'file.ext'
basename('relative/path/file.ext') returns 'file.ext'
basename('/path/to/a/file.ext', '.ext') returns 'file'

Нет, вы не можете вызывать произвольные функции Ruby в манифесте Puppet, но вы можете делать это в шаблонах Puppet, которые используют ERB. Взгляните на inline_template функция, что может быть полезно для вашего варианта использования.