उत्तरदायी: गिट मॉड्यूल लटक रहा है

मैं Ansible का उपयोग कर रहा हूँ और मुझे गिट मॉड्यूल काम करने में मुश्किल हो रही है। मैंने एक ही समस्या वाले लोगों की कई पोस्ट पढ़ी हैं, मैंने उत्तरदायी डॉक्टर को देखा, ठीक है मैंने लगभग हर चीज की कोशिश की। मुझे एक स्पष्ट ट्यूटोरियल मिला जब तक कि मैं गिट का उपयोग नहीं करता, लेकिन जब मैं अपने भंडार का उपयोग करता हूं तो मुझे एक समस्या होती है ...: / गिट कार्य बस लटकता है ... कोई त्रुटि नहीं, यह बस अटक गया है!

मेरी मेजबान फ़ाइल यहां दी गई है:

[web]
dev1 ansible_ssh_host=10.0.0.101 ansible_ssh_user=root

यह एक कंप्यूटर है जो मेरे कंप्यूटर पर वर्चुअलबॉक्स पर चल रहा है।

I took the playbook from this tutorial and did all the steps until step 08: https://github.com/leucos/ansible-tuto/tree/master/step-08

मैं इसे अपने वीएम पर चलाता हूं, यह ठीक काम करता है, फिर मैं अपने भंडार का उपयोग करने के लिए "अपना कोड तैनात" एक कार्य जोड़ता हूं ... लेकिन यह कार्य काम नहीं करता है। यह बिटबकेट पर एक निजी भंडार है। क्या इससे कोई फर्क पड़ता है?

- hosts: web
  tasks:

    - name: Deploy our awesome application
      action: git repo=https://github.com/leucos/ansible-tuto-demosite.git dest=/var/www/awesome-app
      tags: deploy

    - name: Deploy my code
      action: git repo=https://[email protected]/YAmikep/djangotutorial.git dest=/var/www/my-app
      tags: deploy

उपयोगकर्ता के साथ कुछ हो सकता है, या उपयोगकर्ता उत्तरदायी, या कुंजी, आदि चल रहा है, लेकिन मैंने घंटों के लिए आगे और आगे की कोशिश की और अब मैं और भी उलझन में हूं ... मुझे नहीं पता कि अब इसे डीबग करने के लिए क्या करना है और पता लगाएं कि क्या गलत है और मैं क्या खो रहा हूं।

धन्यवाद।

0
मैं व्यक्तिगत रूप से गिट रेपो तक पहुंचने के लिए HTTPS का उपयोग करने की अनुशंसा नहीं करता, जब तक कि आप बहुत सख्त फ़ायरवॉल (22 आउटबाउंड, हाँ के बिना) के पीछे न हों। यह बड़ी कमियों को दबाते समय समस्याएं पैदा कर सकता है, यह HTTP प्रॉक्सी सेटिंग्स पर बुरी तरह निर्भर हो सकता है, और निश्चित रूप से यह आपके रेपो के अलावा क्लींटक्स्ट में अपना पासवर्ड संग्रहीत करता है। एसएसएच निजी कुंजी, जो कि दूरस्थ मेजबानों के लिए एजेंट-अग्रेषित हैं, केवल पर्याप्त समय के लिए पर्याप्त हैं।
जोड़ा लेखक spacediver, स्रोत
@avelis आपकी टिप्पणी ने आज मुझे मदद की। यूआरएल को https से git में बदल दिया
जोड़ा लेखक sankargorthi, स्रोत
एक सामान्य नोट के रूप में। एक अज्ञात कार्य में एक परिनियोजन कुंजी के साथ वाक्यविन्यास https://github.com/account/repo-name.git काम नहीं करेगा । हालांकि, एक वैध कार्य में एक वैध तैनाती कुंजी के साथ वाक्यविन्यास [email protected]: खाता/repo-name.git काम करेगा । वाक्यविन्यास सूक्ष्म लेकिन ध्यान देने योग्य है।
जोड़ा लेखक avelis, स्रोत

