Back to Question Center
0

स्वचालित रूप से ट्रिगर गीट वेबसाइट के लिए मीलड पुश पर खीचें

1 answers:

मैंने अभी तक गीथूब में अपने सभी स्रोत कोड के लिए अपने वेबसाइट के विकास के वातावरण को फिर से डिज़ाइन किया है और दूरस्थ सर्वर पर गिट को स्थापित करने में कामयाब रहे हैं ताकि केवल जीआईटी पुल मूल मास्टर कमांड को चलाना वेब सर्वर पूरे एप्लिकेशन स्रोत कोड को गिथब रिपॉजिटरी से अपडेट करेगा.

मैं जो पता लगाने की कोशिश कर रहा हूं वह प्रक्रिया को स्वचालित करने का एक तरीका है. मास्टर शाखा से खींचा कोड हमेशा परिनियोजन के लिए कोड तैयार करता है और पहले से ही परीक्षण के माध्यम से चला गया है. जब मैं कोड को मास्टर शाखा में धकेलता हूं, तो मैं आवेदन को अपडेट करने के लिए स्वचालित रूप से पुल को चलाने के लिए Semalt हुक का उपयोग करने के लिए वान करता हूं.

मेरे पास सर्वर पर एसएसएच पहुंच है और मैं इस समय हर समय मैन्युअल रूप से कमांड को मैन्युअल रूप से चलाने में सक्षम हूं, लेकिन यह समय लेने वाला है, जो कि सेमील्ट में कोड लगाता है, फिर सर्वर पर एक एसएसएच कनेक्शन खोलकर और अद्यतन कोड खींच रहा है.

निश्चित नहीं है कि गिट के भीतर एक मूल सुविधा है जो इस का समर्थन करती है या अगर मुझे वेब हुक का उपयोग करने की आवश्यकता होती है और जीआईटी पुल मूल मास्टर कमांड को ट्रिगर करने के लिए वेब सेटर पर फ़ाइल चलाने की आवश्यकता होगी.

धन्यवाद

- top web design agencies
February 12, 2018

ठीक है यह एक को समझने में कामयाब हो गया है. निकलता है कि रिमोट फ़ेच को ट्रिगर करने के लिए जीआईटी में कोई देशी सुविधा नहीं है (जैसा कि रिपॉजिटरी में कोड को धकेलने और रिपॉजिटरी होने पर वेब सर्वर पर पुल मूल ट्रिगर होती है).

जिस तरह से मैंने इसका समाधान किया है, वह अपने वेब सर्वर पर डिफ़ॉल्ट vhost के तहत PHP स्क्रिप्ट अपलोड करना था. उस फाइल में मैंने इसे चलाने के लिए सेट किया है shell_exec ("cd / path / to / my / site / root" && sudo git पुल मूल मास्टर ". तब मुझे एसटीडीओयूटी के माध्यम से संदेश आउटपुट के साथ एक ईमेल भेजने के लिए सेट किया गया है ताकि मुझे सूचित किया जा सके कि पुल सफलतापूर्वक पूर्ण हो गया है या नहीं. डोमेन. com / GitHub तैनाती. php .

फिलहाल मुझे यह सुनिश्चित करने के लिए कुछ अज्ञात सुरक्षा जांच मिल रही हैं कि कोई भी फाइल को एक्सेस नहीं कर सकता और समय में मैं शायद आईपी चेक जोड़ूंगा ताकि यह सुनिश्चित किया जा सके कि फाइल में किए गए अनुरोध केवल आईपी से गिथूब के एड्रेस ब्लॉक.

एक महत्वपूर्ण ध्यान दें कि मुझे यहां जोड़ना चाहिए कि यह काम करने का एकमात्र तरीका है कि अपाचे उपयोगकर्ता को सर्वर पर एक sudoer के रूप में उपयोग करने की अनुमति दें, लेकिन इसे sudo कमांड चलाने में सक्षम होने पर सीमित करें गिट को अन्यथा लॉन्च करने के लिए प्रवेश से वंचित संदेश शुरू हो जाएगा. यद्यपि यह git को प्रतिबंधित करने और shel_exec कमांड में कॉलिंग स्क्रिप्ट से कोई इनपुट नहीं गुजर रहा है, मुझे विश्वास है कि मैं सुरक्षा पर किसी भी चिंता को ऑफसेट करने में सक्षम है.

अंततः मैं इसे गिथूब से एक सेवा लिंक के रूप में लागू करूँगा, लेकिन अब यह पर्याप्त है.

अपनी साइट को गिट "कामकाजी डायरेक्टरी" से भर्ती करना बुरा व्यवहार माना जाता है - कारण यहां देखें और यहां .

यह करने का सबसे अच्छा तरीका है "सर्वर से" ब्लेड "जीआईपी रेपो को" पोस्ट प्राप्त "हुक के साथ सेट अप करना. यह आलेख वह है जिसे मैंने हाल ही में किया था, मूल विचार यह है:

  1. एक "बेअर" रेपो के साथ जीआईटी इनिट - बीयर

  2. बनाएँ
  3. अपने वेब रूट में रेपो की प्रतिलिपि बनाने के लिए आपके नंगे रेपो में हुक / बाद-प्राप्त संपादित करें GIT_WORK_TREE = / var / www / yoursite git चेकआउट -f

  4. अपने स्थानीय मशीन पर एक रेमोट के रूप में बेअर रेपो जोड़ें.

  5. उपयोग करें git push अपने लाइव साइट पर धक्का करने के लिए.

स्वचालित रूप से ट्रिगर गीट वेबसाइट के लिए मीलड पुश पर खीचें
Reply