2010-03-15 14 views
15

मैं Git प्लगइन एक बिलाव Windows सेवा पर चल रहा है के साथ हडसन (सतत एकीकरण प्रणाली) मिल गया है के साथ हडसन और Git प्लगइन को कैसे कॉन्फ़िगर करें। msysgit स्थापित है और msysgit bin dir पथ में है। पुटी/पेजेंट/प्लिंक स्थापित हैं और msysgit का उपयोग करने के लिए कॉन्फ़िगर किया गया है।एक SSH कुंजी

जब मैं एक नौकरी कि Git भंडार मैं निम्नलिखित त्रुटि मिलती है क्लोन करने के लिए प्रयास करता है चलाते हैं:

$ git clone -o origin [email protected]:project.git "e:\HUDSON_HOME\jobs\Project Trunk\workspace" 
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:project.git 
ERROR: Cause: Error performing git clone -o origin [email protected]:project.git e:\HUDSON_HOME\jobs\Project Trunk\workspace 
Trying next repository 
ERROR: Could not clone from a repository 
FATAL: Could not clone 
hudson.plugins.git.GitException: Could not clone 
  1. -ओ मूल Git @ होस्ट नाम Git क्लोन चल रहा है: project.git "ई: \ HUDSON_HOME \ कमांड लाइन से जॉब्स \ प्रोजेक्ट ट्रंक \ वर्कस्पेस "त्रुटि के बिना काम करता है।
  2. मैंने पुष्टि की है कि मेरी समस्या के रूप में एक ही Hudson git clone error क्योंकि Git रास्ते में है और मैं हडसन की विन्यस्त सिस्टम पृष्ठ पर Git निष्पादन के बारे में कोई त्रुटि नहीं मिलता नहीं है।

इस ओर जाता है मुझे विश्वास है समस्या उपयोगकर्ता के लिए जो बिलाव/हडसन Windows सेवा (स्थानीय सिस्टम) का मालिक कोई SSH कुंजी Git भंडार क्लोन बना लिया जाएगा करने के लिए स्थापित किया है कि।

मेरे सवाल है, मैं कैसे इतना है कि Git प्लगइन/msysgit जब क्लोन करने के लिए कोशिश कर रहा एक विशेष SSH कुंजी का उपयोग करने जानते चीजों को सेट अप कर सकते हैं? मुझे नहीं लगता कि पेजेंट काम करेगा क्योंकि टोमकैट सेवा "स्थानीय सिस्टम" उपयोगकर्ता के रूप में चल रही है, लेकिन मैं गलत हो सकता हूं। मैंने पेजेंट को एक सेवा के रूप में सेट करने का प्रयास किया है (runassvc.exe का उपयोग करके), उपयुक्त कुंजी पास कर रहा है, और इसे "स्थानीय सिस्टम" के रूप में चलाया जा रहा है। टॉमकैट/हडसन सेवा पेजेंट सेवा से कुंजी देखने में सक्षम नहीं प्रतीत होती है। क्या कुंजी स्थापित करने के लिए कोई और तकनीक है?

धन्यवाद।

संपादित करें: http://n4.nabble.com/Hudson-with-git-and-ssh-td375633.html पर चर्चा से पता चलता है कि किसी एक समान प्रश्न था। एसएसएच एजेंट का सुझाव दिया गया था और यह टूल msysgit के साथ आता है लेकिन मुझे यकीन नहीं है कि इसे हडसन सेवा के साथ कैसे उपयोग किया जाए। फिर भी, अगर कोई अंतराल में भर सकता है तो अच्छा सुराग। लिंक के साथ टिप्पणी के लिए पीटर के लिए धन्यवाद।

इसके अलावा, http://n4.nabble.com/questions-about-git-and-github-plug-ins-td383420.html पर चर्चा एक ही सवाल के साथ शुरू होता है। मैं उस धागे को पुनर्जीवित करने की कोशिश कर रहा हूं।

+0

यहां एक नज़र डालें http://n4.nabble.com/Hudson-with-git-and-ssh-td375633.html –

