Я хочу вызвать функцию 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
функция, что может быть полезно для вашего варианта использования.