web-dev-qa-db-ja.com

puppet変数がVagrantのpuppet.facterオプションによって割り当てられないのはなぜですか?

以下が私の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

4
Eric Smalling

私の同僚である@SebastianWeigandのおかげで、変数名にcammel-caseを使用すると問題が発生することがわかりました。両側で「variableone」と「variabletwo」に切り替えると修正されました。

2
Eric Smalling

通知は名前空間内にあるかもしれません。次の方法で、トップスコープのファクト変数にアクセスしてみてください。

notify{ "Got here with ${::variableOne} and ${::variableTwo}":}
0
edlerd