+0

धन्यवाद पीटर। मैं उस धागे में भी आया था। मुझे यकीन नहीं था कि हडसन के साथ सेवा के रूप में चल रहे एसएसएच एजेंट का उपयोग कैसे करें। मैं यह भी उम्मीद कर रहा था कि उस चर्चा के बाद से एक और आक्रामक विधि विकसित की गई थी। एसएसएच एजेंट का उल्लेख करने के लिए मैं पोस्ट संपादित करूंगा। – jlpp

उत्तर

6

हम हडसन का उपयोग करें, एक ssh कुंजी के साथ Git से स्रोत कोड बाहर की जाँच। हालांकि, वास्तव में हमारे पास एक उबंटू सर्वर पर हडसन है। हडसन की ssh कुंजी युग्म रहता ~hudson/id_rsa में और ~hudson/id_rsa.pub

तो, हमारी सलाह अनुकूल के लिए एक Windows सेट-अप: हमारी टीम पर

Windows- आधारित डेवलपर्स MSysGit का उपयोग करें और नियमित रूप से SSH पर Git के माध्यम से कोड की जाँच - लेकिन पुट्टी/पेजेंट का उपयोग नहीं कर रहा है। लॉग इन के साथ कुछ प्रोटोकॉल त्रुटियों के कारण हमने पेजेंट को दर्दनाक पाया। इसके बजाए, उन्होंने ओपनएसएसएच का उपयोग करने के लिए गिट कॉन्फ़िगर किया (यह इंस्टॉल के दौरान विकल्पों में से एक है)। उनकी सार्वजनिक/निजी कुंजी जोड़ी तब ~username/id_rsa और ~username/id_rsa.pub में रहती है और यह सब काम करती है।

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

आप कुंजी उत्पन्न करने के लिए PuttyGen का उपयोग कर सकते हैं। हालांकि, यदि आप पेजेंट की बजाय ओपनएसएसएच का उपयोग कर रहे हैं, तो आपको एक उपयुक्त निजी कुंजी (पुट्टीगेन के शीर्ष पर मेनू में से एक) को निर्यात करने और इसे id_rsa के रूप में सहेजने की आवश्यकता होगी, और PuttyGen के GUI से सार्वजनिक कुंजी को कॉपी और पेस्ट करें (यह दिखाता है लेकिन OpenSSH के लिए एक उपयुक्त संस्करण सहेज नहीं पाएगा) और इसे id_rsa.pub के रूप में सहेजें।ऐसा इसलिए है क्योंकि पुटी ओपनएसएसएच की तुलना में कुंजी के लिए थोड़ा अलग प्रारूप का उपयोग करता है।

वैकल्पिक रूप से, निश्चित रूप से, आप हमेशा अपने हडसन सर्वर एक ubuntu सर्वर पर होस्ट कर सकते हैं (या तो एक असली एक या VirtualBox के माध्यम से)

+0

यह एक अच्छा जवाब है, विलियम। मुझे लगता है कि अगर मैं उस उपयोगकर्ता को बदलना चाहता हूं जो "स्थानीय सिस्टम" से टॉमकैट/हडसन विंडोज सेवा चलाता है तो मैं इस दृष्टिकोण का उपयोग करने में सक्षम हो सकता हूं। हालांकि मैं ऐसा करने से पहले, मैं सोच रहा हूं कि सेवा स्वामी को बदले बिना ऐसा करने का कोई तरीका है या नहीं।मैं दूसरों को जवाब देने का मौका दूंगा। एक बार फिर धन्यवाद। – jlpp

+1

