puppet somente exec quando o arquivo NÃO existe

8

Eu só quero exec seguinte comando quando o arquivo (/ usr / local / bin / papply) não existe. não tenho certeza do que colocar lá.

    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"
    }
    
por qinking126 04.12.2013 / 01:59

4 respostas

19

Você já tentou isso?

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

Não tenho certeza se o Puppet pode usar o '!' personagem

Talvez uma alternativa melhor:

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

mesmo que eu não goste do fato de que o comando realmente não cria o arquivo

    
por 04.12.2013 / 02:19
6

Se você está no linux, faça

unless => 'ls /somefile'

ls retornará com um código de retorno diferente de zero se o arquivo não existir e a menos que permita que o exec seja executado se o teste retornar um código de retorno diferente de zero.

    
por 05.12.2013 / 20:29
0

No linux e no fantoche > 3.8, tente:

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

exec não será executado se /a/file.txt existir.

    
por 01.11.2016 / 06:40
0

Você pode querer considerar o uso de cria , que existe para essa finalidade :

exec { 'git add url':
  command => 'git remote add origin https://github.com/testing/puppet.git',
  creates => '/usr/local/bin/papply'
}
    
por 02.05.2017 / 18:21

Tags