Назад | Перейти на главную страницу

Почему мои марионеточные переменные не назначаются параметрами puppet.facter Vagrant?

Дано что в моем 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)

Почему переменные не заполняются в манифесте?

Пример репо для воспроизведения: https://github.com/ericsmalling/vagrantpuppet

Благодаря @SebastianWeigand, моему коллеге, я обнаружил, что использование cammel-case в именах переменных вызывает проблему. Переключение на «переменный один» и «переменный два» с обеих сторон исправило это.

Возможно, ваше уведомление находится в пространстве имен. Можете ли вы попытаться получить доступ к переменным facter в верхней области через:

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