यह वह दृष्टिकोण है जिसे हमने अपने विंडोज़ गुलाम पर उपयोग किया है। हडसन नाम का एक उपयोगकर्ता सेटअप किया गया था, निजी कुंजी को ~ हडसन /। एसएसएच/आईडी_आरएसए में रखा गया था, गिट सर्वर ~ हडसन /। एसएसएच/ज्ञात_होस्ट्स में पंजीकृत है, और हडसन गुलाम सेवा को हडसन उपयोगकर्ता के रूप में लॉग ऑन करने के लिए बदल दिया गया था। मेरे पास एकमात्र नोट यह है: यदि विंडोज इंस्टॉलेशन पर साइगविन स्थापित है, तो सुनिश्चित करें कि आपने हडसन को CYGWIN वैरिएबल को खाली करने के लिए सेट किया है, अन्यथा mingw निजी कुंजी अनुमति त्रुटियों को फेंक देगा। – Guildencrantz

+1

@jlpp: हम हडसन में चेकआउट बीजीआर शाखाओं की जांच करते समय एक ही समस्या में भाग गए, हम स्थानीय उपयोगकर्ता खाते के तहत टॉमकैट विंडोज सेवा चला रहे थे, और यह ठीक काम कर रहा है। – Pete

7

एक अन्य महत्वपूर्ण टिप्पणी खिड़कियों के लिए (जो मैं इस सवाल का जवाब करने के लिए संलग्न करने के लिए चाहते हैं, क्योंकि मैंने पाया यह प्रश्न बहुत जल्दी है, लेकिन मुझे यह अतिरिक्त विवरण मिला जो मुझे खोज के घंटों के बाद ही चाहिए):

गिट चाहता है कि% HOME% पर्यावरण परिवर्तक आपके उपयोगकर्ता की निर्देशिका (आईई सी: \ दस्तावेज़ और सेटिंग्स \ hudsonuser) पर सेट हो ... कुंजी फाइलों के साथ .ssh dir के लिए वहां देखने के लिए यह कैसे पता है!

मुझे यह here on server fault मिला (लेकिन इसे ऊपर उठाने के लिए पर्याप्त प्रतिष्ठा नहीं है)।

+1

धन्यवाद! मैंने घर जोड़ा है और यह मेरे लिए काम किया है! –

3

मैंने पाया मैं एक अलग कील का उपयोग करने के उबंटू पर इस काम कर पाने के लिए था (जेनकींस, नहीं हडसन, हालांकि अन्यथा यह मूल रूप से एक ही समस्या की तरह लग रहा है। मैं %HOME% वातावरण चर जेनकींस जीयूआई के माध्यम से जाँच की और यह सही देखा

कुंजी मैं पहचान करने के लिए जेनकींस Github निजी भंडार पहले से ही अस्तित्व में उपयोग करना चाहता था मैं /var/lib/jenkins/.ssh करने के लिए उन की नकल की -।।। दोनों id_rsa और id_rsa.pub कि कुंजी और खाते के लिए फ़ाइल

प्रारंभ में मैंने इन्हें "root" के रूप में कॉपी किया था और वे जेनकिन्स तक पहुंच योग्य नहीं थे इसलिए मुझे अभी भी त्रुटियां मिल रही थीं (भ्रमित रूप से, त्रुटियों ने मुझे पासफ्रेज दर्ज करने के लिए कहा था जब कोई नहीं था)। इसलिए मैंने , chmod और chgrp को जेनकिंस पर उपलब्ध कराने के लिए सेट किया था।

मैंने जेनकिंस उपयोगकर्ता के रूप में लॉग इन करते समय एक गिट क्लोन करके इसका परीक्षण किया।

मुझे पता है कि यह पथ उबंटू के लिए विशिष्ट है, लेकिन एक ही सेटअप यह सुनिश्चित कर रहा है कि मुख्य फाइलें उपलब्ध हैं, सही जगह पर, और कमांड लाइन पर परीक्षण git clone git:myrepo कर रहा है, कम से कम यह पहचान सकता है कि विंडोज अलग है।

0

तहत

सी अपने .ssh फ़ोल्डर में डाल दिया: \ Windows \ SysWOW64 \ config \ systemprofile

या

C: \ Windows \ System32 \ config \ systemprofile

अपने पर निर्भर करता है सिस्टम 32 या 64 है।

यह "स्थानीय सिस्टम" के लिए "उपयोगकर्ता" निर्देशिका है।

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