Test delle marionette se esiste un file


8

Sto cercando un modo per testare se esiste un file nel mio client (solo test non creazione). Ho trovato il modo (File.exists) nello chef ma non era semplice con il burattino.

Grazie in anticipo.

Risposte:


6

Il modo "nativo" per farlo senza i dirigenti se sei su Puppet 2.6.6+:

file { '/path/to/myfile':
  ensure => 'present',
  audit  => 'all',
}

(Questa funzionalità esiste da Puppet 2.6.0, ma ci sono stati diversi problemi con l'auditing che sono stati eliminati solo con la versione 2.6.6.)

Se hai una versione precedente, puoi anche dire alla risorsa di essere eseguita in noopmodalità, che visualizzerà solo un messaggio quando Puppet viene eseguito e il file non esiste:

file { '/path/to/myfile':
  ensure => 'present',
  noop   => 'true',
}

si. questo è fantastico con la nuova versione del burattino. Ho lavorato con la versione 2.6.0 e devo scrivere la mia funzione ruby ​​per il file esiste / controllo vuoto.
Pasto

9

Dovresti creare la tua funzione o usare exec con il comando onlyif. qualcosa di simile a :

exec { "mycommand":
  path => "/usr/bin:/usr/sbin:/bin",
  onlyif => "test -f /etc/blalba" //yours command 
}

assicurati => presente creerà il file se non esiste. bazic vuole solo testare e non crearlo. Vedi docs: docs.puppetlabs.com/references/stable/type.html#file
shakalandy

Grazie, ma niente di interessante nei documenti.
bazic,

ho aggiornato la mia risposta
MealstroM,

1
@MealstroM: " creates => '/etc/blabla'" non sarebbe meglio di un " onlyif"?
Freiheit,

1
@MealstroM: in questo caso particolare, createsavrebbe lo stesso risultato e sarebbe molto più semplice (e un po 'più veloce). Sì, in generale onlyifoffre maggiore flessibilità.
Freiheit,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.