Terraform मॉड्यूल का परिचय
सामान्य अवसंरचना पैटर्न को समाहित और पुनःप्रयोग करने वाले मॉड्यूल के लाभ समझिए, जो कोड के संगठन और रखरखाव को बेहतर बनाते हैं।
Terraform मॉड्यूल का परिचय, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Terraform मॉड्यूल क्या हैं?
Terraform का मॉड्यूल Terraform कॉन्फ़िगरेशन का एक स्व-निहित पैकेज होता है। इसे प्रोग्रामिंग भाषाओं के किसी फ़ंक्शन या क्लास की तरह समझें। यह आपको संबंधित संसाधनों को एक साथ समूहित करके एक इकाई के रूप में प्रबंधित करने देता है।
मॉड्यूल आपके इन्फ्रास्ट्रक्चर कोड को व्यवस्थित करने और उसे अधिक प्रबंधनीय बनाने में सहायता करते हैं, विशेष रूप से बड़ी परियोजनाओं में।
Terraform मॉड्यूल का उपयोग क्यों करें?
मॉड्यूल आपके इन्फ्रास्ट्रक्चर को कोड के रूप में प्रबंधित करने में कई महत्वपूर्ण लाभ देते हैं:
- पुनः उपयोग: इन्फ्रास्ट्रक्चर के किसी हिस्से को एक बार परिभाषित करें और विभिन्न परियोजनाओं या परिवेशों में उसका कई बार उपयोग करें।
- व्यवस्था: जटिल कॉन्फ़िगरेशन को छोटे, प्रबंधनीय और तार्किक घटकों में बाँटें।
- एकरूपता: सुनिश्चित करें कि संसाधनों का हर बार मानकीकृत तरीके से प्रावधान हो, जिससे कॉन्फ़िगरेशन में विचलन और त्रुटियाँ कम हों।
- सहयोग: टीमें मॉड्यूल विकसित और साझा कर सकती हैं, जिससे विकास तेज़ होता है और मानक बनाए रखने में सहायता मिलती है।
मॉड्यूल की संरचना समझना
Terraform मॉड्यूल मूल रूप से एक ऐसी डायरेक्टरी होती है, जिसमें एक या अधिक .tf फ़ाइलें होती हैं। संरचना लचीली होती है, लेकिन सामान्य संरचना में ये शामिल होते हैं:
main.tf: मॉड्यूल द्वारा बनाए जाने वाले मुख्य संसाधनों को परिभाषित करता है।variables.tf: मॉड्यूल के व्यवहार को अनुकूलित करने वाले इनपुट वेरिएबल घोषित करता है।outputs.tf: मॉड्यूल द्वारा कॉल करने वालों के लिए उपलब्ध कराए जाने वाले आउटपुट मान परिभाषित करता है।versions.tf: मॉड्यूल के लिए Terraform और प्रदाता के संस्करण संबंधी सीमाएँ निर्दिष्ट करता है।
यह व्यवस्थित संरचना आपके कोड को सुव्यवस्थित और समझने योग्य बनाए रखने में सहायता करती है।
आपके पहले मॉड्यूल का कोड
आइए एक बहुत सरल मॉड्यूल परिभाषित करें, जो AWS S3 बकेट बनाता है। यह कोड आम तौर पर अपनी अलग डायरेक्टरी में रखा जाएगा, जैसे modules/my_s3_bucket/main.tf।
इस पूरी फ़ाइल को चलाकर रूट मॉड्यूल के रूप में इसका परिणाम देखा जा सकता है, लेकिन यहाँ इसका मुख्य उद्देश्य मॉड्यूल की आंतरिक संरचना दिखाना है।
provider "aws" {
region = "us-east-1" # Example region
}
variable "bucket_name" {
description = "Name for the S3 bucket."
type = string
}
variable "acl_setting" {
description = "ACL for the S3 bucket."
type = string
default = "private"
}
resource "aws_s3_bucket" "example_bucket" {
bucket = var.bucket_name
acl = var.acl_setting
tags = {
Environment = "Dev" # Example tag
}
}
output "bucket_id" {
description = "The ID of the S3 bucket."
value = aws_s3_bucket.example_bucket.id
}
output "bucket_arn" {
description = "The ARN of the S3 bucket."
value = aws_s3_bucket.example_bucket.arn
}मॉड्यूल इनपुट: वेरिएबल
इनपुट वेरिएबल आपको उसके मूल कोड में बदलाव किए बिना अपने मॉड्यूल के व्यवहार को अनुकूलित करने देते हैं। इन्हें मॉड्यूल डायरेक्टरी के भीतर मौजूद variables.tf फ़ाइल में परिभाषित किया जाता है।
मॉड्यूल को कॉल करते समय आप इन वेरिएबल को मान देते हैं, जिससे मॉड्यूल विभिन्न परिस्थितियों और परिवेशों में अत्यंत पुनः उपयोग योग्य बन जाता है। इन्हें फ़ंक्शन के तर्कों की तरह समझें।
variable "bucket_name" {
description = "Name for the S3 bucket."
type = string
}
variable "acl_setting" {
description = "ACL for the S3 bucket."
type = string
default = "private"
}मॉड्यूल आउटपुट: डेटा उपलब्ध कराना
आउटपुट मानों का उपयोग मॉड्यूल से उसके कॉल करने वाले कॉन्फ़िगरेशन तक डेटा उपलब्ध कराने के लिए किया जाता है। इस प्रकार आप मॉड्यूल द्वारा बनाए गए संसाधनों से जुड़ी महत्वपूर्ण जानकारी तक पहुँच सकते हैं।
आउटपुट मॉड्यूल डायरेक्टरी के भीतर मौजूद outputs.tf फ़ाइल में परिभाषित किए जाते हैं और आपके Terraform कॉन्फ़िगरेशन के अन्य हिस्सों या अन्य मॉड्यूल द्वारा भी संदर्भित किए जा सकते हैं।
output "bucket_id" {
description = "The ID of the S3 bucket."
value = aws_s3_bucket.example_bucket.id
}
output "bucket_arn" {
description = "The ARN of the S3 bucket."
value = aws_s3_bucket.example_bucket.arn
}अपने कस्टम मॉड्यूल को कॉल करना
अब जब हमने अपना my_s3_bucket मॉड्यूल परिभाषित कर लिया है, आइए इसे रूट कॉन्फ़िगरेशन से कॉल करें। source एट्रिब्यूट बताता है कि Terraform मॉड्यूल को कहाँ ढूँढ सकता है।
स्थानीय मॉड्यूल के लिए यह मॉड्यूल की डायरेक्टरी का सापेक्ष पथ होता है। हम मॉड्यूल के इनपुट वेरिएबल को मान देते हैं और उसके उपलब्ध कराए गए आउटपुट तक पहुँच सकते हैं।
provider "aws" {
region = "us-east-1"
}
module "my_website_bucket" {
source = "./modules/my_s3_bucket" # Path to your local module
bucket_name = "my-unique-website-bucket-12345"
acl_setting = "public-read"
}
output "website_bucket_arn" {
description = "ARN of the website S3 bucket."
value = module.my_website_bucket.bucket_arn
}
output "website_bucket_id" {
description = "ID of the website S3 bucket."
value = module.my_website_bucket.bucket_id
}मॉड्यूल के विभिन्न स्रोत
मॉड्यूल केवल स्थानीय नहीं होते! Terraform विभिन्न स्रोतों से मॉड्यूल प्राप्त कर सकता है, जिससे आपको अधिक लचीलापन मिलता है:
- स्थानीय पथ:
./modules/my_module(जैसा हमारे उदाहरण में देखा गया है) - Terraform रजिस्ट्री:
hashicorp/vpc/aws(सार्वजनिक रूप से उपलब्ध मॉड्यूल) - Git रिपॉज़िटरी:
git::https://example.com/repo.git - S3 बकेट:
s3::https://s3-us-west-2.amazonaws.com/example-bucket/module.zip
सामान्य इन्फ्रास्ट्रक्चर प्रतिरूपों के लिए पहले से बने और समुदाय द्वारा जाँचे गए मॉड्यूल खोजने हेतु Terraform रजिस्ट्री एक उत्कृष्ट स्थान है।
मॉड्यूल का व्यावहारिक प्रभाव
कल्पना करें कि आप अनेक परिवेशों (विकास, स्टेजिंग, प्रोडक्शन) में सैकड़ों संसाधनों का प्रबंधन कर रहे हैं। मॉड्यूल के बिना आपके पास बहुत बड़ी और दोहराव वाली कॉन्फ़िगरेशन फ़ाइलें होतीं।
मॉड्यूल आपको "वेब सर्वर" या "डेटाबेस" प्रतिरूप को एक बार परिभाषित करने देते हैं। फिर आप अलग-अलग परिवेश-विशिष्ट सेटिंग के लिए अलग वेरिएबल देते हुए, प्रत्येक इंस्टेंस के लिए उस मॉड्यूल को आसानी से कॉल कर सकते हैं। इससे त्रुटियाँ बहुत कम होती हैं, अपडेट सरल हो जाते हैं और आपका इन्फ्रास्ट्रक्चर वास्तव में स्केलेबल बनता है।
त्वरित जाँच
आपने Terraform मॉड्यूल की संरचना और लाभों के बारे में सीखा है। आइए देखें कि क्या आप किसी प्रमुख लाभ की पहचान कर सकते हैं।
पुनरावलोकन और अगले चरण
इस पाठ में हमने Terraform मॉड्यूल को आपके इन्फ्रास्ट्रक्चर कोड को व्यवस्थित और पुनः उपयोग करने के शक्तिशाली साधन के रूप में प्रस्तुत किया। आपने सीखा:
- मॉड्यूल संसाधनों को पुनः उपयोग योग्य इकाइयों में समाहित करते हैं।
- वे कोड की व्यवस्था, एकरूपता और पुनः उपयोग क्षमता में सुधार करते हैं।
- मॉड्यूल इनपुट के लिए
variables.tfऔर उपलब्ध कराए गए डेटा के लिएoutputs.tfका उपयोग करते हैं। - आप स्थानीय पथों, रजिस्ट्री या Git रिपॉज़िटरी से मॉड्यूल कॉल कर सकते हैं।
अगले पाठ में हम अपने स्वयं के पुनः उपयोग योग्य मॉड्यूल बनाने, अधिक उन्नत प्रतिरूपों और सर्वोत्तम प्रथाओं का अध्ययन करने पर ध्यान देंगे।
एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 142
- पाठ
- 568
अक्सर पूछे जाने वाले प्रश्न
क्या “Terraform मॉड्यूल का परिचय” पाठ निःशुल्क है?
हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Terraform मॉड्यूल का परिचय” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Terraform मॉड्यूल का परिचय” में मैं क्या सीखूँगा?
सामान्य अवसंरचना पैटर्न को समाहित और पुनःप्रयोग करने वाले मॉड्यूल के लाभ समझिए, जो कोड के संगठन और रखरखाव को बेहतर बनाते हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Terraform मॉड्यूल का परिचय” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Terraform मॉड्यूल का परिचय
- पुनःप्रयोग योग्य मॉड्यूल बनाना
- पर्यावरणों के लिए वर्कस्पेस का उपयोग
- रजिस्ट्री में मॉड्यूल प्रकाशित करना