2012-04-12 10 views
52

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

  • का दृष्टांत एन मेरा एक दिया एएमआई की घटनाओं:

    मूल रूप से, मैं एक स्क्रिप्ट/कार्यक्रम है कि होगा लिखना चाहते हैं।

  • प्रत्येक प्रारंभिक उदाहरण के लिए, यह एक अनुकूलित स्क्रिप्ट अपलोड करेगा और स्क्रिप्ट को उदाहरण में चलाएगा।

VMWare का उपयोग करते हुए, मैं करूंगा आम तौर पर करते हैं कि vmrun का उपयोग कर या VIX है एसडीके।

अमेज़ॅन एडब्ल्यूएस/ईसी 2 में विकल्प क्या हैं?

उत्तर

80

उत्तर इस बात पर निर्भर करता है कि आप जो एएमआई चला रहे हैं, वह पूरी तरह से एएमआई निर्भर हैं।

अमेज़ॅन लिनक्स एएमआईएस और आधिकारिक उबंटू एएमआई के पास cloud-init पैकेज स्थापित है। इसमें स्टार्टअप क्रियाओं को ट्रिगर करने के कई तरीके हैं, लेकिन जो आपके अनुरोध से मेल खाता है वह सबसे नज़दीक है (और मेरा पसंदीदा क्योंकि मैंने इसका आविष्कार किया है) user-data script की अवधारणा है।

ईसी 2 उदाहरण शुरू करते समय आप उपयोगकर्ता-डेटा के रूप में बस किसी भी स्क्रिप्ट (दो अक्षर # से शुरू करना!) पास कर सकते हैं। यह उदाहरण के पहले बूट पर रूट के रूप में चलाया जाएगा।

यह कैसे काम करता का एक विशिष्ट उदाहरण के लिए, मैं अपने हाल के एक लेख में इस सटीक तकनीक का उपयोग करें: Uploading Known ssh Host Key in EC2 user-data Script

तुम भी एक ही स्क्रिप्ट के साथ एक से अधिक EC2 उदाहरण चलाने के लिए चाहता था। Ec2-run-instances कमांड और संबंधित API और वेब कंसोल आपको एक ही उपयोगकर्ता-डेटा से शुरू करने के लिए किसी भी प्रकार के उदाहरण निर्दिष्ट करने की अनुमति देता है। उदाहरण के लिए:

ec2-run-instances   \ 
    --instance-count 10  \ 
    --user-data-file $MYSCRIPT \ 
    --key $USER    \ 
    $SOMEAMI 

आप वर्तमान में एक एएमआई कि क्लाउड-init इंस्टॉल नहीं है, द्वारा चलाए जा रहे हैं, तो आप में से एक कर सकता है: एक एएमआई है कि क्लाउड-init स्थापित करने के लिए

  • स्विच, या

  • बिल्ड है कि क्लाउड-init स्थापित अपने एएमआई के एक कस्टम संस्करण, या

  • एक और अधिक जटिल आवरण स्क्रिप्ट है कि एक reco बनाता लिखें सभी उदाहरणों के बाद आईड्स को लात मारने के बाद, सभी मामलों को चलने वाले राज्य में जाने के लिए इंतजार कर रहा है, एसएसडीडी कनेक्शन स्वीकार करने की प्रतीक्षा करता है, प्रत्येक इंस्टेंस पर अपनी स्टार्टअप स्क्रिप्ट अपलोड करता है, और प्रत्येक इंस्टेंस पर स्टार्टअप स्क्रिप्ट चलाता है ।

+20

एसओ के साथ अच्छी चीजों में से एक यह है कि जब तक आप कुछ पॉइंटर्स ढूंढना शुरू करते हैं, तो जिस व्यक्ति का नाम आपके सभी Google प्रश्नों में दिखने लगता है, वह आपके प्रश्न का व्यक्तिगत रूप से उत्तर देता है। बहुत बढ़िया :-) –

+0

मैं उपर्युक्त उत्तर के विकल्प 3 से बचूंगा। मैंने इस दृष्टिकोण के साथ दो अलग-अलग नुकसान उठाए हैं। 1) एक उदाहरण में एक आईपी पता होता है जिसे आपने पहले देखा था, और ज्ञात_होस्ट प्रविष्टि मेल नहीं खाती है। 2) सभी इंस्टेंस और स्टार्टअप स्क्रिप्ट को अपलोड करने और नियंत्रित करने वाली मशीन ओवरलोड हो जाती है, और सामान – Nate

+9

ब्रेक का सर्वोत्तम उद्धरण: "और मेरा पसंदीदा क्योंकि मैंने इसका आविष्कार किया" –

1

मेरे पास a tutorial to run the script in the "cloud-init" है जो प्रत्येक बार AWS EC2 स्टार्टअप होता है।

  • विन्यास फाइल (एडब्ल्यूएस CentOS6) और

    स्थापित करने के लिए
  • जब आप EC2

प्रारंभ करेंगे तो लिनक्स पर विन्यास फाइल सेट करने के लिए आप configure cloud-init on AWS Linux उल्लेख कर सकते हैं स्क्रिप्ट चलाने ।

मैं व्यक्तिगत रूप से AWS VPC/EBS का उपयोग करता हूं जो कि लिनक्स एएमआई पर आधारित सेटअप था, मैंने कॉन्फ़िगरेशन फ़ाइल /etc/cloud/cloud.cfg पर कुछ भी स्पर्श नहीं किया लेकिन मेरा boot script in the cloud-init अच्छी तरह से चलता है।

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