कोर्स
जब मैंने पहली बार Terraform इस्तेमाल किया, तो मैं सशंकित था। क्लाउड कंसोल में क्लिक करने के बजाय अपने कोड एडिटर में इन्फ्रास्ट्रक्चर अपडेट करना अजीब लगा, और उस समय मुझे इसके फायदे समझ नहीं आए। लेकिन चूंकि यह कंपनी की नीति थी, मैं चल पड़ा। फिर एक दिन, मुझसे पूरा नया dev वातावरण स्पिन-अप करने को कहा गया। मुझे साफ याद है कि मैं अपनी टीम के सीनियर डेव के पास गया और पूछा कि मैंने क्या मिस कर दिया, क्योंकि मुझे सिर्फ 10 मिनट लगे। उन्होंने मेरा काम चेक किया, हंसे और पुष्टि की कि हाँ, यह इतना ही आसान था।
यह कोई हैरानी की बात नहीं कि उद्योग में Terraform इतनी तेजी से अपनाया गया है। क्लाउड कंप्यूटिंग के तेज़ी से विकसित होने के साथ, दुनिया भर की टीमें बढ़ती जटिल इन्फ्रास्ट्रक्चर को मैनेज करने के लिए Infrastructure as Code (IaC) की ओर शिफ्ट हो रही हैं। इन्फ्रास्ट्रक्चर मैनेजमेंट के लिए Terraform का स्थिर, दोहराने योग्य तरीका इसे विभिन्न क्षेत्रों की कंपनियों के लिए शीर्ष पसंद बनाता है।
Terraform इंटरव्यू में केवल यह नहीं आंका जाएगा कि आपको कितने कमांड याद हैं, बल्कि यह कि आप Terraform को आधुनिक DevOps वर्कफ़्लो में प्रभावी ढंग से कैसे इस्तेमाल करते हैं और वास्तविक समस्याएँ कैसे हल करते हैं।
यहाँ संचार कुंजी है। हाल ही के DataFramed पॉडकास्ट (तकनीकी भूमिकाओं पर) में चर्चा के अनुसार, असली महारत अनुकूलन क्षमता है:
आपको किसी भी प्रकार की इनसाइट इस तरह देने में सक्षम होना चाहिए कि एक छह साल का बच्चा भी समझ जाए, और साथ ही इस तरह भी कि मुझे या मुझसे भी ज्यादा तकनीकी व्यक्ति को संतुष्टि मिले। अगर आप सच में अपने काम के उस्ताद हैं, तो आप उसे बहुत सरल बना सकते हैं, लेकिन आप उसे इतना जटिल भी बना सकते हैं कि, सच कहें तो, केवल वे ही लोग समझ सकें जो तकनीकी विशेषज्ञता के लिहाज़ से वास्तव में बहुत ऊपर हैं।
Mo Chen, Data & Analytics Manager at NatWest Group
तैयारी के दौरान यह मानसिकता बनाए रखना बहुत महत्वपूर्ण है। इस लेख में, मैं आपको सबसे सामान्य Terraform इंटरव्यू प्रश्नों से रूबरू कराऊंगा। मैंने इन्हें तीन श्रेणियों में बाँटा है – बेसिक, इंटरमीडिएट और एडवांस्ड – ताकि आप अपने करियर के किसी भी चरण में हों, यहाँ आपके लिए कुछ न कुछ हो!
और शुरू करने से पहले: यदि आप क्लाउड कंप्यूटिंग में बिल्कुल नए हैं, तो मैं पहले हमारा Introduction to Cloud Computing कोर्स करने की सलाह दूँगा। यह कोर्स क्लाउड की बुनियाद समझाता है, scalability और latency जैसे प्रमुख शब्दों की व्याख्या करता है, और AWS जैसे प्रदाताओं के क्लाउड टूल्स के फायदे बताता है। Terraform पूरी तरह क्लाउड इन्फ्रास्ट्रक्चर से जुड़ा है, इसलिए पहले इन अवधारणाओं से, सैद्धांतिक और व्यावहारिक—दोनों रूपों में—परिचित हो लें!
संक्षेप में
-
Terraform, HashiCorp का ओपन-सोर्स IaC टूल है जो HCL के जरिए क्लाउड इन्फ्रास्ट्रक्चर प्रोविजन करता है
-
पाँच कमांड ज्यादातर रोज़मर्रा के काम कवर कर लेते हैं:
init,plan,apply,destroy, औरvalidate -
स्टेट फाइलें वास्तविक संसाधनों को ट्रैक करती हैं; टीम सहयोग के लिए इन्हें रिमोटली स्टोर करें (S3 + DynamoDB या Terraform Cloud)
-
terraform taintTerraform 1.0 में हटा दिया गया; संसाधन को पुनर्सृजित कराने के लिएterraform apply -replaceका उपयोग करें -
सीनियर स्तर पर प्रश्नों में मॉड्यूल्स, वर्कस्पेसेज़, स्टेट लॉकिंग, CI/CD इंटीग्रेशन, और सीक्रेट मैनेजमेंट शामिल होते हैं
बेसिक Terraform इंटरव्यू प्रश्न
ये प्रश्न इस पर केंद्रित हैं कि Terraform क्या है और यह कैसे काम करता है। यदि आपने पहले कभी Terraform के साथ काम नहीं किया है, या इंटरव्यूअर आपके कौशल स्तर को लेकर आश्वस्त नहीं हैं और बुनियादी बातों से शुरू करना चाहते हैं, तो आपको ये प्रश्न मिलेंगे।
1. Terraform क्या है, और इसका मुख्य उद्देश्य क्या है?
Terraform, HashiCorp द्वारा बनाया गया एक ओपन-सोर्स Infrastructure as Code (IaC) टूल है। यह आपको HCL (HashiCorp Configuration Language) नामक घोषणात्मक कॉन्फ़िगरेशन भाषा का उपयोग करके क्लाउड और ऑन-प्रिमाइसेज़ इन्फ्रास्ट्रक्चर को परिभाषित और प्रबंधित करने देता है। Terraform प्रोविजनिंग, अपडेटिंग, और इन्फ्रास्ट्रक्चर का वर्ज़निंग ऑटोमेट करता है, जिससे कॉन्फ़िगरेशन ड्रिफ्ट और मैनुअल त्रुटि कम होती हैं।
2. Terraform अन्य IaC टूल्स जैसे CloudFormation या Ansible से कैसे अलग है?
Terraform बनाम CloudFormation: Terraform क्लाउड-अज्ञेय (cloud-agnostic) है, यानी यह कई प्रदाताओं (AWS, Azure, GCP आदि) में इन्फ्रास्ट्रक्चर मैनेज कर सकता है, जबकि AWS CloudFormation केवल AWS-विशिष्ट है। Terraform में अधिक लचीला सिंटैक्स और स्टेट मैनेजमेंट है।
Terraform बनाम Ansible: Ansible मुख्यतः एक कॉन्फ़िगरेशन मैनेजमेंट टूल है (सॉफ़्टवेयर, पैकेज, और OS कॉन्फ़िगरेशन मैनेज करना), जबकि Terraform घोषणात्मक रूप से इन्फ्रास्ट्रक्चर संसाधनों के प्रोविजनिंग और प्रबंधन पर केंद्रित है।
3. प्रमुख Terraform कमांड कौन-से हैं, और वे क्या करते हैं?
-
terraform init– Terraform प्रोजेक्ट को इनिशियलाइज़ करता है और आवश्यक प्रोवाइडर प्लगइन्स डाउनलोड करता है। -
terraform plan– एक एक्ज़िक्यूशन प्लान बनाता है जो दिखाता है कि Terraform कौन-से बदलाव लागू करेगा। -
terraform apply– प्लान किए गए बदलाव लागू करता है और संसाधन प्रोविजन करता है। -
terraform destroy– सभी मैनेज्ड संसाधन डिलीट करता है। -
terraform validate– Terraform कॉन्फ़िगरेशन फाइलों में सिंटैक्स त्रुटियाँ जाँचता है। -
terraform fmt–.tfफाइलों को मानक HCL शैली में फॉर्मेट करता है। हर कमिट से पहले इसे चलाएँ। -
terraform output– स्टेट फाइल से आउटपुट वैल्यूज़ दिखाता है; अन्य स्क्रिप्ट्स में resource IDs या IP पते पाइप करने में उपयोगी।
4. Terraform स्टेट फाइल क्या है?
Terraform एक स्टेट फाइल (terraform.tfstate) बनाए रखता है ताकि वह उस वास्तविक इन्फ्रास्ट्रक्चर को ट्रैक कर सके जिसे वह मैनेज करता है। स्टेट फाइल Terraform को संसाधनों की मौजूदा स्थिति समझने, ड्रिफ्ट पहचानने, और कुशलतापूर्वक बदलाव लागू करने में मदद करती है। सहयोग के लिए यह अत्यंत महत्वपूर्ण है, लेकिन क्योंकि इसमें संवेदनशील डेटा हो सकता है, इसे सुरक्षित रूप से स्टोर करना चाहिए।
5. Terraform प्रोवाइडर्स क्या होते हैं, और वे क्यों महत्वपूर्ण हैं?
Terraform में प्रोवाइडर्स ऐसे प्लगइन्स हैं जो इसे क्लाउड प्लेटफ़ॉर्म्स, SaaS सेवाओं, और अन्य APIs के साथ इंटरैक्ट करने में सक्षम बनाते हैं। प्रत्येक प्रोवाइडर (जैसे AWS, Azure, Kubernetes) यह निर्धारित करता है कि Terraform किन संसाधनों को मैनेज कर सकता है। प्रोवाइडर्स के बिना Terraform को यह पता ही नहीं चलेगा कि इन्फ्रास्ट्रक्चर संसाधन कैसे बनाए या कॉन्फ़िगर किए जाएँ।
यदि आप Terraform और इसके काम करने के तरीके के बारे में और जानना चाहते हैं, तो यह शुरुआती गाइड देखें। उस लेख में, मैं Terraform के प्रमुख घटकों पर विस्तार से जाता/जाती हूँ और इस टूल के फ़ायदे-नुकसान बताता/बताती हूँ। AWS पर इन्फ्रास्ट्रक्चर प्रोविजनिंग शुरू कराने के लिए एक छोटा-सा ट्यूटोरियल भी है।
इंटरमीडिएट Terraform इंटरव्यू प्रश्न
यह अनुभाग Terraform के वर्कफ़्लोज़, कॉन्फ़िगरेशन प्रथाओं, और वास्तविक प्रोजेक्ट्स में स्टेट और संसाधनों के प्रबंधन की रणनीतियों में गहराई से जाता है। इन प्रश्नों के उत्तर देने के लिए आपको Terraform का अच्छा-खासा व्यावहारिक अनुभव चाहिए होगा, खासकर जब आपसे विशिष्ट उदाहरणों पर बात करने को कहा जाए।
6. Terraform मॉड्यूल्स क्या हैं?
Terraform मॉड्यूल्स पुन: प्रयोज्य कॉम्पोनेन्ट्स हैं जो संबंधित संसाधनों को एक साथ समूहित करके इन्फ्रास्ट्रक्चर कोड को व्यवस्थित करने में मदद करते हैं। ये मेंटेनबिलिटी बढ़ाते हैं, आपकी टीम को प्रोजेक्ट्स के बीच कोड फिर से इस्तेमाल करने देते हैं, और डिप्लॉयमेंट्स को सरल बनाते हैं।
एक मॉड्यूल उतना ही सरल हो सकता है जितना कि .tf फाइलों और वैकल्पिक variables.tf फाइल वाला एक डायरेक्टरी!
हैंड्स-ऑन उदाहरण के लिए, हमारा Terraform with Docker ट्यूटोरियल कंटेनराइज़्ड इन्फ्रास्ट्रक्चर प्रोविजन करने हेतु पुन: प्रयोज्य मॉड्यूल्स बनाना सिखाता है।
7. Terraform रिमोट स्टेट कैसे मैनेज करता है?
डिफ़ॉल्ट रूप से Terraform स्टेट लोकली स्टोर करता है, लेकिन सहयोग के लिए यह रिमोट बैकएंड्स (AWS के लिए S3 + DynamoDB, Google Cloud के लिए GCS, या Terraform Cloud) सपोर्ट करता है। रिमोट स्टेट सक्षम करता है:
- कई टीम सदस्यों के लिए साझा एक्सेस।
- कनकरेंट मॉडिफिकेशन संघर्ष से बचने के लिए स्टेट लॉकिंग।
- एन्क्रिप्शन और नियंत्रित एक्सेस के साथ बेहतर सुरक्षा।
8. Terraform वर्कस्पेसेज़ क्या हैं, और इन्हें कब उपयोग करना चाहिए?
Terraform वर्कस्पेसेज़ आपको एक ही कॉन्फ़िगरेशन के भीतर अलग-अलग स्टेट फाइलें बनाए रखने देते हैं। ये कई एनवायरनमेंट्स (जैसे dev, staging, prod) को बिना कोड डुप्लीकेट किए मैनेज करते समय उपयोगी होते हैं।
सरल एनवायरनमेंट अलगाव के लिए वर्कस्पेसेज़ अच्छे हैं, लेकिन जटिल मल्टी-अकाउंट सेटअप में बोझिल हो सकते हैं।

