鉴于我的 Vagrantfile 中配置如下:
puppet.facter = {
'variableOne' => 'one',
'variableTwo' => 'two'
}
...清单中的内容如下:
notify{ "Got here with ${variableOne} and ${variableTwo}":}
什么时候我运行vagrant up
(或者vagrant provision
如果它已经启动)我在输出中看到以下行:
==> default: Notice: Got here with and
什么时候 我添加--debug
到 vagrant 命令中,我也在输出中看到这一点:
==> default: Running Puppet with default.pp...
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: FACTER_variableOne='one' FACTER_variableTwo='two' puppet apply --verbose --debug --manifestdir /tmp/vagrant-puppet-3/manifests --detailed-exitcodes /tmp/vagrant-puppet-3/manifests/default.pp (sudo=true)
为什么变量没有在清单中填充?
要重现的示例 repo:https://github.com/ericsmalling/vagrantpuppet
答案1
感谢我的同事@SebastianWeigand,我发现变量名中使用驼峰式大小写导致了这个问题。将两边都改为“variableone”和“variabletwo”就解决了这个问题。
答案2
也许您的通知位于命名空间内。您可以尝试通过以下方式访问顶级范围内的 fact 变量:
notify{ "Got here with ${::variableOne} and ${::variableTwo}":}