मेरे पास एक ईसी 2 इंस्टेंस है जो अमेज़ॅन लिनक्स एएमआई पर आधारित एएमआई चला रहा है। ऐसे सभी एएमआई की तरह, यह प्रत्येक उदाहरण में पारित उपयोगकर्ता डेटा के आधार पर स्टार्टअप स्क्रिप्ट चलाने के लिए cloud-init सिस्टम का समर्थन करता है।मैं अपने ईसी 2 इंस्टेंस बूट के हर बार क्लाउड-इनिट स्टार्टअप स्क्रिप्ट कैसे चला सकता हूं?
#include
http://s3.amazonaws.com/path/to/script/1
http://s3.amazonaws.com/path/to/script/2
पहली बार मैं अपने उदाहरण बूट, क्लाउड-init स्टार्टअप स्क्रिप्ट सही ढंग से चलाता है: इस विशेष मामले में, मेरे उपयोगकर्ता डेटा इनपुट एक फ़ाइल है कि कई अन्य स्टार्टअप स्क्रिप्ट स्रोतों में शामिल होता है। हालांकि, अगर मैं उदाहरण के लिए सॉफ्ट रीबूट करता हूं (उदाहरण के लिए sudo shutdown -r now
चलाकर), उदाहरण बिना के बिना दूसरी बार स्टार्टअप स्क्रिप्ट चला रहा है। अगर मैं सिस्टम लॉग में जाते हैं, मैं देख सकता हूँ:
Running cloud-init user-scripts
user-scripts already ran once-per-instance
[ OK ]
यह नहीं है कि मैं क्या चाहता हूँ - मैं स्टार्टअप स्क्रिप्ट है कि केवल उदाहरण जीवनकाल में एक बार दिखाए जाने का उपयोगिता को देख सकते हैं, लेकिन मेरे मामले में इन होना चाहिए सामान्य स्टार्टअप स्क्रिप्ट की तरह इंस्टेंस शुरू होने पर हर बार चलाएं।
मुझे एहसास है कि पहली बार चलने के बाद मेरी स्क्रिप्ट मैन्युअल रूप से rc.local
में डालने के लिए एक संभावित समाधान है। हालांकि, यह बोझिल लगता है, चूंकि क्लाउड-इनिट और आरसीडी वातावरण काफी अलग हैं और अब मुझे पहले लॉन्च पर स्क्रिप्ट को डिबग करना होगा और बाद में सभी लॉन्च अलग-अलग होंगे।
क्या कोई जानता है कि मैं हमेशा अपनी स्क्रिप्ट चलाने के लिए क्लाउड-इनिट कैसे बता सकता हूं? यह निश्चित रूप से कुछ ऐसा लगता है जैसे क्लाउड-इनिट के डिजाइनरों ने विचार किया होगा।
> मुझे कुछ बिंदु पर कॉन्फ़िगरेशन अनुभागों को संशोधित करने की क्षमता जोड़ने की उम्मीद है। क्या यह कार्यक्षमता अब जोड़ा गया है? मुझे लगता है कि नवीनतम क्लाउड-इनिट में एक "विलय" सुविधा है, लेकिन मैं यह नहीं समझ पाया कि इसका उपयोग केवल 'स्क्रिप्ट-उपयोगकर्ता' लाइन को बदलने के लिए कैसे किया जाए। मेरे द्वारा पारित विकल्पों के बावजूद यह पूरी सूची को ओवरराइड करेगा। – Meta
यहां एक-लाइनर है जो इन-लाइन संशोधन करता है: 'sed -i' s/scripts-user $/\ [स्क्रिप्ट-उपयोगकर्ता, हमेशा \]/'/ etc/cloud/cloud.cfg' – wjordan
फ़ाइलों को अंदर रखें '/ var/lib/क्लाउड/स्क्रिप्ट/प्रति-बूट' बहुत आसान लगता है, मैं इसे [ऑटो ec2 शटडाउन] (http://stackoverflow.com/a/38186787/4058484) सेट अप करने के लिए उपयोग कर सकता हूं। – hyip