Terraform 0.11 - Command: plan

आज्ञा: योजना




terraform

आज्ञा: योजना

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

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

वैकल्पिक- -out तर्क का उपयोग बाद में निष्पादन के साथ terraform apply करने के लिए एक फ़ाइल के लिए उत्पन्न योजना को बचाने के लिए किया जा सकता है, जो स्वचालन में टेराफ़ॉर्म चलाते समय उपयोगी हो सकता है।

प्रयोग

उपयोग: terraform plan [options] [dir-or-plan]

डिफ़ॉल्ट रूप से, plan को झंडे की आवश्यकता नहीं होती है और ताज़ा करने के लिए कॉन्फ़िगरेशन और राज्य फ़ाइल के लिए वर्तमान निर्देशिका में दिखता है।

यदि कमांड को मौजूदा सहेजे गए प्लान को एक तर्क के रूप में दिया जाता है, तो कमांड सेव्ड प्लान की सामग्री को आउटपुट करेगा। इस परिदृश्य में, plan आदेश दिए गए योजना को संशोधित नहीं करेगा। इसका उपयोग एक प्लैफाइल का निरीक्षण करने के लिए किया जा सकता है।

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

  • -destroy - यदि सेट किया जाता है, तो सभी ज्ञात संसाधनों को नष्ट करने की योजना तैयार करता है।

  • -detailed-exitcode - कमांड से बाहर निकलने पर एक विस्तृत एग्जिट कोड लौटाएं। जब प्रदान किया जाता है, तो यह तर्क निकास कोड और उनके अर्थ को बदल देता है ताकि परिणामी योजना में अधिक बारीक जानकारी प्रदान की जा सके:

    • 0 = रिक्त स्थान के साथ सफल हुआ (कोई परिवर्तन नहीं)
    • 1 = त्रुटि
    • 2 = गैर-रिक्त अंतर के साथ सफल (वर्तमान में परिवर्तन)
  • -input=true - अगर सीधे सेट नहीं किया जाता है तो चर के लिए इनपुट मांगें।

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

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

  • -module-depth=n - आउटपुट में दिखाने के लिए मॉड्यूल की गहराई को निर्दिष्ट करता है। यह केवल योजना को प्रभावित नहीं करता है, केवल आउटपुट दिखाया गया है। डिफ़ॉल्ट रूप से, यह -1 है, जो सभी का विस्तार करेगा।

  • -no-color - रंग के साथ आउटपुट अक्षम करता है।

  • -out=path - उत्पन्न निष्पादन योजना को बचाने का मार्ग। इस योजना का उपयोग terraform apply होने के साथ किया जा सकता है ताकि यह सुनिश्चित हो सके कि इस योजना में दिखाए गए परिवर्तन ही लागू होते हैं। नीचे सहेजी गई योजनाओं पर चेतावनी पढ़ें।

  • -parallelism=n - समवर्ती ऑपरेशन की संख्या को सीमित करें क्योंकि टेराफॉर्म ग्राफ को चलता है

  • -refresh=true - मतभेद की जाँच करने से पहले स्थिति को अपडेट करें।

  • -state=path - राज्य फ़ाइल का पथ। "Terraform.tfstate" के लिए डिफ़ॉल्ट। दूरस्थ अवस्था का उपयोग करने पर ध्यान नहीं दिया जाता है।

  • -target=resource - लक्ष्य करने के लिए एक संसाधन पता । इस ध्वज का उपयोग कई बार किया जा सकता है। अधिक जानकारी के लिए नीचे देखें।

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

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

संसाधन लक्ष्यीकरण

-target विकल्प का उपयोग केवल संसाधनों के सबसेट पर टेराफॉर्म के ध्यान को केंद्रित करने के लिए किया जा सकता है। संसाधन पता सिंटैक्स का उपयोग बाधा को निर्दिष्ट करने के लिए किया जाता है। संसाधन पते की व्याख्या इस प्रकार है:

  • यदि दिए गए पते में संसाधन युक्ति है , तो केवल निर्दिष्ट संसाधन लक्षित है। यदि नामित संसाधन count का उपयोग करता count और पते में कोई स्पष्ट सूचकांक निर्दिष्ट नहीं है, तो दिए गए संसाधन नाम को साझा करने वाले सभी उदाहरण लक्षित होते हैं।

  • यदि दिए गए पते में संसाधन युक्ति नहीं है, और इसके बजाय केवल एक मॉड्यूल पथ निर्दिष्ट करता है, तो लक्ष्य निर्दिष्ट मॉड्यूल में सभी संसाधनों और निर्दिष्ट मॉड्यूल के सभी अवरोही मॉड्यूल पर लागू होता है।

यह लक्ष्यीकरण क्षमता असाधारण परिस्थितियों के लिए प्रदान की जाती है, जैसे गलतियों से उबरना या टेराफॉर्म सीमाओं के आसपास काम करना। यह नियमित संचालन के लिए -target का उपयोग करने की अनुशंसा नहीं की जाती है, क्योंकि इससे अवांछित कॉन्फ़िगरेशन बहाव हो सकता है और भ्रम हो सकता है कि संसाधनों की वास्तविक स्थिति कैसे कॉन्फ़िगरेशन से संबंधित है।

बहुत बड़े कॉन्फ़िगरेशन के पृथक भागों पर काम करने के साधन के रूप में -target का उपयोग करने के बजाय, बड़े कॉन्फ़िगरेशन को कई छोटे कॉन्फ़िगरेशन में तोड़ने के बजाय पसंद करें, जो प्रत्येक स्वतंत्र रूप से लागू हो सकते हैं। डेटा स्रोतों का उपयोग अन्य कॉन्फ़िगरेशन में बनाए गए संसाधनों के बारे में जानकारी तक पहुंचने के लिए किया जा सकता है, जिससे एक जटिल सिस्टम आर्किटेक्चर को अधिक प्रबंधनीय भागों में विभाजित किया जा सकता है जिसे स्वतंत्र रूप से अपडेट किया जा सकता है।

सुरक्षा चेतावनी

सहेजे गए प्लान फ़ाइल ( -out फ्लैग के साथ) कॉन्फ़िगरेशन, स्थिति, अंतर और चर को एन्कोड करते हैं। चर का उपयोग अक्सर रहस्यों को संग्रहीत करने के लिए किया जाता है। इसलिए, योजना फ़ाइल संभावित रूप से रहस्यों को संग्रहीत कर सकती है।

Terraform स्वयं योजना फ़ाइल को एन्क्रिप्ट नहीं करता है। यदि आप इसे स्थानांतरित करना चाहते हैं या इसे समय की विस्तारित अवधि के लिए आराम पर रखना चाहते हैं, तो योजना फ़ाइल को एन्क्रिप्ट करना अत्यधिक अनुशंसित है।

Terraform के भविष्य के संस्करण योजना फाइलों को अधिक सुरक्षित बनाएंगे।