Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर · पाठ

बाहरी डेटा और टेम्पलेट का उपयोग

external डेटा स्रोत के साथ गतिशील मान Terraform में लाएँ और templatefile फ़ंक्शन से विन्यास फ़ाइलें रेंडर करना सीखिए।

पाठ 4, कुल 4 में से13 चरण

बाहरी डेटा और टेम्पलेट का उपयोग, CoddyKit पर Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

अंतर्निर्मित डेटा स्रोतों से आगे

आप पहले ही डेटा स्रोतों से AWS की जानकारी प्राप्त कर चुके हैं। कभी-कभी आवश्यक डेटा किसी प्रदाता के बाहर रहता है, जैसे शेल स्क्रिप्ट का आउटपुट या आंतरिक API का परिणाम। external डेटा स्रोत और template फ़ंक्शन इस कमी को पूरा करते हैं।

external डेटा स्रोत

external डेटा स्रोत कोई प्रोग्राम चलाता है और उसके stdout से JSON पढ़ता है। यह उस तर्क के लिए वैकल्पिक मार्ग है जिसे Terraform मूल रूप से व्यक्त नहीं कर सकता।

data "external" "git_sha" {
  program = ["bash", "./scripts/git_sha.sh"]
}

प्रोग्राम अनुबंध

बाहरी प्रोग्राम stdin पर JSON ऑब्जेक्ट प्राप्त करता है और stdout पर स्ट्रिंग मानों वाला सपाट JSON ऑब्जेक्ट लिखना आवश्यक है। इसके अतिरिक्त कुछ भी त्रुटि है।

#!/bin/bash
echo '{"sha": "abc123"}'

बाहरी परिणाम पढ़ना

लौटाए गए मानों तक result मैप के माध्यम से पहुँचें। हर मान एक स्ट्रिंग होता है, इसलिए किसी अन्य प्रकार की आवश्यकता हो तो उसका प्रकार बदलें।

resource "aws_instance" "app" {
  ami           = "ami-0abcd1234"
  instance_type = "t3.micro"

  tags = {
    GitSha = data.external.git_sha.result.sha
  }
}

external से कब बचें

external स्रोत हर योजना पर चलता है और यदि स्क्रिप्ट नियतात्मक नहीं है तो दोहराने योग्य परिणामों को बिगाड़ देता है। जहाँ वास्तविक प्रदाता डेटा स्रोत उपलब्ध हो, उसे प्राथमिकता दें; external का उपयोग केवल वास्तविक कमियों के लिए करें।

templatefile से फ़ाइलें रेंडर करना

templatefile फ़ंक्शन टेम्पलेट पढ़ता है, चरों के स्थान पर उनके मान रखता है और एक स्ट्रिंग लौटाता है। यह cloud-init उपयोगकर्ता डेटा और कॉन्फ़िगरेशन फ़ाइलों के लिए अत्यंत उपयोगी है।

resource "aws_instance" "web" {
  ami           = "ami-0abcd1234"
  instance_type = "t3.micro"
  user_data = templatefile("init.tftpl", {
    hostname = "web-01"
  })
}

टेम्पलेट सिंटैक्स

.tftpl फ़ाइल के अंदर डॉलर-ब्रेस सिंटैक्स से मानों का अंतःस्थापन करें। Terraform दिए गए चरों के मान रख देता है।

#!/bin/bash
hostnamectl set-hostname ${hostname}
echo 'Provisioned by Terraform'

टेम्पलेट में लूप

टेम्पलेट पुनरावृत्ति के लिए निर्देशों का समर्थन करते हैं। for निर्देश दोहराई गई पंक्तियाँ रेंडर करता है, जो होस्ट की सूचियाँ बनाने में उपयोगी है।

%{ for ip in ips ~}
server ${ip}:8080
%{ endfor ~}

templatestring से इनलाइन टेम्पलेट

छोटे अंशों के लिए आप फ़ाइल छोड़कर templatestring (या पुराने format) का उपयोग करके कॉन्फ़िगरेशन में सीधे गतिशील स्ट्रिंग बना सकते हैं।

locals {
  greeting = templatestring("Hello, $${name}!", { name = "Ops" })
}

दोनों को संयोजित करना

एक सामान्य तरीका यह है: external स्रोत गतिशील मान प्राप्त करता है, फिर templatefile उसे उपयोगकर्ता डेटा के रूप में रेंडर किए गए कॉन्फ़िगरेशन में डालता है।

user_data = templatefile("app.tftpl", {
  version = data.external.git_sha.result.sha
})

रेंडर को आइडेम्पोटेंट रखना

क्योंकि user_data में बदलाव से इंस्टेंस का प्रतिस्थापन आवश्यक हो जाता है, इसलिए टेम्पलेट इनपुट स्थिर रखें। लगातार बदलने वाला मान, जैसे टाइमस्टैम्प, देने पर हर apply में इंस्टेंस फिर से बनेंगे।

त्वरित जाँच

बाहरी डेटा स्रोत की अपनी समझ जाँचिए।

पुनरावलोकन: गतिशील इनपुट और टेम्पलेट

आपने Terraform की डेटा क्षमताओं का विस्तार किया:

  • external स्रोत JSON लौटाने वाली स्क्रिप्ट चलाता है।
  • templatefile कॉन्फ़िगरेशन और उपयोगकर्ता-डेटा फ़ाइलें रेंडर करता है।
  • टेम्पलेट निर्देश लूप और अंतःस्थापन का समर्थन करते हैं।
  • अनचाहे प्रतिस्थापन से बचने के लिए इनपुट स्थिर रखें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “बाहरी डेटा और टेम्पलेट का उपयोग” पाठ निःशुल्क है?

हाँ—“बाहरी डेटा और टेम्पलेट का उपयोग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“बाहरी डेटा और टेम्पलेट का उपयोग” में मैं क्या सीखूँगा?

external डेटा स्रोत के साथ गतिशील मान Terraform में लाएँ और templatefile फ़ंक्शन से विन्यास फ़ाइलें रेंडर करना सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“बाहरी डेटा और टेम्पलेट का उपयोग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. डेटा स्रोतों से डेटा पूछना
  2. स्थानीय और दूरस्थ Exec प्रोविज़नर
  3. Null संसाधन और ट्रिगर
  4. बाहरी डेटा और टेम्पलेट का उपयोग
← Terraform: कोड के रूप में इन्फ्रास्ट्रक्चर पर वापस जाएँ