Is it possible to do a string substitution/transformation in Puppet using a regular expression?
If $hostname is “web1”, I want $hostname_without_number to be “web”. The following isn’t valid Puppet syntax, but I think I need something like this:
$hostname_without_number = $hostname.gsub(/\d+$/, '')
Yes, it is possible.
Check the puppet function reference: http://docs.puppetlabs.com/references/2.7.3/function.html
There’s a regular expression substitution function built in. It probably calls the same underlying gsub function.
Or if you prefer to actually call out to Ruby, you can use an inline ERB template: