DevOps बूटकैंप · पाठ

आधारभूत संरचना अद्यतन स्वचालित करना

समीक्षा और अनुमोदन चरणों के साथ आधारभूत संरचना में बदलावों की सुरक्षित योजना बनाने, लागू करने और हटाने के लिए वर्कफ़्लो लागू कीजिए।

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

आधारभूत संरचना अद्यतन स्वचालित करना, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

IaC अपडेट स्वचालित क्यों करें?

इन्फ्रास्ट्रक्चर को मैन्युअल रूप से प्रबंधित करना धीमा और त्रुटिप्रवण हो सकता है। कोड के रूप में इन्फ्रास्ट्रक्चर (IaC) आपके इन्फ्रास्ट्रक्चर को कोड में परिभाषित करके मदद करता है।

GitHub Actions जैसे टूल से IaC अपडेट स्वचालित करने पर एकरूपता और गति आती है तथा मानवीय त्रुटियाँ कम होती हैं। इससे यह सुनिश्चित होता है कि आपका इन्फ्रास्ट्रक्चर हमेशा उसकी परिभाषा से मेल खाए।

IaC कार्यप्रवाह का जीवनचक्र

IaC का स्वचालन एक स्पष्ट जीवनचक्र का पालन करता है: योजना बनाना, लागू करना और कभी-कभी नष्ट करना। प्रत्येक चरण को आपके CI/CD पाइपलाइन में एकीकृत किया जा सकता है।

  • योजना बनाना: बदलाव किए बिना प्रस्तावित बदलावों की समीक्षा करें।
  • लागू करना: नियोजित बदलावों को अपने इन्फ्रास्ट्रक्चर में लागू करें।
  • नष्ट करना: इन्फ्रास्ट्रक्चर संसाधनों को हटाएँ (अत्यंत सावधानी से उपयोग करें!)।

GitHub Actions इन चरणों को सुरक्षित रूप से प्रबंधित करने में मदद करता है।

Terraform के साथ बदलावों की योजना बनाना

कोई भी बदलाव करने से पहले यह जानना अत्यंत महत्वपूर्ण है कि क्या होगा। Terraform का plan कमांड आपको इन्फ्रास्ट्रक्चर में होने वाले बदलावों का पूर्वावलोकन करने में मदद करता है।

यह आपकी इच्छित स्थिति (कोड से) की तुलना आपके इन्फ्रास्ट्रक्चर की वर्तमान स्थिति से करता है और दिखाता है कि कौन-से संसाधन जोड़े, बदले या नष्ट किए जाएँगे।

एक सरल Terraform प्रोजेक्ट में ये कमांड चलाकर देखें:

echo "Initializing Terraform..."
terraform init

echo "Running terraform plan..."
terraform plan

`terraform plan` का कार्यप्रवाह

आइए ऐसा GitHub Actions कार्यप्रवाह बनाएँ, जो आपकी मुख्य शाखा में कोड पुश किए जाने पर हर बार terraform plan अपने-आप चलाए। इससे प्रस्तावित बदलावों पर आपको तुरंत प्रतिक्रिया मिलती है।

इसके बाद योजना के आउटपुट की समीक्षा सीधे पुल रिक्वेस्ट या कार्यप्रवाह लॉग में की जा सकती है।

name: 'Terraform Plan'

on:
  pull_request:
    branches:
      - main

jobs:
  terraform:
    name: 'Terraform Plan'
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Plan
      id: plan
      run: terraform plan -no-color

Environments के साथ मैन्युअल अनुमोदन

इन्फ्रास्ट्रक्चर के बदलावों को स्वचालित रूप से लागू करना जोखिमपूर्ण हो सकता है। GitHub Environments आपके कार्यप्रवाहों में मैन्युअल अनुमोदन चरण जोड़ने का तरीका प्रदान करते हैं।

आप वातावरण (जैसे, "staging", "production") परिभाषित कर सकते हैं और ऐसे नियम निर्धारित कर सकते हैं, जैसे किसी परिनियोजन कार्य के आगे बढ़ने से पहले विशिष्ट समीक्षकों की आवश्यकता या प्रतीक्षा अवधि।

इससे संवेदनशील कार्रवाइयों से पहले एक महत्वपूर्ण मानवीय समीक्षा द्वार जुड़ जाता है।

बदलाव लागू करने का कार्यप्रवाह

बदलावों को सुरक्षित रूप से लागू करने के लिए, हम ऐसा कार्यप्रवाह कॉन्फ़िगर करेंगे जो एक संरक्षित GitHub Environment को लक्ष्य बनाए। यह कार्य निर्दिष्ट टीम सदस्यों के अनुमोदन तक रुककर प्रतीक्षा करेगा।

अनुमोदन के बाद ही terraform apply कमांड चलेगा और आपके इन्फ्रास्ट्रक्चर को अपडेट करेगा।

name: 'Terraform Apply'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy to'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Apply'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Apply
      id: apply
      run: terraform apply -auto-approve

