以下が私のVagrantfileで設定されていることを与えます:
puppet.facter = {
'variableOne' => 'one',
'variableTwo' => 'two'
}
...そして以下がマニフェストにあります:
notify{ "Got here with ${variableOne} and ${variableTwo}":}
Whenvagrant up
(またはすでに起動している場合はvagrant provision
)を実行すると、出力に次の行が表示されます。
==> default: Notice: Got here with and
そしてvagrantコマンドに--debug
を追加すると、出力にも次のように表示されます。
==> 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)
変数がマニフェストに入力されないのはなぜですか?
再現するリポジトリの例: https://github.com/ericsmalling/vagrantpuppet
私の同僚である@SebastianWeigandのおかげで、変数名にcammel-caseを使用すると問題が発生することがわかりました。両側で「variableone」と「variabletwo」に切り替えると修正されました。
通知は名前空間内にあるかもしれません。次の方法で、トップスコープのファクト変数にアクセスしてみてください。
notify{ "Got here with ${::variableOne} and ${::variableTwo}":}