Terraform 0.11 - How Terraform Works

टेराफॉर्म कैसे काम करता है




terraform

टेराफॉर्म कैसे काम करता है

Terraform सुरक्षित रूप से और कुशलता से बुनियादी ढांचे के निर्माण, परिवर्तन, और संस्करण के लिए एक उपकरण है। Terraform एक प्लग-इन आर्किटेक्चर पर बनाया गया है, जो डेवलपर्स को नए प्लगइन्स लिखकर या मौजूदा प्लगइन्स के संशोधित संस्करणों को संकलित करके Terraform को बढ़ाने में सक्षम बनाता है।

Terraform तार्किक रूप से दो मुख्य भागों में विभाजित है: Terraform Core और Terraform Plugins । Terraform Core, Terraform Plugins के साथ संचार करने के लिए रिमोट प्रक्रिया कॉल (RPC) का उपयोग करता है, और प्लग इन का उपयोग करने के लिए कई तरीके खोजता है और लोड करता है। Terraform Plugins किसी विशिष्ट सेवा, जैसे AWS, या प्रावधानकर्ता, जैसे बैश के लिए एक कार्यान्वयन को उजागर करता है।

टेराफॉर्म कोर

टेराफॉर्म कोर एक संकलित बाइनरी है जिसे गो प्रोग्रामिंग भाषा में लिखा गया है। संकलित बाइनरी कमांड लाइन टूल (सीएलआई) terraform , terraform का उपयोग करने वाले किसी के लिए प्रवेश बिंदु। कोड खुला स्रोत है और github.com/hashicorp/terraform पर होस्ट किया गया है।

टेराफॉर्म कोर की प्राथमिक जिम्मेदारियां हैं:

  • कोड के रूप में अवसंरचना: कॉन्फ़िगरेशन फ़ाइलों और मॉड्यूल को पढ़ना और प्रक्षेपित करना
  • संसाधन राज्य प्रबंधन
  • संसाधन ग्राफ का निर्माण
  • योजना का निष्पादन
  • RPC पर प्लगइन्स के साथ संचार

टेराफॉर्म प्लगइन्स

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

Terraform प्लगइन्स अपने प्रकार के डोमेन विशिष्ट कार्यान्वयन के लिए जिम्मेदार हैं।

प्रदाता प्लगइन्स की प्राथमिक जिम्मेदारियां हैं:

  • एपीआई कॉल करने के लिए उपयोग किए जाने वाले किसी भी पुस्तकालय का प्रारंभिक उपयोग
  • इन्फ्रास्ट्रक्चर प्रदाता के साथ प्रमाणीकरण
  • उन संसाधनों को परिभाषित करें जो विशिष्ट सेवाओं के लिए मैप करते हैं

प्रोविजनर प्लगइन्स की प्राथमिक जिम्मेदारियाँ हैं:

  • निर्माण के बाद, या विनाश पर निर्दिष्ट संसाधन पर कमांड या स्क्रिप्ट निष्पादित करना।

खोज

terraform सीएलआई टूल में तत्काल उपयोग के लिए कई प्रावधान प्लगइन्स शामिल हैं। इसमें बड़ी संख्या में और विभिन्न समर्थित संस्करणों के कारण किसी भी प्रदाता को शामिल नहीं किया गया है। Terraform कॉन्फ़िगरेशन फ़ाइलों को पढ़ता है और रिलीज़ से आवश्यक प्रदाता को स्वचालित रूप से इंस्टॉल करता है। Terraform लिखने के समय केवल HashiCorp द्वारा वितरित प्रदाता को स्वचालित रूप से स्थापित किया जा सकता है, जो release.hashicorp.com पर पाए जाते हैं।

मेजबान ऑपरेटिंग सिस्टम के आधार पर निम्नलिखित स्थानों में से एक में अपने प्लगइन निष्पादन योग्य को रखकर तीसरे पक्ष के प्रदाताओं को मैन्युअल रूप से स्थापित किया जा सकता है:

  • विंडोज पर, अपने उपयोगकर्ता के "एप्लिकेशन डेटा" निर्देशिका के नीचे उप-पथ terraform.d / plugins में।
  • अन्य सभी प्रणालियों पर, उप-पथ में .terraform.d / plugins आपके उपयोगकर्ता के घर निर्देशिका में।

terraform init इस निर्देशिका को प्लगइन इनिशियलाइज़ेशन के दौरान अतिरिक्त प्लग इन के लिए खोजेगा।

प्लगइन्स के लिए नामकरण योजना terraform-<type>-NAME_vX.YZ , जहां type या तो provider या provisioner । Terraform किसी विशेष प्रदाता बाइनरी के नाम और संस्करण को समझने के लिए NAME का उपयोग करता है। तृतीय-पक्ष प्लगइन्स को अक्सर वितरण संग्रह में पहले से सेट एक उपयुक्त फ़ाइल नाम के साथ वितरित किया जाएगा ताकि इसे ऊपर वर्णित प्लगइन निर्देशिका में सीधे निकाला जा सके।