Как заставить hiera вывести буквальную строку "%{::fqdn}"?

Я хотел бы знать, что мне нужно иметь в моем файле yaml, чтобы hiera вывел буквальную строку %{::fqdn} вместо вывода значения марионеточного факта fqdn,

Вот что я попробовал.

# grep foo::p4 /etc/puppetlabs/code/environments/production/hieradata/bar.yaml
foo::p4: 'http://%{hiera(''p1'')}/%{::fqdn}'

И вот результат:

# hiera foo::p4 '::prefix_fact=bar' '::fqdn=thing.com' environment=production
http://test/thing.com

На самом деле я хочу, чтобы вывод был:

http://%{hiera('p1')}/%{::fqdn}

Я думаю, я мог бы сделать что-то глупое, как это:

p1: 'test'
pa: '%{hiera'
pb: '("p1")}'
pc: '%{::fq'
pd: 'dn}'
foo::p4: "%{hiera('pa')}%{hiera('pb')}%{hiera('pc')}%{hiera('pd')}"

Тогда вывод, что я хочу:

# hiera foo::p4 '::prefix=bar' '::fqdn=thing.com' environment=production
%{hiera("p1")}%{::fqdn}

1 ответ

Решение

Согласно документации:

foo:p4: 'http://%{literal(''%'')}{hiera(''p1'')}/%{literal(''%'')}{::fqdn}'
Другие вопросы по тегам