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, } 
  • Comment get une marionnette pour arrêter la première erreur dans un Manifeste?
  • Comment évaluer une class pas sur chaque course de marionnettes?
  • le file manifeste n'est pas appliqué
  • Pourquoi Puppet crée-t-il ces files après chaque exécution?
  • Installez l'entreprise de marionnettes.30 et accédez au portail Web
  • Puppet ne reconnaît pas les packages (qui existent dans yum) dans Centos
  • Fonction de marionnette propre
  • Tableau de bord de marionnettes - Comment afficher les classs et les classs, groupes, etc. fonctionnels?
  • Le journal principal de marionnettes n'a pas été créé dans un location configuré
  • Définition du nœud de marionnettes
  • Puppet accroché à 100% d'utilisation CPU
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.