कठपुतली केवल तब निष्पादित होती है जब फ़ाइल मौजूद नहीं होती है


11

जब फ़ाइल (/ usr / स्थानीय / बिन / 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"

यकीन नहीं है कि कठपुतली 'का उपयोग कर सकते हैं!' चरित्र

शायद एक बेहतर विकल्प:

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

यहां तक ​​कि अगर मैं इस तथ्य को पसंद नहीं करता कि कमांड वास्तव में फ़ाइल नहीं बनाता है


काम नहीं कर रहा है, यह त्रुटि संदेश मिला है। मूल्यांकन नहीं कर सका: 'कमांड नहीं मिला'!
१.२२२

और यह: onlyif => "! परीक्षण -f / usr / स्थानीय / bin / papply"
sebastien.prudhomme

create => '/ usr / लोकल / बिन / पप्पी' काम करता है, धन्यवाद। मुझे अपने अपडेट का परीक्षण करने दें, देखें कि क्या htat एक काम करता है।
१.३६ पर १०

1
onlyif => "परीक्षण! -f / usr / स्थानीय / बिन / पप्पली" काम करता है, वह भी जिसे मैं उपयोग करना पसंद करता हूं। धन्यवाद।
qinking126

7

यदि आप linux पर हैं तो बस करें

unless => 'ls /somefile'

यदि फ़ाइल मौजूद नहीं है और जब तक इसका परीक्षण एक गैर-शून्य रिटर्न कोड नहीं देता है, तब तक ls एक गैर-शून्य रिटर्न कोड के साथ वापस आ जाएगा और जब तक कि इसे निष्पादित नहीं होने देगा।


1

Linux और कठपुतली पर> 3.8 प्रयास करें:

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

यदि /a/file.txtमौजूद है तो निष्पादन नहीं होगा ।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.