2012-06-23 19 views
8

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

मैंने कई लोगों में असफल होने के बाद रिपो को क्लोन करने के लिए एक सरल लिपि लिखी, कठपुतली को सीधे गिट कमांड चलाने के लिए कई तरीके दिए। किसी कारण से मैंने सोचा कि यह विधि मूर्खतापूर्ण होगी, लेकिन यह पता चला है कि मैं सोचने से बेहतर मूर्ख हूं।

#!/bin/bash 
if [ ! -d /vagrant/repo-one-dest ]; then 
    git clone [email protected]:/repo-one.git /vagrant/repo-one-dest 
fi 

if [ ! -d /vagrant/repo-two-dest ]; then 
    git clone [email protected]:/repo-two.git /vagrant/repo-two-dest 
fi 

exit 

निजी कुंजी ठीक तरह से स्थापित कर रहे हैं:

exec {"load-repos": 
    command =>"/bin/bash /vagrant/manifests/modules/scripts/clone_repos.sh", 
    require => Package["git-core"], 
    } 

यहाँ स्क्रिप्ट है। जब मैं वीएम में लॉग इन करता हूं और मैन्युअल रूप से bash clone_repos.sh चलाता हूं, तो सब कुछ काम करता है। इससे कोई फर्क नहीं पड़ता कि मैं कितनी बार योनि को पुनः लोड करता हूं और कठपुतली को अपनी चीज करने देता हूं, रेपो को कभी भी निष्पादन के माध्यम से लोड नहीं किया जाता है। मैं क्या खो रहा हूँ?

+0

पहले '[' परीक्षण पर गुम जगह। – ormaaj

+0

इसे इंगित करने के लिए धन्यवाद। दुर्भाग्यवश, यह एक कलाकृति है जिसे मैंने पोस्ट में पेश किया जब मैंने असली निर्देशिका को 'रेपो-वन-डेस्ट' के साथ बदल दिया। कमांडलाइन से चलते समय स्क्रिप्ट सही ढंग से कार्य करती है और इसमें स्थान होता है। मैंने वाक्यविन्यास त्रुटि को हटाने के लिए पोस्ट संपादित किया। – jeremiahs

+1

आपके एक्ज़िक ब्लॉक में 'लॉगआउटपुट => सत्य "जोड़ना परिणामस्वरूप अधिक आउटपुट हो सकता है जो डिबगिंग में मदद कर सकता है। आप एक फ़ाइल ["/vagrant/manifests/मॉड्यूल/स्क्रिप्ट/clone_repos.sh " ] आवश्यक अनुभाग में। कठपुतली कठपुतली को आपके वीएम पर धक्का देने से पहले स्क्रिप्ट निष्पादित करने का प्रयास कर रही है। – pwan

उत्तर

4

यह संभवतः इसलिए है क्योंकि जब आप vagrant ssh पर आमतौर पर vagrant उपयोगकर्ता (डिफ़ॉल्ट रूप से लॉग इन कर रहे हैं, हालांकि यह निश्चित रूप से कॉन्फ़िगरेशन के माध्यम से संशोधित किया जा सकता है)। vagrant उपयोगकर्ता का अनुमान है कि कुंजी ठीक से सेटअप है।

जब वग्रेंट आपके प्रावधान (कठपुतली, इस मामले में) चलाता है, हालांकि, यह sudo करता है, इसलिए यह रूट उपयोगकर्ता के रूप में चलता है।

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

+0

अच्छी अंतर्दृष्टि। सुनिश्चित नहीं है कि यह काम करता है, लेकिन ऐसा लगता है कि मैं अपने वर्कफ़्लो को बदलता हूं, और इस बिंदु पर मैं ठीक हूं कि चीजें कैसे हैं और शायद मेरी मूल योजना पर वापस नहीं जाएंगी। अगर मुझे कुछ खाली समय मिलता है तो मैं आखिर में देखें कि क्या यह मुद्दा है। – jeremiahs

संबंधित मुद्दे