5 उत्तर

यदि उपयोगकर्ता को पासवर्ड की आवश्यकता होती है, तो गिट मॉड्यूल लटका सकता है अगर कोई प्रदान नहीं किया जाता है, जबकि गिट निष्पादन योग्य पृष्ठभूमि में इसके लिए संकेत देता है। अपने रेपो पैरामीटर के लिए, https://YAmikep: {yourpassword} @ bitbucket.org/YAmikep/djangotutorial.git का उपयोग करने का प्रयास करें। या, इसके बजाय गिट/एसएसएच कुंजी का उपयोग करने का प्रयास करें ताकि कोई पासवर्ड आवश्यक न हो।

0
जोड़ा
मैं एसएसएच कुंजी और एसएसएच एजेंट का उपयोग कर रहा हूं लेकिन मैं इस ट्यूटोरियल का पालन करने की कोशिश कर रहा हूं: stavros.io/posts/example-provisioning-and-deployment-ansible anb यह विशिष्ट बनाए गए उपयोगकर्ता के साथ काम नहीं करता है ... मैं गिट काम कर सकता हूं लेकिन प्रोजेक्ट के लिए बनाए गए उपयोगकर्ता के साथ नहीं।
जोड़ा लेखक Michael, स्रोत
@YAmikep - क्या आपने [email protected] के रेपो पते के साथ प्रयास किया है: YAmikep/djangotutorial.git ? आपके द्वारा ऊपर दिया गया उदाहरण HTTPS प्रोटोकॉल का उपयोग कर रहा है, जिससे बिटबकेट को कुंजी का उपयोग करने के बजाय प्रमाणीकृत करने के लिए पासवर्ड के लिए संकेत मिलेगा। गीथूब एक ठीक काम करता है क्योंकि यह एक सार्वजनिक रेपो है, लेकिन बिटबकेट को यमिकप के लिए प्रमाण पत्र की आवश्यकता है।
जोड़ा लेखक mragh, स्रोत
यह मुझे प्रमाणीकरण विफल देता है, हालांकि उपयोगकर्ता नाम और पासवर्ड सही हैं, कोई विचार क्यों?
जोड़ा लेखक Alfonso Pérez, स्रोत

मुझे इसका सामना करना पड़ा है, और मेरे मामले में गिट एक मेजबान (bitbucket.org) के लिए नई एसएसएच कुंजी की पुष्टि करने पर लटका हुआ है। इसे sshknownhosts मॉड्यूल द्वारा हल किया जा सकता है, जो गिट करने से पहले चलाया जाता है। होस्ट पर ssh/known_hosts, ताकि बाद में गिट को उस पर लटकने की आवश्यकता न हो।

लेकिन संभावित सुरक्षा मुद्दों के बारे में सावधान रहें, मॉड्यूल दस्तावेज पढ़ें।

0
जोड़ा
इसने मेरे लिए फांसी गिट समस्या हल की। sshknownhosts मेरे लिए काम नहीं किया, लेकिन यह एक किया: github.com/brycebaril/ansible-known_hosts
जोड़ा लेखक mahemoff, स्रोत
अगर मैं कर सकता तो मैं कर देता!
जोड़ा लेखक mahemoff, स्रोत
अच्छा! जवाब स्वीकार करने के लिए स्वतंत्र महसूस करें;) यूपीडी। ठीक है, आप टीएस% नहीं हैं)
जोड़ा लेखक spacediver, स्रोत

fwiw मैंने यह स्पष्ट रूप से कई एसएसएच एजेंटों (ओएसएक्स क्लाइंट) के चलते भी किया है। द्वारा तय

killall ssh-agent && eval `ssh-agent` && ssh-add -K

0
जोड़ा

