2013-01-22 9 views
12

हम आदेशों को निष्पादित करने और उदाहरण शुरू करने के बाद फ़ाइलों को अपलोड करने के लिए AWS::CloudFormation::Init का उपयोग कर सकते हैं। लेकिन क्या किसी को पता है कि इस ऑपरेशन के आंतरिक भाग क्या हैं (अमेज़ॅन की तरफ से)?एडब्ल्यूएस :: क्लाउडफॉर्मेशन :: इनिट यह कैसे काम करता है?

जब हम एक टेम्पलेट पास करते हैं, तो वीएम पर प्रेषित फ़ाइलों या आदेश किस बिंदु पर होते हैं? क्या यह एक ज़ेन सुविधा है (विशेष पाइप के माध्यम से), या नेटवर्क के माध्यम से?

"Resources": { 
    "MyInstance": { 
    "Type": "AWS::EC2::Instance", 
    "Metadata" : { 
     "AWS::CloudFormation::Init" : { 
     "config" : { 
      "packages" : { 
      : 
      }, 
      "sources" : { 
      : 
      }, 
      "commands" : { 
      : 
      }, 
      "files" : { 
      : 
      }, 
      "services" : { 
      : 
      }, 
      "users" : { 
      : 
      }, 
      "groups" : { 
      : 
      } 
     } 
     } 
    }, 
    "Properties": { 
     : 
    } 
    } 
} 

उत्तर

26

एक EC2 उदाहरण के लिए एक एडब्ल्यूएस :: CloudFormation :: Init मेटाडाटा के रूप में संसाधन बनाना उदाहरण अपने आप में कुछ भी करने को कारण नहीं है।

वास्तव में उस संसाधन में निर्दिष्ट सभी संचालन करने के लिए उदाहरण के लिए, इसे cfn-init कमांड लाइन उपकरण चलाएं। अमेज़ॅन ईसी 2 एएमआई पर यह आदेश पहले से ही /opt/aws/bin/cfn-init पर स्थापित है। कमांड में AWS :: क्लाउडफॉर्मेशन :: इनिट संसाधन, ईसी 2 सर्वर संसाधन का नाम, और जिस क्षेत्र में आप चल रहे हैं, के नाम सहित कई विकल्प लेते हैं। आपको एडब्ल्यूएस सुरक्षा प्रमाण-पत्र भी प्रदान करने की आवश्यकता है।

यदि आप एक नया उदाहरण बनाते हैं तो आप इसे स्वचालित रूप से चलाने के लिए चाहते हैं (मुझे यकीन है कि) आपको एक शेल स्क्रिप्ट बनाने के लिए ईसी 2 इंस्टेंस के उपयोगकर्ता डेटा का उपयोग करना होगा, उदाहरण को पहले बूट पर चलाया जाएगा, और इसमें cfn-init कमांड।

मेरे पास हाल ही में मेरे ब्लॉग में written about this specific issue है।

+1

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

+1

cfn-init एक अमेज़ॅन पते को HTTP अनुरोध प्राप्त करने के लिए HTTP अनुरोध करता है संसाधन में डेटा। यह तब टेम्पलेट में निर्दिष्ट कार्यों को निष्पादित करता है। टेम्पलेट कहां है? कहीं अमेज़ॅन नियंत्रित सर्वर पर। –

+0

तो, ये सभी कार्य नेटवर्क पर आधारित हैं? यह उचित लगता है, लेकिन अभी भी कुछ असुविधाजनक स्थिति है। अगर मैं सुरक्षा कारण से सुरक्षा समूह को खोलना नहीं चाहता (केवल 22 बंदरगाह), तो यह मेरे आवेदन को स्वचालित रूप से तैनात करने में एक समस्या होगी। ईमानदार होने के लिए, मुझे आशा है कि वे विशेष पाइप या उपकरणों (xen में) द्वारा प्रेषित किए जाते हैं। चलो, आपकी मदद के लिए धन्यवाद! – SoYoung

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