कस्टम प्रोवाइडर बनाना
प्रोवाइडर के कार्य करने का तरीका समझकर और Terraform Plugin Framework से कस्टम प्रोवाइडर लिखकर Terraform को मौजूदा एकीकरणों से आगे बढ़ाइए।
कस्टम प्रोवाइडर बनाना, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
जब मौजूदा providers पर्याप्त नहीं होते
Registry अधिकांश platforms को कवर करती है, लेकिन enterprises अक्सर ऐसे internal APIs चलाते हैं जिनका कोई provider नहीं होता। Custom provider Terraform को उन्हीं resources को समान plan/apply lifecycle के साथ manage करने देता है।
Providers कैसे काम करते हैं
Provider एक अलग plugin binary होता है जिसे Terraform launch करता है और gRPC के ज़रिए उससे बात करता है। Plugin Terraform के CRUD operations को target system के विरुद्ध API calls में बदलता है।
Plugin Framework
HashiCorp का आधुनिक Terraform Plugin Framework (Go) providers बनाने का अनुशंसित तरीका है और यह पुराने SDKv2 का स्थान लेता है। Providers Go में लिखे जाते हैं।
import (
"github.com/hashicorp/terraform-plugin-framework/provider"
)Provider परिभाषित करना
Provider type अपना नाम और अपने द्वारा उपलब्ध कराए जाने वाले resources तथा data sources घोषित करता है।
type widgetProvider struct{}
func (p *widgetProvider) Metadata(_ context.Context, _ provider.MetadataRequest, resp *provider.MetadataResponse) {
resp.TypeName = "widget"
}Resource schema
हर resource types और metadata वाले attributes का schema घोषित करता है। Users अपने HCL में यही सेट करते हैं।
resp.Schema = schema.Schema{
Attributes: map[string]schema.Attribute{
"name": schema.StringAttribute{Required: true},
"id": schema.StringAttribute{Computed: true},
},
}CRUD लागू करना
कोई resource Create, Read, Update और Delete लागू करता है। हर method आपके API को call करता है और परिणाम को Terraform state में वापस लिखता है।
func (r *widgetResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
// call API, then save state
}Read state को सही रखता है
Read method वास्तविक API से state को refresh करता है। यदि remote resource हट चुका हो, तो उसे state से हटाएँ ताकि Terraform उसे फिर से बनाने की योजना बनाए।
स्वीकृति testing
Providers acceptance tests का उपयोग करते हैं, जो test environment के विरुद्ध वास्तविक plan/apply cycles चलाते हैं। इन्हें environment variable के पीछे रखा जाता है, ताकि वे गलती से न चलें।
TF_ACC=1 go test ./... -vस्थानीय development override
Publish करने से पहले provider को test करने के लिए अपने CLI config में dev override का उपयोग करें, ताकि Terraform registry से download करने के बजाय आपके local binary को load करे।
provider_installation {
dev_overrides {
"acme/widget" = "/home/dev/go/bin"
}
direct {}
}Provider publish करना
Release को tag करके और binaries पर GPG key से हस्ताक्षर करके registry में publish करें। इसके बाद consumers इसे required_providers में घोषित करते हैं।
terraform {
required_providers {
widget = {
source = "acme/widget"
version = "~> 1.0"
}
}
}Maintenance संबंधी विचार
Provider एक दीर्घकालिक प्रतिबद्धता है: API changes, version compatibility और documentation सभी का रखरखाव आवश्यक है। एक बार की आवश्यकताओं के लिए external data source या script पूर्ण provider से अधिक सरल हो सकता है।
त्वरित जाँच
अपने custom provider ज्ञान की जाँच करें।
पुनरावलोकन: Terraform का विस्तार
आपने custom providers बनाना सीखा:
- Providers Go plugins होते हैं, जो gRPC के ज़रिए core से बात करते हैं।
- Plugin Framework schemas और CRUD methods परिभाषित करता है।
- Dev overrides local testing सक्षम करते हैं; acceptance tests व्यवहार की पुष्टि करते हैं।
- Publishing के लिए tags और signed binaries आवश्यक हैं।
एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 142
- पाठ
- 568
अक्सर पूछे जाने वाले प्रश्न
क्या “कस्टम प्रोवाइडर बनाना” पाठ निःशुल्क है?
हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कस्टम प्रोवाइडर बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कस्टम प्रोवाइडर बनाना” में मैं क्या सीखूँगा?
प्रोवाइडर के कार्य करने का तरीका समझकर और Terraform Plugin Framework से कस्टम प्रोवाइडर लिखकर Terraform को मौजूदा एकीकरणों से आगे बढ़ाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“कस्टम प्रोवाइडर बनाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- मल्टी-क्लाउड और हाइब्रिड-क्लाउड पैटर्न
- गवर्नेंस के लिए Sentinel नीतियाँ
- Terraform Cloud और Enterprise
- कस्टम प्रोवाइडर बनाना