2015-08-15 18 views
8

मैं एडब्ल्यूएस कोडकॉमिट का उपयोग कर रहा हूं जो कि गिट के एक अलग संस्करण की तरह प्रतीत होता है।मैं अपने सभी एडब्ल्यूएस ईसी 2 उदाहरण गिट/कोडकॉम से खींचने के लिए कैसे कहूं?

यदि इन सभी ईसी 2 उदाहरणों में एक ही भूमिका टैग है तो मैं इसे कैसे पूरा करूं?

मैं कुछ भी फैंसी नहीं करना चाहता, मुझे बस एक टैग निर्दिष्ट करना है, एक बटन क्लिक करें और उन सभी ईसी 2 उदाहरणों को कोडकॉमिट के लिए उस टैग खींचने के साथ क्लिक करें। मैं इसे अपनी स्थानीय मशीन से करना चाहता हूं।

मुझे पता है कि मुझे अपने प्रत्येक ईसी 2 सर्वर में कोडकॉमिट तक पहुंचने के लिए एसएसएच कुंजी डालने और उनमें से प्रत्येक पर गिट इंस्टॉल करने की आवश्यकता है (मैं इसे एएमआई में सेंकना होगा)। मुझे यकीन नहीं है कि प्रत्येक ईसी 2 मशीनों को गिट पुल करने के लिए "ट्रिगर" कैसे करें? क्या कोई एडब्ल्यूएस कमांड है?

मैं एक देव ops लड़का नहीं हूँ और केवल मूल लिनक्स और PHP पता है।

उत्तर

12

आईएएम भूमिका के साथ लॉन्च किए गए ईसी 2 उदाहरणों के लिए, आपको एसएसएच कुंजी में सेंकना भी नहीं है। गिट ईसी 2 इंस्टेंस मेटाडेटा से कोडकॉमिट क्रेडेंशियल्स प्राप्त कर सकता है। बेक नवीनतम एडब्ल्यूएस CLI पैकेज के साथ एक लिनक्स आधारित एएमआई और निम्नलिखित लाइनों में ~/.gitconfig:

[credential] 
    helper = !aws --profile default codecommit credential-helper [email protected] 
    UseHttpPath = true 

लॉन्च एक IAM भूमिका के साथ उदाहरण संलग्न, और फिर आप किसी भी अधिक सेटअप के बिना अपने CodeCommit रेपो क्लोन कर सकते हैं ।

यदि आप टैग के आधार पर EC2 उदाहरणों का बेड़ा पार Git आदेशों को चलाने के लिए चाहते हैं Capistrano और Capify-EC2 में देखना चाहते हो सकता है।

अपडेटेडः यदि आप कोडकॉमिट से तैनात करने के लिए AWS OpsWorks का उपयोग करने के लिए खुले हैं, तो recent blog article ऐसा करने के तरीके के बारे में है।आप कैपिस्ट्रानो के साथ ओपीएसवर्क्स का उपयोग run arbitrary commands पर भी कर सकते हैं।

+0

मेरी इच्छा है कि जब मैंने प्रश्न पूछा तो मुझे यह जवाब वापस मिला। अंत में मैंने अपने ईसी 2 बेड़े में गिट क्लोन कमांड चलाने के लिए फैब्रिक का इस्तेमाल किया। –

+1

यदि कोई यह कोशिश कर रहा है और "प्रोफ़ाइल डिफ़ॉल्ट नहीं मिला" के साथ समस्या हो रही है, तो रिक्त प्रोफ़ाइल निर्दिष्ट करने के लिए '' '' प्रयास करें। ईसी 2 इंस्टेंस पर आपकी प्रोफ़ाइल पर्यावरण परिवर्तक '$ AWS_DEFAULT_PROFILE' में संग्रहीत/होनी चाहिए। –

+2

@RobbieAverill आप पूरी तरह से '- प्रोफाइल डिफ़ॉल्ट' बिट को छोड़ सकते हैं (और जैसा कि आप कह रहे हैं, डिफ़ॉल्ट रूप से इसे सेट करना काम नहीं करता है यदि आपके पास कोई डिफ़ॉल्ट प्रोफ़ाइल नहीं है) –

4

निकटतम आप प्रबंधित सेवाओं एडब्ल्यूएस साथ यह करने के लिए मिल जाएगा CodeDeploy है। इसके साथ, आप कमांड लाइन या वेब कंसोल के माध्यम से EC2 उदाहरणों में तैनाती को ऑर्केस्ट्रेट कर सकते हैं। लेकिन कोडडेन सिर्फ एस 3 या गीटहब से कलाकृतियों को खींचता है। अब तक, CodeCommit पूरी तरह से CodePipeline और CodeDeploy की तरह, अन्य संबंधित अमेज़न सेवाओं से अलग किया जा रहा है, तो यह एक अच्छा विकल्प हो करने के लिए प्रतीत नहीं होता। लेकिन, निश्चित रूप से, अमेज़ॅन रोडमैप उन सभी को एकीकृत करना है (ऐसा नहीं करना व्यर्थ होगा)। तो, अब righ, GitHubकोडकॉमिट से बेहतर होगा।

लेकिन, आप पर विचार उपयोग नहीं कर रहे GitHub, तो आप एक सीआई (सतत एकीकरण) समाधान के बीच आप भंडार और CodeDeploy की जरूरत है, स्रोत से कोड खींच, संभवतः निर्माण या परीक्षण चल रहा है, के लिए यह धक्का एस 3 और कोडडेन इसके बारे में बता रहा है। CodeShip है, उदाहरण के लिए, जो ऐसा कर सकता है, और कई बाहरी सेवाओं के साथ एकीकृत करता है। या आपके पास सीआई सर्वर भी हो सकता है, जैसे Jenkins, आपके लिए "गोंद" भूमिका निभा रही है। (जेनकींस शायद सबसे लचीला होगा क्योंकि यह ओपन-सोर्स है और इसमें सब कुछ के लिए प्लगइन हो सकते हैं।)

तो, एक छोटा सा टूट, आप कार्यप्रवाह ऐसा ही कुछ होगा: अपने भंडार को

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

(वास्तव में, CodeDeploy कोड EC2 के लिए धक्का नहीं है उदाहरणों। इसके बजाय, प्रत्येक EC2 उदाहरण एक एजेंट जो क्रम में पूल नियमित रूप से CodeDeploy सर्वर पता करने के लिए चलाना चाहिए वहाँ कुछ नया है, तो करने के लिए स्थानीय रूप से लागू किया जाना है। वैसे भी, CodeDeploy निर्देशांक और एजेंटों से प्रतिक्रिया प्राप्त है, इसलिए यह बस के रूप में अगर यह पर 100% सक्रिय थे CodeDeploy पक्ष और 100% उदाहरणों तरफ निष्क्रिय काम करता है।)

> CodePipeline - -> CodeDeploy, या बस CodeCommit -

सबसे "क्लीन" एडब्ल्यूएस समाधान CodeCommit होगा>CodeDeploy, लेकिन उन सेवाओं को पूरी तरह से एकीकृत नहीं कर रहे हैं अब तक। >CodeDeploy -

आपके मामले में, सबसे आसान और व्यवहार्य समाधान अभी Github होगा। इससे अलग कुछ भी रास्ते पर कुछ मध्यवर्ती कदमों की मांग करेगा, जैसे मैंने प्रदान किए गए उदाहरण (कोडशिप, जेनकींस, आदि)।

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