स्रोत: DevOps Mojo
9. Terraform मौजूदा इन्फ्रास्ट्रक्चर को कैसे इम्पोर्ट करता है, और इसकी सीमाएँ क्या हैं?
Terraform मौजूदा संसाधनों को अपनी स्टेट में terraform import CLI कमांड से इम्पोर्ट कर सकता है या, Terraform 1.5 से, सीधे HCL में एक import ब्लॉक से। CLI कमांड स्टेट अपडेट करता है लेकिन आपको संबंधित .tf कॉन्फ़िगरेशन हाथ से लिखना होता है। Terraform 1.6+ में, terraform plan -generate-config-out=generated.tf चलाने से वह कॉन्फ़िगरेशन ड्राफ्ट हो सकता है, जिससे मैनुअल रिकंसिलिएशन का काम घटता है।
इस इम्पोर्ट फंक्शनैलिटी की कुछ सीमाएँ हैं:
- जटिल सेटअप में मैनुअल कॉन्फ़िगरेशन रिकंसिलिएशन की आवश्यकता होती है।
- कुछ संसाधन प्रकार इम्पोर्ट के लिए सपोर्टेड नहीं हैं।
- यदि इम्पोर्ट की गई संसाधन कॉन्फ़िगरेशन वास्तविक इन्फ्रास्ट्रक्चर से मेल नहीं खाती, तो ड्रिफ्ट का जोखिम रहता है।
10. Terraform प्रोविज़नर्स क्या हैं, और इन्हें कब उपयोग करना चाहिए?
प्रोविज़नर्स संसाधन बनने के बाद उस पर स्क्रिप्ट्स या कमांड्स चलाते हैं। ये अक्सर VMs को कॉन्फ़िगर करने या सॉफ़्टवेयर इंस्टॉल करने जैसे कार्यों में उपयोग होते हैं।
प्रोविज़नर्स दो प्रकार के होते हैं:
- लोकल प्रोविज़नर्स, जो Terraform चलाने वाली मशीन पर रन होते हैं।
- रिमोट प्रोविज़नर्स, जो SSH या WinRM के जरिए टार्गेट संसाधन पर रन होते हैं।
क्योंकि प्रोविज़नर्स निर्भरताएँ जोड़ते हैं और Terraform की घोषणात्मक प्रकृति को घटाते हैं, इन्हें संयम से उपयोग करें। विकल्प के रूप में Ansible जैसे कॉन्फ़िगरेशन मैनेजमेंट टूल्स या cloud-init का उपयोग करें।

