Я пытаюсь добавить слой типа к нашему бэкэнду hiera, чтобы веб-серверы могли получить общую конфигурацию, базы данных - общую конфигурацию и т. Д.
Наша схема имени хоста - [env] [номер] .domain.tld
где [env] и [number] необязательны. [env] может быть одним из prod, stage, dev или test. [число] - любая цифра 0–9.
Я пытаюсь извлечь из имени хоста и использовать его в hiera.
Вот что я использую для установки глобального $ hosttype в марионетке: $hosttype = regsubst($fqdn, '(.+?)(?=(dev)|(stg)|(test)|(prod)|(\d)|(\.))', '\1')
Это извлекает fqdn, а не только. Регулярное выражение работает на rubular.com, но puppet 4.10 находится на ruby 2.1.x, а rubular - на 2.5.7. Я новичок в марионетке, спасибо за терпение.