如何让 hiera 输出文字字符串 '%{::fqdn}'?
How to get hiera to output the literal string '%{::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}
根据 documentation:
foo:p4: 'http://%{literal(''%'')}{hiera(''p1'')}/%{literal(''%'')}{::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}
根据 documentation:
foo:p4: 'http://%{literal(''%'')}{hiera(''p1'')}/%{literal(''%'')}{::fqdn}'