Puppet: Testez si Resource est défini, ou créez-le

J'ai essayé de trouver un moyen de tester si une ressource est déjà définie dans un autre fichier et si elle ne le crée pas? Un exemple rapide:

if File[$local_container] { alert("Testing - It existed $local_container") } else { file{ "$local_container": ensure => directory, } } 

Toutefois – File[$local_container] semble toujours être File[$local_container] vrai. Y a-t-il un moyen de faire cela?

4 Solutions collect form web for “Puppet: Testez si Resource est défini, ou créez-le”

La meilleure façon de le faire est de faire appel à la fonction sure_resource de puppetlabs stdlib

Il faut un type de ressource, un titre et une liste d'attributs qui décrivent une ressource comme paramètres.

Disons que vous avez un cas de test pour ne créer que la ressource s'il n'existe pas déjà,

 ensure_resource('package', 'test-pkg', {'ensure' => 'present'}) 

Voulez-vous dire "tester si une ressource est déjà définie "? Si vous définissez une ressource (c.-à-d., file {} , etc.) Puppet créera ce que vous décrivez si n'existe pas (en supposant que vous passez ensure => present , bien sûr).

Pour vérifier si une ressource est déjà définie dans le catalogue ou non

 mark-draytons-macbook:~ mark$ cat test.pp file { "/tmp/foo": ensure => present } if defined(File["/tmp/foo"]) { alert("/tmp/foo is defined") } else { alert("/tmp/foo is not defined") } if defined(File["/tmp/bar"]) { alert("/tmp/bar is defined") } else { alert("/tmp/bar is not defined") } mark-draytons-macbook:~ mark$ puppet test.pp alert: Scope(Class[main]): /tmp/foo is defined alert: Scope(Class[main]): /tmp/bar is not defined notice: //File[/tmp/foo]/ensure: created 

Remarque: defined() dépend de l'ordre des pars .

Ou….

 unless File["${local_container}"] { file{ "${local_container}": ensure => directory, } } 

Et gardez un œil sur ces guillemets et les accolades …

simplement,

 file{ "$local_container": ensure => directory, replace => false, } 
  • Exécutez la command exec de marionnette uniquement si le file de sortie a changé
  • Marionnette: Organiser les dependencies du module (copyr le file si le package est présent)
  • Quelle est la meilleure façon dans Puppet d'ajouter un morceau de texte au fichier / etc / hosts?
  • Performance lente des seules commands de marionnettes sur Learning Puppet VM
  • Puis-je avoir Puppet s'abonner à un directory afin que les modifications apscopes à un file triggersnt un rechargement de service?
  • Comment exécuter / exécuter une class de marionnettes
  • Question sur les permissions de marionnettes signalées sur le client
  • Comment configurer la marionnette pour append un user au groupe de sudoers lorsqu'il varie selon les différents systèmes (ou, comment fonctionnent les variables?)
  • Puppet - Split - Obtenez le dernier élément du tableau de taille variable
  • Agent de marionnettes
  • exécuteur de marionnettes uniquement lorsque le file n'existe PAS
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.