एकल कठपुतली मॉड्यूल को लागू करते समय पथ कैसे सेट करें?


12

मैं इस तरह से एक एकल मॉड्यूल चलाने की कोशिश कर रहा हूं:

puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'

हालांकि, मुझे इस तरह की त्रुटि मिलती है, यह दर्शाता है कि रास्ता निर्धारित नहीं है

Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.

मैं ऐसे हर स्थान पर स्पष्ट रूप से पथ निर्दिष्ट नहीं करना चाहता, और यह पूर्ण कठपुतली चलाने के भाग के रूप में ठीक काम करता है। एकल मॉड्यूल को चलाते समय मैं पथ को कैसे निर्दिष्ट कर सकता हूं?


1
क्या आप कृपया उचित उत्तर स्वीकार कर सकते हैं?
kenorb

जवाबों:


15

किसी Execसंसाधन में कमांड को या तो पूरी तरह से योग्य होना चाहिए (अर्थात के /usr/bin/testबजाय test) या pathउस Execसंसाधन की विशेषता को सेट करना होगा।

यदि आप कठपुतली मेनिफ़ेस्ट (मोड) को संशोधित कर सकते हैं, तो आप pathसभी Execसंसाधनों के लिए एक डिफ़ॉल्ट विशेषता सेट करने के लिए बस निम्नलिखित परिभाषा जोड़ सकते हैं /bin:

Exec { path => "/bin" }

अधिक (कम या अधिक) गंदे वर्कअराउंड के रूप में आप कमांड लाइन पर pathकिसी भी Execसंसाधन के लिए डिफ़ॉल्ट सेट कर सकते हैं :

$ puppet apply --verbose -e 'Exec { path => "/bin" }' your_manifest.pp

प्रलेखन बिंदु:


2

वह .. एक पूर्ण रन के हिस्से के रूप में काम नहीं करना चाहिए। यह unlessकमांड में निष्पादन योग्य के लिए एक पूर्ण पथ की आवश्यकता है । हो सकता है कि आपको एक वैश्विक फ़ाइल में एक पथ सेट मिला हो जो आपके पूर्ण रनों का हिस्सा हो?

unless => '/usr/bin/[ -e "${logfile}" ]'इसके बजाय कोशिश करें ।


1

मैं शेन से सहमत हूं कि डिफ़ॉल्ट पथ संभवतः एक वैश्विक रूप से स्कोप्ड मैनिफ़ेस्ट में सेट है। आप ऐसा ही कर सकते हैं लेकिन आप इसे एक तर्क के रूप में पारित नहीं कर सकते, इसलिए या तो स्टडिन का उपयोग करें:

$ puppet apply -v --modulepath=moduleshere --noop <<EOF
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin" }
include myclass
EOF

या Exec डालें और लाइनों को शामिल example.ppकरें और फिर उपयोग करें puppet apply -v ... example.pp


1

आपको पूरी तरह से योग्य पथ का उपयोग करने की आवश्यकता है।

उदाहरण के लिए या तो:

exec { "sample":
  command => "/usr/bin/test",
}

या:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.