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


11

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

回答:


22

これを試しましたか?

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

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

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

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

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


機能していません。このエラーメッセージが表示されました。評価できませんでした:コマンド '!'が見つかりませんでした
qinking126 2013

そしてこれ:onlyif => "test!-f / usr / local / bin / papply"
sebastien.prudhomme

=> '/ usr / local / bin / papply'が作成されます。ありがとうございます。更新をテストしてみましょう。htatoneが機能するかどうか確認してください。
qinking126 2013

1
onlyif => "test!-f / usr / local / bin / papply"も機能し、私が使用したいものでもあります。ありがとうございました。
qinking126 2013

7

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

unless => 'ls /somefile'

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


1

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

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

/a/file.txt存在する場合、execは実行されません。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.