4 votes

Pourquoi mes variables Puppet ne sont-elles pas assignées par les options Puppet.facter de Vagrant ?

Étant donné que que les éléments suivants sont configurés dans mon fichier Vagrant :

puppet.facter = {
  'variableOne' => 'one',
  'variableTwo' => 'two'
}

... et ce qui suit est dans le manifeste :

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

Lorsque Je cours vagrant up (ou vagrant provision s'il est déjà en place), je vois la ligne suivante dans la sortie :

==> default: Notice: Got here with and

et quand J'ajoute --debug à la commande vagrant, je vois aussi ceci dans la sortie :

==> 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)

Pourquoi les variables ne sont-elles pas remplies dans le manifeste ?

Exemple de repo à reproduire : https://github.com/ericsmalling/vagrantpuppet

2voto

a1ex07 Points 23965

Grâce à @SebastianWeigand, un de mes collègues de travail, j'ai découvert que l'utilisation de camel-case dans les noms de variables causait le problème. En passant à "variableone" et "variabletwo" dans les deux côtés, le problème est résolu.

0voto

edlerd Points 786

Peut-être que votre notification se trouve dans un espace de nom. Pouvez-vous essayer d'accéder aux variables du facter dans le top scope via :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X