स्रोत: Opcito
11. Terraform में ड्रिफ्ट डिटेक्शन क्या है, और इसे कैसे संबोधित किया जा सकता है?
ड्रिफ्ट डिटेक्शन उस स्थिति को दर्शाता है जब वास्तविक इन्फ्रास्ट्रक्चर की स्थिति Terraform की कॉन्फ़िगरेशन में परिभाषित स्टेट से अलग हो जाती है। यह तब होता है जब Terraform के बाहर, जैसे क्लाउड प्रदाता के कंसोल में या अन्य ऑटोमेशन टूल्स से, मैनुअल बदलाव किए जाते हैं।
Terraform terraform plan चलाकर ड्रिफ्ट का पता लगा सकता है, जो स्टेट फाइल में मौजूदा स्टेट की तुलना वास्तविक इन्फ्रास्ट्रक्चर से करता है।
यदि ड्रिफ्ट मिले, तो आपको मैनुअल बदलाव वापस लेकर कॉन्फ़िगरेशन से मिलाना चाहिए, या कॉन्फ़िगरेशन को नई इच्छित स्थिति के अनुरूप अपडेट करना चाहिए, और terraform apply चलाकर इन्फ्रास्ट्रक्चर को कॉन्फ़िगरेशन के अनुरूप ला देना चाहिए।
12. कई इंस्टांसेज़ पर डिप्लॉय हुई किसी एप्लिकेशन के लिए आप Terraform के साथ रोलिंग अपडेट कैसे लागू करेंगे?
रोलिंग अपडेट आपको अपनी इन्फ्रास्ट्रक्चर को क्रमिक रूप से अपडेट करने देता है ताकि डाउनटाइम कम हो और अपडेट के दौरान आपकी कुछ एप्लिकेशन इंस्टांसेज़ उपलब्ध रहें। रोलिंग अपडेट परिदृश्य में, Terraform संसाधन का नया इंस्टांस बनाता है, उसके स्वस्थ होने का इंतज़ार करता है (हेल्थ चेक्स से), और फिर धीरे-धीरे पुराने इंस्टांसेज़ को बदलता है।
व्यावहारिक रूप से, आप Terraform में अपरिवर्तनीय (immutable) इन्फ्रास्ट्रक्चर परिभाषित करके और count या for_each का उपयोग करके (जैसे EC2 इंस्टांसेज़, लोड बैलेंसर) इसे लागू कर सकते हैं।
13. आप Terraform में संसाधन निर्भरताएँ कैसे संभालते हैं, और इम्प्लिसिट व एक्स्प्लिसिट डिपेंडेंसी की क्या भूमिका है?
Terraform में संसाधन निर्भरताएँ इसके ग्राफ-बिल्डिंग मैकेनिज़्म से स्वतः हैंडल होती हैं। इम्प्लिसिट डिपेंडेंसी तब बनती है जब एक संसाधन अपने कॉन्फ़िगरेशन में दूसरे संसाधन को रेफ़रेंस करता है (उदाहरण के लिए, एक aws_instance में aws_security_group को रेफ़रेंस करना), और Terraform स्वचालित रूप से निर्भरता क्रम निकाल लेता है।
एक्स्प्लिसिट डिपेंडेंसी उन किन्हीं मामलों में उपयोगी होती है जहाँ Terraform निर्भरता क्रम स्वतः नहीं निकाल पाता। यह depends_on आर्ग्यूमेंट से बनाई जाती है, जो संसाधनों के सीधे रेफ़रेंस न होने पर भी Terraform को एक विशेष निष्पादन क्रम लागू करने के लिए बाध्य करता है।