गिट मॉड्यूल फांसी क्यों हो सकता है इसके कुछ कारण हैं, लेकिन सबसे संभव यह है कि git clone कमांड एक पुष्टि के लिए प्रतीक्षा कर रहा है यदि होस्ट कुंजी को आपके सर्वर के ज्ञात होस्ट में जोड़ा जाना चाहिए। यह सत्यापित करने के लिए कि क्या यह समस्या ध्वज के साथ उत्तरदायी निष्पादित है: - verbose , ताकि यह वर्बोज़ मोड में चलती है, इससे आपको त्रुटि के बारे में अधिक जानकारी मिल जाएगी।

यदि आप पुष्टि करते हैं कि ज्ञात मेजबान समस्या है, तो आपके पास दो विकल्प हैं:

Solution 1:

इस समस्या से बचने के लिए git मॉड्यूल accept_hostkey पैरामीटर का उपयोग करें ।

- name: ensure jQuery repo is available
  git: [email protected]:jquery/jquery.git version=master accept_hostkey=True

Solution 2:

कोर ansible-sshknownhosts तृतीय-पक्ष मॉड्यूल का उपयोग करें : //docs.ansible.com/git_module.html "> git मॉड्यूल:

- name: ensure github is a known host
  action: sshknownhosts host=github.com state=present 

- name: ensure jQuery repo is available
  git: [email protected]:jquery/jquery.git version=master accept_hostkey=True

चूंकि ज्ञातहोस्ट कोर उत्तरदायी मॉड्यूल नहीं है, इसलिए आपको इसे पहले इंस्टॉल करना होगा, कृपया github देखें रेपो डॉक्स अधिक जानकारी के लिए इसे कैसे स्थापित करें।


एक और समाधान एसएसएच होस्ट कुंजी जांच को अक्षम करना होगा, लेकिन इसमें सुरक्षा प्रभाव पड़ता है, इसलिए जब तक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं, इससे बचने के लिए सबसे अच्छा है।

0
जोड़ा
action: sshknownhosts को sshknowhosts: host = ... के रूप में लिखा जा सकता है?
जोड़ा लेखक chicks, स्रोत
accept_hostkey ध्वज मेरे लिए काम नहीं करेगा। मैंने -o StrictHostKeyChecking = no को ssh_opts में जोड़ा और यह काम किया।
जोड़ा लेखक chishaku, स्रोत

मैंने मूल रूप से सब कुछ करने की कोशिश की (कुंजी स्वीकार करना, एसएसएच कॉन्फ़िगरेशन चेंज, ज्ञात_होस्ट्स फ़ाइल, एसएसएच-एजेंट अग्रेषण, और और क्या भूल गया) कोई सफलता नहीं।

मेरे सभी बालों को खींचने के बाद, मैंने अंततः इस तथ्य को कम किया कि एसएसएच निजी कुंजी को पासफ्रेज़ की आवश्यकता हो सकती है!

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

0
जोड़ा
यह एक lifesaver है!
जोड़ा लेखक physicalattraction, स्रोत
$ ssh-keygen और पूछे जाने पर रिटर्न दबाएं "पासफ्रेज दर्ज करें (कोई पासफ्रेज के लिए खाली नहीं):" लेकिन अन्य संभावनाएं हैं, जो समान लक्षण पैदा कर सकती हैं। अन्य सुझाए गए विकल्पों को आज़माएं।
जोड़ा लेखक silverdr, स्रोत
बिल्कुल यही ^ ^ (यह मुझे बहुत समय बचाया)
जोड़ा लेखक Benz, स्रोत
आप एक psswordless कुंजी कैसे बनाते हैं? मैंने एक रिक्त पासवर्ड का उपयोग करने की कोशिश की, लेकिन यह अभी भी लटकता है (शायद किसी को एंटर दबाए रखने की प्रतीक्षा कर रहा है)
जोड़ा लेखक Laurynas Mališauskas, स्रोत