2012-03-23 12 views
10

मेरे पास एक काम करने वाला गिटोलाइट सर्वर है। हालांकि, मैं इसे एक समान विन्यास में ले जाना चाहता हूं, लेकिन एक बड़ी मशीन पर। भले ही मेरे पास गिटोलाइट काम कर रहा है, मैं इसके तहत तारों के बारे में निश्चित नहीं हूं। मुख्य रूप से एसएसएच के साथ इसका रिश्ता।मूविंग गिटोलाइट सर्वर

मैं सिर्फ संकुल gitolite, Git कोर स्थापित करना चाहते हैं। और गिट उपयोगकर्ता के लिए भंडार निर्देशिकाओं को ले जाएं। कुंजियों में से कोई भी बदलने की जरूरत नहीं है। क्या ये सही है ? वर्तमान सर्वर पर गिटोलाइट के कॉन्फ़िगरेशन संबंध क्या हैं। मैं Ubuntu

मैं विशेष रूप से जीएल-सेटअप है, जो काम किया है से उलझन में था के साथ काम कर रहा हूँ, लेकिन मेरे प्रक्रिया के बारे में अंधेरे में छोड़ देता है।

धन्यवाद

उत्तर

9

तुम क्या आवश्यकता होगी अपने ssh config स्थानांतरित करने के लिए भी है:

~/.ssh/authorized_keys 

करने के लिए SSH द्वारा इस्तेमाल किया और Gitolite द्वारा विन्यस्त फ़ाइल है:

  • सूची सभी अधिकृत सार्वजनिक कुंजी
  • एक forced-command script
  • के साथ जुड़े
  • gitolite स्क्रिप्ट का अधिकार उपयोगकर्ता नाम पारित

देखें "How Gitolite uses ssh"


ओपी पुष्टि करता है कि मुद्दा था और Gitolite प्रलेखन के लिए बताते हैं:
"moving the whole thing from one server to another":
(ध्यान दें: इस 'g2'; ie Gitolite V2 के लिए है, लेकिन यह विचार Gitolite V3 or 'g3' के लिए एक ही है) इस प्रक्रिया के पीछे

विचार एस एस एक नया Gitolite उदाहरण बनाते हैं और फिर पुश करने के लिए अपने मौजूदा Gitolite रेपो, जो अपने नए सर्वर आप के लिए ~/.ssh authorized_keys में स्वचालित रूप से सभी अपने वर्तमान मौजूदा कुंजी redeclare होगा।

  • गिटोलाइट स्थापित करें। जीएल-सेटअप चरण में प्रयोग किया जाता pubkey के बारे में चिंता मत करो - उदाहरण के लिए इस ठीक करना होगा:
 
    ssh-keygen -q -N '' -f dummy 
    gl-setup -q dummy.pub 
  • संपादित rc फ़ाइल वर्ष के समान सेटिंग ।
  • एकमुश्त पूरी फ़ाइल की नकल न करें - चर (विशेष रूप से GL_PACKAGE_CONF और GL_PACKAGE_HOOKS) के कुछ स्थापना निर्भर कर रहे हैं और छुआ नहीं किया जाना चाहिए!
    एक diff या एक vimdiff करो और भर में आप केवल क्या पता है कि तुम पुराने सर्वर पर परिवर्तित कॉपी।
  • पुराने सर्वर को अक्षम करें ताकि आपके उपयोगकर्ता इसमें कोई भी परिवर्तन न करें।
    ऐसा करने के कई तरीके हैं, लेकिन सबसे सरल पुराने सर्वर पर ~/.gitolite.rc के शीर्ष पर इस लाइन डालने के लिए है:
 
    exit 1; 
  • में $REPO_BASE की सामग्री की प्रतिलिपि नए सर्वर पर $REPO_BASE पर पुराना सर्वर।
    डिफ़ॉल्ट रूप से, जैसा कि आप जानते हैं, ये $HOME/repositories दोनों हैं।
  • chown -R यदि आप रूट का उपयोग करके कॉपी करते हैं तो सही उपयोगकर्ता को फ़ाइलें।
  • हुक
 
    gl-setup 
  • ट्रिगर व्यवस्थापक रेपो
 
    git clone repositories/gitolite-admin.git /tmp/gitolite-admin 
    cd /tmp/gitolite-admin 
    git commit --allow-empty -m 'trigger compile on new server' 
    gl-admin-push -f 
+1

रीप्ले के लिए धन्यवाद। लिंक जो सबसे अधिक मदद करता है – jeremyvillalobos

+0

रीप्ले के लिए धन्यवाद। लिंक जो सबसे ज्यादा मदद करता है http://sitaramc.github.com/gitolite/moveserver.html है। मुझे ग्लो-एडमिन-पुश कमांड का उपयोग करने के लिए नवीनतम गिटोलाइट को चेकआउट करना पड़ा। काम किया जाता है ... धन्यवाद – jeremyvillalobos

+0

@ उपयोगकर्ता 1052943: उत्कृष्ट। मैंने उस प्रक्रिया को अधिक दृश्यता के उत्तर में शामिल किया है। – VonC

13

निर्देश के लिए Gitolite वी 3

01 को बदल दिया है करने के लिए एक धक्का अप तय

(http://gitolite.com/gitolite/rare.html से कॉपी किया गया):

  1. नए सर्वर पर gitolite स्थापित करें, पुराने सर्वर के लिए के रूप में व्यवस्थापक के लिए एक ही कुंजी का उपयोग कर।

  2. पुराने सर्वर से .gitolite.rc फ़ाइल कॉपी करें, इसे ओवरराइट करें।

  3. पुराने सर्वर को अक्षम करें ताकि लोग इसे धक्का न दें। ऐसा करने के कई तरीके हैं, लेकिन सबसे सरल पुराने सर्वर पर ~/.gitolite.rc के शीर्ष पर exit 1; डालने के लिए है:

  4. gitolite-admin सहित पुराने सर्वर, से इस पर कॉपी सभी रेपोस। सुनिश्चित करें कि फ़ाइलों को सही स्वामित्व और अनुमतियों के साथ समाप्त हो; यदि नहीं, तो उन्हें चोटी/chmod।

  5. रन gitolite setup

  6. पुराने गिटोलाइट-एडमिन के क्लोन पर, नए सर्वर को इंगित करने के लिए एक नया रिमोट जोड़ें (या मौजूदा एक बदलें) जोड़ें। फिर git push -f इस रिमोट पर।

+0

मैं इस प्रक्रिया का उपयोग गिटोलाइट v3.5.2-5 के साथ करता हूं और यह बिना किसी समस्या के काम करता है। – gontard

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