स्रोत: HashiCorp
एडवांस्ड Terraform इंटरव्यू प्रश्न
एडवांस्ड स्तर पर, इंटरव्यूअर Terraform के साथ बड़े पैमाने पर इन्फ्रास्ट्रक्चर प्रबंधन में आपकी विशेषज्ञता देखना चाहेंगे। प्रश्नों में मल्टी-क्लाउड डिप्लॉयमेंट्स, टीमों में सहयोग, और ऑटोमेशन चुनौतियाँ शामिल हो सकती हैं। यहाँ आप सचमुच अपना अनुभव और कौशल दिखा सकते हैं, इसलिए जिन प्रोजेक्ट्स पर आपने काम किया है, उनके बारे में बताने और व्यावहारिक उदाहरण देने में हिचकिचाएँ नहीं!
14. आप Terraform के साथ जटिल मल्टी-क्लाउड डिप्लॉयमेंट्स कैसे मैनेज करते हैं?
मल्टी-क्लाउड एनवायरनमेंट्स मैनेज करने के लिए एक ही कॉन्फ़िगरेशन में कई प्रोवाइडर्स संभालने होते हैं। Terraform आपको अलग-अलग क्लाउड प्रोवाइडर्स (जैसे AWS, Azure, Google Cloud) के संसाधन उसी main.tf फाइल में कॉन्फ़िगर करने देता है, अलग-अलग प्रोवाइडर्स निर्दिष्ट कर के और प्रोवाइडर-विशिष्ट संसाधनों का उपयोग कर के।
आप एक ही प्रोवाइडर के कई इंस्टेन्सेज़ (जैसे अलग-अलग रीज़न में AWS) मैनेज करने के लिए प्रोवाइडर एलियस का उपयोग कर सकते हैं, और मॉड्यूल्स के जरिए सामान्य कॉन्फ़िगरेशन समेकित करके डुप्लीकेशन से बच सकते हैं। क्रॉस-क्लाउड निर्भरताओं को सावधानी से मैनेज करें, क्योंकि अलग-अलग क्लाउड्स के संसाधनों के बीच प्रत्यक्ष संबंध न भी हों।
15. Terraform में taint और untaint कमांड क्या थे, और इन्हें किसने रिप्लेस किया?
terraform taint और terraform untaint को Terraform 0.15.2 में डिप्रिकेट कर दिया गया और Terraform 1.0 में पूरी तरह हटा दिया गया। ये अगले apply पर किसी संसाधन को बलपूर्वक पुनर्सृजन के लिए मार्क करते थे। पुराने कोडबेस में आप इन्हें देख सकते हैं, लेकिन आधुनिक Terraform संस्करणों में ये काम नहीं करते।
आधुनिक विकल्प है terraform apply -replace="resource.address"। उदाहरण के लिए किसी विशेष EC2 इंस्टांस को पुनर्सृजित कराने के लिए: terraform apply -replace="aws_instance.web"। यह बिना अलग स्टेट-मॉडिफिकेशन स्टेप के, इनलाइन वही परिणाम देता है। इसका कोई untaint समतुल्य नहीं; बस -replace फ़्लैग के बिना apply चलाएँ।
16. Terraform Cloud और Terraform Enterprise क्या हैं, और इनमें प्रमुख अंतर क्या हैं?
Terraform Cloud HashiCorp की SaaS पेशकश है जो सहयोग सुविधाएँ देती है, जैसे रिमोट स्टेट मैनेजमेंट, वर्कस्पेस मैनेजमेंट, वर्ज़न कंट्रोल इंटीग्रेशन, और पॉलिसी प्रवर्तन। यह छोटे से मध्यम आकार की टीमों के लिए उपयुक्त है।
Terraform Enterprise इसका स्व-होस्टेड संस्करण है जिसमें प्राइवेट मॉड्यूल रजिस्ट्रियाँ, अधिक सूक्ष्म एक्सेस कंट्रोल्स, और उन्नत सुरक्षा सुविधाएँ, जिनमें ऑन-प्रिमाइसेज़ डिप्लॉयमेंट शामिल है, जैसी क्षमताएँ मिलती हैं।
संक्षेप में, Terraform Cloud को HashiCorp होस्ट और मेंटेन करता है, जबकि Terraform Enterprise स्व-होस्टेड है और संगठनों को अपनी इन्फ्रास्ट्रक्चर पर पूर्ण नियंत्रण देता है।

