puppet 仅在文件不存在时执行

qin*_*126 11 puppet

当文件 (/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"
    }
Run Code Online (Sandbox Code Playgroud)

小智 22

你试过这个吗?

onlyif => "test ! -f /usr/local/bin/papply"
Run Code Online (Sandbox Code Playgroud)

不确定 Puppet 是否可以使用 '!' 特点

也许更好的选择:

creates => '/usr/local/bin/papply'
Run Code Online (Sandbox Code Playgroud)

即使我不喜欢命令并没有真正创建文件的事实


小智 7

如果您使用的是 linux,请执行以下操作

unless => 'ls /somefile'
Run Code Online (Sandbox Code Playgroud)

如果文件不存在, ls 将返回一个非零返回代码,除非它的测试返回一个非零返回代码,否则只会让正在执行的 exec 执行。