Есть несколько способов сделать это, используя комбинацию встроенных функций и stdlib , по крайней мере, для YAML и JSON.
- Использование встроенногов функция файла и функции
parseyaml
или parsejson
stdlib:
Создайте файл в mymodule / files / myfile.yaml:
▶ cat files/myfile.yaml
---
foo: bar
Затем в ваших манифестах прочитайте его в строку и проанализируйте:
$myhash = parseyaml(file('mymodule/myfile.yaml'))
notice($myhash)
Это выдаст:
Notice: Scope(Class[mymodule]): {foo => bar}
- Или, используя
loadyaml
или loadjson
Функции stdlib:
$myhash = loadyaml('/etc/puppet/data/myfile.yaml')
notice($myhash)
Проблема этого подхода заключается в том, что вам нужно знать путь к файлу на мастере Puppet.Или вы можете использовать функцию Puppet 6 deferred и считывать данные из файла на узле агента.
(Независимо от того, вы должны сделать это другоене имеет значения - подсказка: ответ - вы наверняка должны использовать Hiera, но это не тот вопрос, который вы задали.)