Terraform 0.11 - Import Usage

आयात का उपयोग




terraform

आयात का उपयोग

terraform import कमांड का इस्तेमाल मौजूदा इंफ्रास्ट्रक्चर को इम्पोर्ट करने के लिए किया जाता है।

वर्तमान में आदेश एक समय में केवल एक संसाधन आयात कर सकता है। इसका मतलब है कि आप अभी तक संसाधनों के एक पूरे संग्रह जैसे कि AWS VPC के लिए Terraform आयात को इंगित नहीं कर सकते हैं और सभी को आयात कर सकते हैं। टेराफॉर्म के भविष्य के संस्करण में इस वर्कफ़्लो में सुधार किया जाएगा।

किसी संसाधन को आयात करने के लिए, पहले अपने कॉन्फ़िगरेशन में इसके लिए एक संसाधन ब्लॉक लिखें, उस नाम को स्थापित करना जिसके द्वारा टेराफ़ॉर्म को जाना जाएगा:

resource "aws_instance" "example" {
  # ...instance configuration...
}

यहां "उदाहरण" नाम मॉड्यूल के लिए स्थानीय है जहां यह घोषित किया गया है और कॉन्फ़िगरेशन लेखक द्वारा चुना गया है। यह रिमोट सिस्टम द्वारा जारी किसी भी आईडी से अलग है, जो समय के साथ बदल सकता है जबकि संसाधन नाम स्थिर रहता है।

यदि वांछित है, तो आप संसाधन ब्लॉक के शरीर को अभी के लिए खाली छोड़ सकते हैं और उदाहरण के आयात होने के बाद इसे भरने के लिए वापस आ सकते हैं।

इस संसाधन कॉन्फ़िगरेशन में मौजूदा इंस्टेंस को अटैच करने के लिए अब terraform import चलाया जा सकता है:

$ terraform import aws_instance.example i-abcd1234

यह आदेश ID i-abcd1234 साथ AWS का उदाहरण देता है और इसकी मौजूदा सेटिंग को, जैसा कि EC2 API द्वारा वर्णित है, Terraform अवस्था में aws_instance.example नाम से है।

बाल मॉड्यूल में संसाधनों को आयात करना और count सेट के साथ संसाधन के एकल उदाहरणों के लिए भी संभव है। लक्ष्य संसाधन निर्दिष्ट करने के तरीके के बारे में अधिक जानकारी के लिए संसाधन पता देखें।

दी गई आईडी का सिंटैक्स आयात किए जा रहे संसाधन प्रकार पर निर्भर है। उदाहरण के लिए, AWS इंस्टेंसेस EC2 API द्वारा जारी एक अपारदर्शी आईडी का उपयोग करते हैं, लेकिन AWS रूट 53 जोन डोमेन नाम का ही उपयोग करते हैं। आईडी के किस रूप की आवश्यकता है, इसके विवरण के लिए प्रत्येक आयात करने योग्य संसाधन के लिए प्रलेखन से परामर्श करें।

उपरोक्त कमांड के परिणामस्वरूप, संसाधन राज्य फ़ाइल में दर्ज किया गया है। अब आप यह देखने के लिए terraform plan चला सकते हैं कि कॉन्फ़िगरेशन आयातित संसाधन की तुलना कैसे करता है, और आयातित ऑब्जेक्ट की वर्तमान (या इच्छित) स्थिति के साथ संरेखित करने के लिए कॉन्फ़िगरेशन में कोई समायोजन करता है।

जटिल आयात

उपरोक्त आयात को "सरल आयात" माना जाता है: एक संसाधन को राज्य फ़ाइल में आयात किया जाता है। एक आयात "जटिल आयात" भी हो सकता है जहां कई संसाधन आयात किए जाते हैं। उदाहरण के लिए, AWS सुरक्षा समूह प्रत्येक नियम के लिए aws_security_group लेकिन एक aws_security_group आयात करता है।

इस परिदृश्य में, द्वितीयक संसाधन कॉन्फ़िगरेशन में पहले से मौजूद नहीं होंगे, इसलिए आयात आउटपुट से परामर्श करना और प्रत्येक द्वितीयक संसाधन के लिए कॉन्फ़िगरेशन में resource ब्लॉक बनाना आवश्यक है। यदि ऐसा नहीं किया जाता है, तो Terraform अगले रन पर आयातित वस्तुओं को नष्ट करने की योजना बनाएगा।

यदि आप आयातित संसाधनों का नाम बदलना या अन्यथा स्थानांतरित करना चाहते हैं, तो राज्य प्रबंधन आदेशों का उपयोग किया जा सकता है।