Je veux seulement exécuter la commande suivante lorsque le fichier (/ usr/local/bin/perpply) n'existe pas. Je ne sais pas quoi mettre là-bas.
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"
}
Avez-vous essayé cela?
onlyif => "test ! -f /usr/local/bin/papply"
Je ne sais pas si la marionnette peut utiliser le '!' personnage
Peut-être une meilleure alternative:
creates => '/usr/local/bin/papply'
même si je n'aime pas le fait que la commande ne crée pas vraiment le fichier
Si vous êtes sur Linux, faites juste
unless => 'ls /somefile'
lS reviendra avec un code de retour non nulle si le fichier n'existe pas et que, sauf si vous ne laisserez que l'exécutif qu'il est exécuté si son test renvoie un code de retour non nul.
Sur Linux et Puppet> 3.8 Essayez:
exec { 'test':
command => '/bin/echo HI',
unless => 'test -f /a/file.txt',
}
eXEC ne fonctionnera pas si /a/file.txt
existe.
Vous voudrez peut-être envisager d'utiliser Crée , qui existe à cet effet:
exec { 'git add url':
command => 'git remote add Origin https://github.com/testing/puppet.git',
creates => '/usr/local/bin/papply'
}