कठपुतली और लॉन्च सेवाओं?


15

हमारे पास पपेट के साथ कॉन्फ़िगर किया गया उत्पादन वातावरण है, और हमारी विकास मशीनों पर एक समान वातावरण स्थापित करने में सक्षम होना चाहते हैं: रेड हैट्स, यूबंटस और ओएसएक्स का मिश्रण। जैसा कि उम्मीद की जा सकती है, OSX यहाँ बाहर अजीब आदमी है, और दुख की बात है कि मुझे इसे काम करने में बहुत परेशानी हो रही है।

मेरा पहला प्रयास macportsनिम्नलिखित घोषणा का उपयोग कर रहा था :

package { 'rabbitmq-server':
    ensure   => installed,
    provider => macports,
}

लेकिन यह, दुख की बात है, निम्नलिखित त्रुटि उत्पन्न करता है:

Error: /Stage[main]/Rabbitmq/Package[rabbitmq-server]: Could not evaluate: Execution of '/opt/local/bin/port -q installed rabbitmq-server' returned 1: usage: cut -b list [-n] [file ...]
       cut -c list [file ...]
       cut -f list [-s] [-d delim] [file ...]
    while executing
"exec dscl -q . -read /Users/$env(SUDO_USER) NFSHomeDirectory | cut -d ' ' -f 2"
    (procedure "mportinit" line 95)
    invoked from within
"mportinit ui_options global_options global_variations"

अगला, मुझे लगा कि मैं homebrewएक कोशिश करूँगा। डिफ़ॉल्ट रूप से कोई पैकेज प्रदाता उपलब्ध नहीं है, लेकिन कठपुतली-होमब्रेव आशाजनक लग रहा था। यहाँ, मैं बहुत आगे बढ़ गया, और वास्तव में काम करने के लिए स्थापित करने में कामयाब रहा।

package { 'rabbitmq':
    ensure   => installed,
    provider => brew,
}
file { "plist":
    path   => "/Library/LaunchDaemons/homebrew.mxcl.rabbitmq.plist",
    source => "/usr/local/opt/rabbitmq/homebrew.mxcl.rabbitmq.plist",
    ensure => present,
    owner  => root,
    group  => wheel,
    mode   => 0644,
}
service { "homebrew.mxcl.rabbitmq":
    enable      => true,
    ensure      => running,
    provider    => "launchd",
    require     => [ File["/Library/LaunchDaemons/homebrew.mxcl.rabbitmq.plist"] ],
}

यहाँ, मुझे कोई त्रुटि नहीं मिली। लेकिन RabbitMQ या तो शुरू नहीं होता (जैसा कि अगर मैं एक मैनुअल लोड करता हूं launchctl)


    [... snip ...]
    Debug: Executing '/bin/launchctl list'
    Debug: Executing '/usr/bin/plutil -convert xml1 -o /dev/stdout
        /Library/LaunchDaemons/homebrew.mxcl.rabbitmq.plist'
    Debug: Executing '/usr/bin/plutil -convert xml1 -o /dev/stdout
        /var/db/launchd.db/com.apple.launchd/overrides.plist'
    Debug: /Schedule[weekly]: Skipping device resources because running on a host
    Debug: /Schedule[puppet]: Skipping device resources because running on a host
    Debug: Finishing transaction 2248294820
    Debug: Storing state
    Debug: Stored state in 0.01 seconds
    Finished catalog run in 25.90 seconds

मैं क्या गलत कर रहा हूं?

संपादित करें : रिकॉर्ड के लिए, अब हम अपने OSX मशीनों पर बजाय Vagrant VMs के साथ ऐसा कर रहे हैं, लेकिन मूल समाधान अभी भी पसंद किया जाएगा।


आप कठपुतली का कौन सा संस्करण चला रहे हैं? क्या आप उपरोक्त अभिव्यक्तियों के साथ प्रयास कर रहे हैं puppet apply manifest.pp?
चुतज

डिबग में कोई 'वास्तविक' त्रुटि नहीं लगती है। क्या आप /pStreet/var/log/system.log में जांच कर सकते हैं कि क्या कोई संबंधित प्रविष्टियाँ हैं?
जॉन सिउ

@chutz: sudo puppet apply manifest.ppकठपुतली 3.0.1 पर चल रहा है , फैक्टर 1.6.16 @ जॉनसन: कुछ भी नहीं है, दुख की बात है।
जोएल वेस्टबर्ग

मुझे नहीं लगता कि आपका किसी भी तरह से गलत हो रहा है। हालाँकि, मुझे लगता है कि आपको एक बार फिर प्रोग्रामिंग दृष्टिकोण की जांच करनी चाहिए।
टॉबी

क्या आप जानते हैं कि कठपुतली लॉन्चड प्लिस्ट को लोड कर रही है या नहीं? यदि नहीं, तो आपको टिल रिबूट की प्रतीक्षा करने, या स्थापित करने के बाद एक लॉंचल लोड प्लिस्ट स्टेप को मजबूर करने की आवश्यकता होगी। सुनिश्चित करें कि प्लिस्ट में लोड फ्लैग सेट पर रन है। क्या आप सेवा नाम के साथ लॉन्च और लिस्ट के आउटपुट को पोस्ट कर सकते हैं।
एलेक्स

जवाबों:


1

दुर्भाग्य से, विन्यास प्रबंधन उपकरण वास्तव में डेस्कटॉप मशीनों के लिए अच्छा काम नहीं करते हैं। वैग्रंट (जैसे आपके पास) जैसे टूल का उपयोग करना बेहतर है ।

वैग्रांट एक ओपन-सोर्स वर्चुअलाइजेशन सॉफ़्टवेयर है जो आपको हाइपरविज़र्स के माध्यम से वातावरण को दोहराने की अनुमति देता है। अपने मैक पर, मैं इसे Oracle के VirtualBox (ज्यादातर शेफ परीक्षण के लिए) के साथ उपयोग करता हूं। VirtualBox भी मुफ्त है। वैग्रंट का मूल इरादा डेवलपर्स को काम करने के लिए लगातार वातावरण बनाने की अनुमति देना था (यानी: जो आप देख रहे थे, लेकिन यह नहीं कि आप इसे कैसे काम करना चाहते हैं)। वैग्रंट को पपेट के साथ जोड़ा जा सकता है, इन उदाहरणों को देखें


0

एक प्रकार का जानवर बल दृष्टिकोण:

class rabbitmqosx {    
    exec { "rabbitmqosx":
           command =>  "/path/to/rabbitmq",
           unless => [ 
                       "/bin/ps |grep -c rabbitmq" 
                     ]
         }

node fancymac { include "rabbitmqosx }

0

यकीन नहीं होता कि यह अभी भी एक मुद्दा है लेकिन ऐसा लग रहा है कि यह 3.1.0 में तय किए गए लॉन्च प्रदाता के साथ एक बग था। बग: https://projects.puppetlabs.com/issues/16271

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