स्रोत: Google Cloud
17. बड़ी टीमों के साथ काम करते समय Terraform में स्टेट लॉकिंग और कन्करेंसी मुद्दों को कैसे मैनेज करते हैं?
Terraform में स्टेट लॉकिंग दो उपयोगकर्ताओं को एक ही समय में एक ही स्टेट में बदलाव करने से रोकती है, जो स्टेट फाइल को करप्ट कर सकता है।
Terraform Cloud और Enterprise बिल्ट-इन बैकएंड के जरिए स्वतः स्टेट लॉकिंग संभालते हैं।
S3 + DynamoDB जैसे रिमोट बैकएंड्स के लिए, Terraform कन्करेंसी समस्याओं से बचने और स्टेट लॉकिंग के लिए DynamoDB का उपयोग करता है।
18. ज़ीरो-डाउनटाइम डिप्लॉयमेंट्स क्या हैं, और Terraform इन्हें कैसे हासिल कर सकता है?
ज़ीरो-डाउनटाइम डिप्लॉयमेंट्स वे होते हैं जब इन्फ्रास्ट्रक्चर में बदलाव लागू करते समय सेवाओं की उपलब्धता बाधित नहीं होती। Terraform इसे निम्न रणनीतियों से संभव करता है:
- ब्लू-ग्रीन डिप्लॉयमेंट: दो समान एनवायरनमेंट्स (ब्लू और ग्रीन) का उपयोग, जिनके बीच ट्रैफ़िक स्विच कर के बिना डाउनटाइम बदलाव डिप्लॉय किए जाते हैं।
- रोलिंग अपडेट्स: एक समय में कम संख्या में इंस्टांसेज़ पर क्रमिक रूप से बदलाव लागू करना, ताकि बाकी अपडेट के दौरान सक्रिय रहें।
ये क्लाउड आर्किटेक्चर में आम रणनीतियाँ हैं, और Terraform इन्हें लागू करने में मददगार सुविधाएँ देता है। हालाँकि, इन रणनीतियों को पूरी तरह लागू करने के लिए अक्सर लोड बैलेंसर जैसे अतिरिक्त टूल्स की आवश्यकता होती है।
19. आप Terraform में सीक्रेट्स मैनेजमेंट कैसे संभालते हैं, और सर्वोत्तम प्रथाएँ क्या हैं?
Terraform स्वयं सीक्रेट्स को मैनेज नहीं करता, लेकिन बाहरी सीक्रेट मैनेजमेंट टूल्स के साथ इंटीग्रेट कर सकता है। उदाहरण के लिए, आप उपयोग कर सकते हैं:
- HashiCorp Vault: Terraform में Vault के लिए बिल्ट-इन सपोर्ट है जिससे रनटाइम पर API keys या पासवर्ड जैसे सीक्रेट्स प्राप्त किए जा सकते हैं, ताकि वे कॉन्फ़िगरेशन फाइलों में हार्डकोड न हों।
- एनवायरनमेंट वैरिएबल्स: संवेदनशील मानों के लिए आप उन्हें एनवायरनमेंट वैरिएबल्स के रूप में सेट कर सकते हैं।
- एन्क्रिप्शन वाले रिमोट बैकएंड्स: स्टेट फाइलों को एन्क्रिप्टेड रिमोट बैकएंड्स में स्टोर करें ताकि संवेदनशील डेटा तक अनधिकृत पहुंच रोकी जा सके।
- "sensitive" आर्ग्यूमेंट का उपयोग: आउटपुट्स और वैरिएबल्स को sensitive के रूप में मार्क करें ताकि वे Terraform plan/apply लॉग्स में न दिखें।
20. आप कस्टम Terraform प्रोवाइडर्स कैसे लागू करते हैं, और कब उनकी आवश्यकता पड़ती है?
कस्टम Terraform प्रोवाइडर्स तब उपयोग होते हैं जब आपको ऐसे संसाधन या सेवाएँ मैनेज करनी हों जिन्हें Terraform नैटिव रूप से सपोर्ट नहीं करता। ये Go में इम्प्लीमेंट किए जाते हैं और इनमें ऐसे कस्टम फ़ंक्शंस बनाना शामिल है जो उन APIs या सेवाओं के साथ इंटरैक्ट करते हैं जो मौजूदा प्रोवाइडर्स द्वारा कवर नहीं हैं—जैसे इन-हाउस API, कोई विशेष क्लाउड सेवा, या स्वामित्व (proprietary) तकनीक।
Terraform, Terraform Plugin SDK प्रदान करता है ताकि आप प्रोवाइडर्स बना सकें, लेकिन आपको ऑथेंटिकेशन, CRUD (Create, Read, Update, Delete) ऑपरेशंस, और उस API-विशिष्ट कॉन्फ़िगरेशन को सँभालना होगा जिसके साथ आप इंटरैक्ट कर रहे हैं।
21. आप Terraform को CI/CD पाइपलाइन में कैसे इंटीग्रेट करते हैं?
CI/CD इंटीग्रेशन DevOps भूमिकाओं के लिए सबसे आम एडवांस्ड इंटरव्यू विषयों में से एक है। मानक पैटर्न यह है कि पुल रिक्वेस्ट्स पर terraform plan चलाया जाए ताकि रिव्यूअर्स इन्फ्रास्ट्रक्चर डिफ़ देख सकें, और फिर टार्गेट ब्रांच में मर्ज पर terraform apply चलाया जाए।
GitHub Actions में, आप hashicorp/setup-terraform एक्शन का उपयोग करेंगे, क्लाउड क्रेडेंशियल्स को रिपॉज़िटरी सीक्रेट्स में स्टोर करेंगे, और प्लान व अप्लाई के लिए अलग-अलग स्टेप्स के साथ वर्कफ़्लो परिभाषित करेंगे। प्रोडक्शन एनवायरनमेंट्स के लिए, apply से पहले मैनुअल अप्रूवल गेट मानक अभ्यास है। इसी तरह के पैटर्न GitLab CI और Jenkins में भी काम करते हैं। इंटरव्यूअर्स जिस मुख्य बात को सुनना चाहते हैं: आप हमेशा plan (रीड-ओनली, हर PR पर चलाना सुरक्षित) को apply (संभावित रूप से विनाशकारी) से अलग रखते हैं, और कभी भी बिना पूर्व plan आउटपुट के apply नहीं चलाते।
यह देखने के लिए कि व्यावहारिक रूप में CI/CD पाइपलाइंस कैसे काम करती हैं, हमारा Azure DevOps ट्यूटोरियल पाइपलाइन की बुनियादें कवर करता है जो Terraform वर्कफ़्लोज़ पर सीधे लागू होती हैं।
अंतिम विचार
आशा है कि इस लेख ने आपको अपने Terraform इंटरव्यू में सफल होने का ज्ञान और आत्मविश्वास दिया होगा!
यदि आपको और अभ्यास चाहिए, तो सामान्य प्रोविजनिंग परिदृश्यों के लिए HashiCorp Terraform ट्यूटोरियल्स देखें। आप हमारा 2026 के लिए 14 आवश्यक डेटा इंजीनियरिंग टूल्स भी देख सकते हैं ताकि समझ सकें कि व्यापक डेटा इंजीनियर टूलकिट में Terraform कैसे फिट बैठता है, या व्यापक हायरिंग प्रक्रिया की तैयारी के लिए हमारे डेटा इंजीनियरिंग इंटरव्यू प्रश्न ब्राउज़ करें।
Terraform FAQs
इंटरव्यू के लिए मेरा Terraform ज्ञान कितना गहरा होना चाहिए?
यह भूमिका पर निर्भर करता है। जूनियर पोज़ीशन के लिए, प्रोवाइडर्स, स्टेट मैनेजमेंट, और रिसोर्सेज जैसे बुनियादी कॉन्सेप्ट्स समझना पर्याप्त है। मिड-लेवल भूमिकाओं में मॉड्यूल्स, वर्कस्पेसेज़, और रिमोट स्टेट का ज्ञान अपेक्षित है। सीनियर भूमिकाएँ स्टेट लॉकिंग, CI/CD इंटीग्रेशन, और जटिल मुद्दों की डीबगिंग में विशेषज्ञता चाहती हैं।
क्या मुझे इंटरव्यू के लिए Terraform कमांड्स याद कर लेने चाहिए?
हालाँकि terraform init, plan, और apply जैसे प्रमुख कमांड जानना उपयोगी है, इंटरव्यूअर्स अधिक परवाह करते हैं कि आप Terraform कॉन्सेप्ट्स को कैसे लागू करते हैं। वे आपसे यह पूछ सकते हैं कि आप वास्तविक परिदृश्य के लिए Terraform को कैसे स्ट्रक्चर करेंगे, बजाय केवल कमांड्स की सूची बताने के।
नौकरी पाने के लिए Terraform सर्टिफिकेशन कितना महत्वपूर्ण है?
Terraform सर्टिफिकेशन (जैसे HashiCorp Certified: Terraform Associate) आपका ज्ञान प्रमाणित करने में मदद कर सकता है, लेकिन अधिकांश भूमिकाओं के लिए यह अनिवार्य नहीं है। वास्तविक प्रोजेक्ट्स में Terraform का व्यावहारिक अनुभव अकेले सर्टिफिकेशन से अधिक वज़न रखता है। हालाँकि, यदि आप Terraform में नए हैं, तो सर्टिफिकेशन लेना सीखने का अच्छा तरीका हो सकता है।
क्या Terraform Pulumi से बेहतर है?
Terraform और Pulumi एक ही समस्या हल करते हैं लेकिन अलग तरीकों से। Terraform HCL का उपयोग करता है, जो एक उद्देश्य-निर्मित घोषणात्मक भाषा है—पढ़ने में आसान लेकिन लॉजिक में सीमित। Pulumi आपको TypeScript, Python, Go, या C# में इन्फ्रास्ट्रक्चर कोड लिखने देता है, जो अधिक लचीला है पर IaC में नए टीमों के लिए सीखने की कर्व अधिक तीखी हो सकती है।
अधिकांश संगठनों के लिए जो IaC से शुरुआत कर रहे हैं, Terraform व्यावहारिक पसंद है: बड़ा समुदाय, अधिक प्रोवाइडर सपोर्ट, और अधिकतर DevOps जॉब पोस्टिंग्स में यह नाम से सूचीबद्ध होता है। यदि आपकी टीम पहले से ही इसकी समर्थित भाषाओं में लिखती है और ऐसी जटिल सशर्त लॉजिक चाहिए जिसे HCL में लिखना अटपटा हो जाए, तो Pulumi पर विचार करना उचित है।

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