Я хочу выполнить следующую команду только тогда, когда файл (/ usr / local / bin / papply) не существует. не уверен, что туда поставить.
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"
}
Вы пробовали это?
onlyif => "test ! -f /usr/local/bin/papply"
Не уверен, может ли Puppet использовать '!' персонаж
Возможно, лучший альтернативный вариант:
creates => '/usr/local/bin/papply'
даже если мне не нравится тот факт, что команда на самом деле не создает файл
Если вы используете Linux, просто сделайте
unless => 'ls /somefile'
ls вернется с ненулевым кодом возврата, если файл не существует, и если только он не разрешит exec выполнить его, если его тест вернет ненулевой код возврата.
В linux и puppet> 3.8 попробуйте:
exec { 'test':
command => '/bin/echo HI',
unless => 'test -f /a/file.txt',
}
exec не запустится, если /a/file.txt
существуют.
Возможно, вы захотите использовать создает, который существует для этой цели:
exec { 'git add url':
command => 'git remote add origin https://github.com/testing/puppet.git',
creates => '/usr/local/bin/papply'
}