Terraform 0.11 - Command: import

आज्ञा: आयात




terraform

आज्ञा: आयात

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

प्रयोग

उपयोग: terraform import [options] ADDRESS ID

आयात आईडी से मौजूदा संसाधन को खोज लेगा और दिए गए ADDRESS पर आपके टेराफॉर्म राज्य में आयात करेगा।

ADDRESS का एक वैध संसाधन पता होना चाहिए। क्योंकि कोई भी संसाधन पता मान्य है, आयात आदेश संसाधनों को मॉड्यूल में आयात कर सकता है और साथ ही सीधे आपके राज्य की जड़ में भी डाल सकता है।

आईडी आयात किए जा रहे संसाधन प्रकार पर निर्भर है। उदाहरण के लिए, AWS उदाहरणों के लिए यह उदाहरण ID ( i-abcd1234 ) है, लेकिन AWS मार्ग 53 क्षेत्रों के लिए यह ज़ोन ID ( Z12ABC4UGMOZ2N ) है। कृपया आईडी प्रारूप पर विवरण के लिए प्रदाता दस्तावेज देखें। यदि आप अनिश्चित हैं, तो बस एक आईडी आज़माएं। यदि आईडी अमान्य है, तो आपको सिर्फ एक त्रुटि संदेश प्राप्त होगा।

कमांड-लाइन झंडे सभी वैकल्पिक हैं। उपलब्ध झंडों की सूची इस प्रकार है:

  • -backup=path - मौजूदा राज्य फ़ाइल का बैकअप लेने के लिए पथ। ".Backup" एक्सटेंशन के साथ -state -state-out पथ में डिफ़ॉल्ट। बैकअप अक्षम करने के लिए "-" पर सेट करें।

  • -config=path - -config=path कॉन्फ़िगरेशन फ़ाइलों की निर्देशिका का पथ जो आयात के लिए प्रदाता को कॉन्फ़िगर करता है। यह आपकी कार्यशील निर्देशिका में चूक करता है। यदि इस निर्देशिका में कोई टेराफ़ॉर्म कॉन्फ़िगरेशन फ़ाइलें नहीं हैं, तो प्रदाता को मैन्युअल इनपुट या पर्यावरण चर के माध्यम से कॉन्फ़िगर किया जाना चाहिए।

  • -input=true - प्रदाता कॉन्फ़िगरेशन के लिए इनपुट के लिए पूछना है या नहीं।

  • -lock=true - लॉकिंग सपोर्ट होने पर स्टेट फाइल को लॉक करें।

  • -lock-timeout=0s - एक राज्य लॉक को पुनः प्राप्त करने की अवधि।

  • -no-color - यदि निर्दिष्ट किया गया है, तो आउटपुट में कोई रंग नहीं होगा।

  • -provider=provider - आयात के लिए उपयोग करने के लिए निर्दिष्ट प्रदाता। मान TYPE.ALIAS , जैसे "aws.eu" के रूप में एक प्रदाता उपनाम होना चाहिए। यह आयात किए जा रहे संसाधन के उपसर्ग के आधार पर सामान्य प्रदाता को डिफॉल्ट करता है। आपको आमतौर पर इसे निर्दिष्ट करने की आवश्यकता नहीं है।

  • -state=path - स्रोत स्थिति फ़ाइल से पढ़ने के लिए पथ। कॉन्फ़िगर बैकएंड, या "terraform.tfstate" के लिए डिफ़ॉल्ट।

  • -state-out=path - लिखने के लिए गंतव्य राज्य फ़ाइल का पथ। यदि यह निर्दिष्ट नहीं है, तो स्रोत स्थिति फ़ाइल का उपयोग किया जाएगा। यह एक नया या मौजूदा रास्ता हो सकता है।

  • -var 'foo=bar' - टेराफॉर्म कॉन्फ़िगरेशन में एक चर सेट करें। इस ध्वज को कई बार सेट किया जा सकता है। परिवर्तनीय मूल्यों को HCL रूप में व्याख्या की जाती है, इसलिए इस ध्वज के माध्यम से सूची और मानचित्र मूल्यों को निर्दिष्ट किया जा सकता है। यह केवल -config ध्वज के साथ उपयोगी है।

  • -var-file=foo - वैरिएबल फ़ाइल से Terraform कॉन्फ़िगरेशन में चर सेट करें। यदि कोई terraform.tfvars या कोई .auto.tfvars फ़ाइलें वर्तमान निर्देशिका में मौजूद हैं, तो वे स्वचालित रूप से लोड हो जाएंगी। terraform.tfvars को पहले और .auto.tfvars फ़ाइलों को वर्णमाला क्रम के बाद लोड किया जाता है। -var-file द्वारा निर्दिष्ट कोई भी -var-file कार्य निर्देशिका में फ़ाइलों से स्वचालित रूप से सेट किए गए किसी भी मान को ओवरराइड करती है। इस ध्वज का उपयोग कई बार किया जा सकता है। यह केवल -config ध्वज के साथ उपयोगी है।

प्रदाता विन्यास

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

कॉन्फ़िगरेशन फ़ाइलों को पढ़ने के दौरान एकमात्र सीमा टेराफ़ॉर्म में यह है कि आयात प्रदाता कॉन्फ़िगरेशन गैर-चर इनपुट पर निर्भर नहीं होना चाहिए। उदाहरण के लिए, एक प्रदाता कॉन्फ़िगरेशन डेटा स्रोत पर निर्भर नहीं कर सकता है।

एक कार्यशील उदाहरण के रूप में, यदि आप AWS संसाधनों का आयात कर रहे हैं और आपके पास नीचे दी गई सामग्री के साथ एक कॉन्फ़िगरेशन फ़ाइल है, तो Terraform इस फ़ाइल के साथ AWS प्रदाता को कॉन्फ़िगर करेगा।

variable "access_key" {}
variable "secret_key" {}

provider "aws" {
  access_key = "${var.access_key}"
  secret_key = "${var.secret_key}"
}

आप टेराफॉर्म को स्पष्ट रूप से निर्दिष्ट करके अपने कॉन्फ़िगरेशन को लोड नहीं करने के लिए मजबूर कर सकते हैं -config="" (खाली स्ट्रिंग)। यह उन स्थितियों में उपयोगी है, जहां आप प्रदाता को मैन्युअल रूप से कॉन्फ़िगर करना चाहते हैं क्योंकि आपका कॉन्फ़िगरेशन मान्य नहीं हो सकता है।

उदाहरण: AWS इंस्टेंस

यह उदाहरण AWS उदाहरण का आयात करेगा:

$ terraform import aws_instance.foo i-abcd1234

उदाहरण: मॉड्यूल का आयात

नीचे दिया गया उदाहरण AWS उदाहरण को मॉड्यूल में आयात करेगा:

$ terraform import module.foo.aws_instance.bar i-abcd1234