il burattino esegue solo quando il file NON esiste

Voglio solo eseguire il command seguente quando il file (/ usr / local / bin / papply) non esiste. non so cosa posso fare.

exec { 'git add url': command =>'git remote add origin https://github.com/testing/puppet.git', require => Exec['git init'], cwd => '/home/vagrant/django', user => 'vagrant', onlyif => "not sure what to put here" } 

  • Ottenere un elenco delle risorse di un dato tipo
  • Lavorare con matrici in fantoccio
  • Puppet e templates: come eseguire loop in sequenza e non in modo random
  • Burattino: count di riferimento per le risorse e installazione / rilascio su richiesta
  • Come installare ed eseguire Device Puppet per configurare Cisco Switches e Routers?
  • Come potrei richiedere una vasta gamma di risorse in fantoccio?
  • 4 Solutions collect form web for “il burattino esegue solo quando il file NON esiste”

    Hai provato questo?

     onlyif => "test ! -f /usr/local/bin/papply" 

    Non è sicuro se il burattino possa utilizzare il '!' carattere

    Forse un migliore alternativo:

     creates => '/usr/local/bin/papply' 

    anche se non mi piace il fatto che il command non crea veramente il file

    Se sei in linux, fai semplicemente

     unless => 'ls /somefile' 

    ls restituirà con un codice di return non zero se il file non esiste e se non si lascia che l'exec sia sotto eseguito se il suo test restituisce un codice di return non zero.

    Su linux e puppet> 3.8 prova:

     exec { 'test': command => '/bin/echo HI', unless => 'test -f /a/file.txt', } 

    exec non verrà eseguito se esiste /a/file.txt .

    Potresti voler considerare l'utilizzo di creazioni che esistono a questo scopo:

     exec { 'git add url': command => 'git remote add origin https://github.com/testing/puppet.git', creates => '/usr/local/bin/papply' } 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.