इन्फ्रास्ट्रक्चर को सुरक्षित रूप से नष्ट करना

terraform destroy कमांड आपके Terraform कॉन्फ़िगरेशन में परिभाषित सभी संसाधनों को स्थायी रूप से हटा देता है। यह एक अत्यंत शक्तिशाली और संभावित रूप से खतरनाक कार्रवाई है।

इसका उपयोग केवल विशिष्ट, नियंत्रित परिस्थितियों में किया जाना चाहिए, जैसे किसी अस्थायी परीक्षण वातावरण को हटाने के लिए। आगे बढ़ने से पहले हमेशा दोबारा जाँच करें!

मज़बूत मैन्युअल नियंत्रणों और कई पुष्टियों के बिना कभी भी `destroy` को स्वचालित न करें।

echo "Preparing to destroy infrastructure..."
terraform init
terraform plan -destroy
read -p "Are you absolutely sure you want to destroy ALL resources? (yes/no): " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
  echo "Destroying infrastructure..."
  terraform destroy -auto-approve
else
  echo "Destroy operation cancelled."
fi

नियंत्रित इन्फ्रास्ट्रक्चर विनाश

`destroy` के लिए भी हम सुरक्षा की एक अतिरिक्त परत के रूप में GitHub Environments का उपयोग कर सकते हैं। इससे यह सुनिश्चित होता है कि उचित प्राधिकरण के बिना कोई व्यक्ति गलती से या दुर्भावनापूर्वक उत्पादन संसाधनों को नष्ट न कर सके।

कार्यप्रवाह में अनुमोदन आवश्यक होना चाहिए और इसे केवल मैन्युअल रूप से, आदर्श रूप से विशिष्ट भूमिकाओं वाले लोगों द्वारा, शुरू किया जा सकना चाहिए।

name: 'Terraform Destroy'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to destroy'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Destroy'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Destroy
      id: destroy
      run: terraform destroy -auto-approve

IaC स्वचालन की सर्वोत्तम प्रक्रियाएँ

एक सुदृढ़ और सुरक्षित IaC पाइपलाइन बनाए रखने के लिए:

  • कोड समीक्षाएँ: IaC बदलावों के लिए हमेशा कोड समीक्षाएँ आवश्यक करें।
  • न्यूनतम विशेषाधिकार: कार्यप्रवाह टोकन और सेवा खातों को केवल आवश्यक न्यूनतम अनुमतियाँ दें।
  • स्थिति लॉक करना: सुनिश्चित करें कि आपका IaC टूल (जैसे Terraform) समवर्ती बदलावों को रोकने के लिए स्थिति लॉकिंग का उपयोग करता है।
  • छोटे, क्रमिक बदलाव: बड़े, एकाश्मी इन्फ्रास्ट्रक्चर अपडेट से बचें।
  • अलग-अलग वातावरण: अलग अनुमोदन नियमों के साथ पृथक वातावरण (dev, staging, prod) का उपयोग करें।

IaC कार्यप्रवाह जाँच

आपने योजना बनाने, संसाधनों को लागू करने और नष्ट करने के साथ IaC अपडेट स्वचालित करना सीखा है। अब आइए इन प्रक्रियाओं को सुरक्षित रखने की अपनी समझ की जाँच करें।

पुनरावलोकन: स्वचालित IaC अपडेट

इस पाठ में आपने GitHub Actions का उपयोग करके अपने कोड के रूप में इन्फ्रास्ट्रक्चर कार्यप्रवाहों को स्वचालित करना सीखा। हमने ये विषय शामिल किए:

  • बदलावों का सुरक्षित पूर्वावलोकन करने के लिए terraform plan चलाना।
  • इन्फ्रास्ट्रक्चर लागू करने या नष्ट करने से पहले मैन्युअल अनुमोदन द्वारों के लिए GitHub Environments का उपयोग करना।
  • नियंत्रित terraform apply और terraform destroy कार्रवाइयों के लिए कार्यप्रवाह लागू करना।
  • सुरक्षित और विश्वसनीय IaC स्वचालन की प्रमुख सर्वोत्तम प्रक्रियाएँ।

IaC का स्वचालन आपको अपने क्लाउड संसाधनों को कुशलतापूर्वक और आत्मविश्वास के साथ प्रबंधित करने में मदद करता है!

शुरुआत निःशुल्क

एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क

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

पाठ्यक्रम
142
पाठ
568

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

क्या “आधारभूत संरचना अद्यतन स्वचालित करना” पाठ निःशुल्क है?

हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “आधारभूत संरचना अद्यतन स्वचालित करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“आधारभूत संरचना अद्यतन स्वचालित करना” में मैं क्या सीखूँगा?

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

क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

“आधारभूत संरचना अद्यतन स्वचालित करना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Terraform और GitHub Actions के साथ IaC
  2. क्लाउड संसाधनों का प्रबंधन
  3. आधारभूत संरचना अद्यतन स्वचालित करना
  4. Terraform state और remote backend का प्रबंधन
← DevOps बूटकैंप पर वापस जाएँ