web-dev-qa-db-ja.com

パペットはファイルが存在しない場合にのみ実行します

ファイル(/ 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"
    }
11
qinking126

これを試しましたか?

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

Puppetが「!」を使用できるかどうかわからないキャラクター

おそらくより良い代替手段:

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

コマンドが実際にファイルを作成しないという事実が気に入らなくても

22

Linuxを使用している場合は、

unless => 'ls /somefile'

lsは、ファイルが存在しない場合、ゼロ以外の戻りコードで戻ります。ただし、テストでゼロ以外の戻りコードが返された場合、実行中のexecのみを実行させない限り、.

7
Adam Henderson

Linuxとパペット> 3.8で試してください:

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

execは、/a/file.txtが存在します。

1
Felipe Alvarez

この目的のために存在する creates の使用を検討してください。

exec { 'git add url':
  command => 'git remote add Origin https://github.com/testing/puppet.git',
  creates => '/usr/local/bin/papply'
}
0