9

मैं अपने क्लाउडफॉर्म ऑटोस्कलिंग :: लॉन्च कॉन्फ़िगरेशन से अपने ईबीएस समर्थित ec2 इंस्टेंस पर हार्ड डिस्क स्थान को बढ़ाने की कोशिश कर रहा हूं। प्रारंभ में रूट डिवाइस 8 जीबी के साथ शुरू होता है। मैं इसे 40 जीबी तक बढ़ाना चाहता हूं। मैं इस प्रभाव के तहत हूं कि मैं इस documentation पर आधारित कर सकता हूं। दुर्भाग्यवश नीचे कॉन्फ़िगरेशन काम नहीं कर रहा है।क्लाउडॉर्मेशन ऑटोस्केलिंग समूह में रूट डिवाइस आकार बढ़ाएं

"LaunchConfig" : { 
    "Type": "AWS::AutoScaling::LaunchConfiguration", 
    "Properties": { 
     "BlockDeviceMappings": [{ 
      "DeviceName": "/dev/sda1", 
      "Ebs" : {"VolumeSize": "40"} 
     }] 
    } 
} 

मैं एमी -05355 ए 6 सी के आधार पर एक कस्टम एमी का उपयोग कर रहा हूं।

उत्तर

16

आपका लॉन्च कॉन्फ़िगरेशन ईबीएस वॉल्यूम ब्लॉक डिवाइस का आकार सेट करता है। हालांकि, फाइल सिस्टम अभी भी सोचता है कि इसे केवल 8 जीबी का उपयोग करना चाहिए।

आप की तरह एक आदेश चला सकते हैं फाइल सिस्टम यह पूरे ब्लॉक डिवाइस का उपयोग करना चाहिए बताने के लिए निम्नलिखित:

sudo resize2fs /dev/sda1 

आप अपने कस्टम एएमआई स्टार्टअप आदेशों में इस को स्वचालित कर सकता है, या आप एक पास कर सकता है के प्रभाव के लिए अपने LaunchConfiguration में उपयोगकर्ता के डेटा स्क्रिप्ट:

#!/bin/bash 
resize2fs /dev/sda1 

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

"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ 
     "#!/bin/bash -ex\n", 
     "exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1\n", 
     "resize2fs /dev/sda1\n", 
     "" 
    ]]}} 

यहाँ एक लेख मैं कहाँ "कार्यकारी" की उपयोगिता समझाने है: http://alestic.com/2009/06/ec2-user-data-scripts

एक CloudFormation टेम्पलेट में, कुछ इस तरह लग सकता है डीबगिंग उपयोगकर्ता-डेटा स्क्रिप्ट के लिए लाइन: http://alestic.com/2010/12/ec2-user-data-output

+0

+1 "exec" लाइन के बारे में टिप के लिए +1। इसने मुझे नाव का समय बचा लिया है। अगर मैं आपको इस वर्ष पुनर्वित्त पर देखता हूं, तो मुझे आपकी एक बियर देना है :) – BillMan

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