अवलोकन
Azure में अप्रयुक्त या अनाथ संसाधनों का प्रबंधन क्लाउड खर्च और परिचालन दक्षता पर महत्वपूर्ण प्रभाव डाल सकता है। Azure Resource Cleanup टूल एक व्यापक PowerShell स्क्रिप्ट है जिसे क्लाउड व्यवस्थापकों को अप्रयुक्त या अनाथ Azure संसाधनों की पहचान करने और उन्हें हटाने में मदद करने के लिए डिज़ाइन किया गया है, जिससे लागत अनुकूलन और बेहतर संसाधन प्रबंधन सुनिश्चित होता है।
यह स्क्रिप्ट डिफ़ॉल्ट रूप से सुरक्षित, गैर-विनाशकारी रिपोर्टिंग मोड में काम करती है, जिससे व्यवस्थापक क्लीनअप संचालन शुरू करने से पहले अनाथ संसाधनों की समीक्षा कर सकते हैं।
आप GitHub पर प्रोजेक्ट तक पहुँच सकते हैं: AzureOpsScripts – Resource Cleanup।
विषय-सूची
प्रमुख विशेषताएँ
Azure Resource Cleanup स्क्रिप्ट निम्नलिखित कार्यक्षमताएँ प्रदान करती है:
- अनाथ NIC: किसी VM या एंडपॉइंट से जुड़े नहीं होने वाले नेटवर्क इंटरफ़ेस की पहचान करता है।
- पुराने Azure डिस्क स्नैपशॉट: आपकी प्रतिधारण अवधि से अधिक पुराने स्नैपशॉट का पता लगाता है।
- स्टोरेज खाता BLOB स्नैपशॉट: परिभाषित प्रतिधारण अवधि से पुराने BLOB स्नैपशॉट को चिह्नित करता है।
- फ़ाइल शेयर स्नैपशॉट: प्रतिधारण सीमा से परे फ़ाइल शेयर स्नैपशॉट की पहचान करता है।
- अनाथ प्रबंधित डिस्क: किसी VM से जुड़ी नहीं होने वाली डिस्क ढूँढता है।
- अनाथ सार्वजनिक IP: अप्रयुक्त सार्वजनिक IP पते खोजता है।
- अप्रयुक्त नेटवर्क सुरक्षा समूह: किसी भी संसाधन से संबद्ध नहीं होने वाले NSG की पहचान करता है।
- अप्रयुक्त उपलब्धता सेट: अब उपयोग में नहीं होने वाले उपलब्धता सेट का पता लगाता है।
- खाली संसाधन समूह: बिना सक्रिय संसाधनों वाले संसाधन समूहों को चिह्नित करता है।
- अप्रयुक्त वर्चुअल नेटवर्क: संभावित रूप से अप्रयुक्त वर्चुअल नेटवर्क को हाइलाइट करता है (केवल हाइलाइट करता है, स्क्रिप्ट इसे हटाएगी नहीं)।
- आरक्षित लेकिन अप्रयुक्त IP पते: आरक्षित लेकिन सक्रिय रूप से असाइन नहीं किए गए IP पतों की पहचान करता है।
आवश्यकताएँ
Azure Resource Cleanup स्क्रिप्ट का उपयोग करने के लिए, सुनिश्चित करें कि निम्नलिखित पूर्वापेक्षाएँ पूरी हों:
- PowerShell संस्करण: 5.1 या उच्चतर
- Az PowerShell मॉड्यूल: निम्न कमांड का उपयोग करके इंस्टॉल करें:
Install-Module -Name Az - Azure खाता अनुमतियाँ: संसाधनों को देखने और हटाने के लिए उचित अनुमतियाँ सुनिश्चित करें।
उपयोग
रिपोर्टिंग मोड
अनाथ संसाधनों की विस्तृत रिपोर्ट बनाने के लिए स्क्रिप्ट को रिपोर्टिंग मोड में चलाएँ:
.\Azure-Resource-Cleanup.ps1

क्लीनअप मोड
पहचाने गए संसाधनों को हटाने के लिए, क्लीनअप मोड का उपयोग करें:
.\Azure-Resource-Cleanup.ps1 -DeleteResources
स्नैपशॉट प्रतिधारण अनुकूलित करें
क्लीनअप के लिए पुराने स्नैपशॉट की पहचान करने हेतु स्नैपशॉट प्रतिधारण दिवस निर्दिष्ट करें:
.\Azure-Resource-Cleanup.ps1 -SnapshotRetentionDays 7 -DeleteResources

स्टोरेज स्नैपशॉट जाँच बाहर करें
बड़े वातावरणों के लिए स्टोरेज खाता BLOB और फ़ाइल शेयर स्नैपशॉट जाँच छोड़ें:
.\Azure-Resource-Cleanup.ps1 -IncludeStorageSnapshots:$false
महत्वपूर्ण नोट्स
स्वीकृत वर्चुअल नेटवर्क पर चलाएँ
सुनिश्चित करें कि स्क्रिप्ट स्वीकृत वर्चुअल नेटवर्क के भीतर निष्पादित हो। नेटवर्क प्रतिबंधों के कारण, कुछ स्टोरेज खाते कंटेनर या फ़ाइल स्नैपशॉट तक पहुँच पर रोक लगा सकते हैं। यदि स्टोरेज खाता विलोपन संचालन का समर्थन नहीं करता है, तो इन संसाधनों को साफ़ करने का प्रयास करते समय आपको त्रुटियाँ मिल सकती हैं।
देव/परीक्षण वातावरण में परीक्षण करें
उत्पादन में उपयोग करने से पहले स्क्रिप्ट का विकास या परीक्षण वातावरण में परीक्षण करने की पुरज़ोर अनुशंसा की जाती है। इससे आप स्क्रिप्ट के व्यवहार की समीक्षा कर सकते हैं, संभावित समस्याओं की पहचान कर सकते हैं, और क्लीनअप के लिए चिह्नित संसाधनों को सत्यापित कर सकते हैं।
रिपोर्ट-ओनली मोड का उपयोग करें
उत्पादन वातावरण के लिए, हमेशा स्क्रिप्ट को रिपोर्ट-ओनली मोड (-DeleteResources पैरामीटर के बिना) में चलाकर शुरू करें। इससे अनाथ संसाधनों की विस्तृत रिपोर्ट मिलती है, जिससे आप क्लीनअप संचालन शुरू करने से पहले चिह्नित आइटम की समीक्षा और सत्यापन कर सकते हैं।
पैरामीटर
स्क्रिप्ट कई अनुकूलन योग्य पैरामीटर का समर्थन करती है:
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
SnapshotRetentionDays | Integer | 3 | स्नैपशॉट के लिए प्रतिधारण अवधि (दिनों में)। इससे पुराने स्नैपशॉट को क्लीनअप के लिए चिह्नित किया जाएगा। |
DeleteResources | Switch | $false | पहचाने गए संसाधनों को हटाना सक्षम करता है। डिफ़ॉल्ट रूप से, स्क्रिप्ट केवल रिपोर्ट करती है। |
IncludeStorageSnapshots | Switch | $true | BLOB और फ़ाइल शेयर स्नैपशॉट जाँच शामिल करता है। इन जाँचों को बाहर करने के लिए, $false पर सेट करें। |
रिपोर्ट आउटपुट
स्क्रिप्ट टाइमस्टैम्प वाले फ़ोल्डर में विस्तृत रिपोर्ट बनाती है, जिनमें शामिल हैं:
orphaned_nics.csvold_managed_snapshots.csvold_blob_snapshots.csvold_fileshare_snapshots.csvorphaned_disks.csvorphaned_public_ips.csvorphaned_nsgs.csvunused_availability_sets.csvempty_resource_groups.csvunused_vnets.csvsubnet_ip_usage.csvcleanup_log.txt(की गई कार्रवाइयों का व्यापक लॉग)
सर्वोत्तम प्रथाएँ
- रिपोर्टिंग मोड से शुरू करें: चिह्नित संसाधनों की समीक्षा करने के लिए हमेशा स्क्रिप्ट को
-DeleteResourcesपैरामीटर के बिना चलाएँ। - रिपोर्ट की समीक्षा करें: क्लीनअप संचालन शुरू करने से पहले बनाई गई CSV फ़ाइलों का सावधानीपूर्वक विश्लेषण करें।
- प्रतिधारण अवधि निर्धारित करें: संगठनात्मक नीतियों के आधार पर स्नैपशॉट प्रतिधारण अवधि अनुकूलित करें।
- गैर-उत्पादन वातावरण में परीक्षण करें: उत्पादन में उपयोग करने से पहले इसके व्यवहार को मान्य करने के लिए स्क्रिप्ट को देव/परीक्षण वातावरण में चलाएँ।
- स्वीकृत वर्चुअल नेटवर्क पर चलाएँ: स्टोरेज खाता क्लीनअप के लिए नेटवर्क-संबंधी त्रुटियों से बचने हेतु सुनिश्चित करें कि स्क्रिप्ट स्वीकृत vNet के भीतर निष्पादित हो।
उदाहरण वर्कफ़्लो
Azure संसाधनों को सुरक्षित रूप से साफ़ करने के लिए इस वर्कफ़्लो का पालन करें:
- स्क्रिप्ट को रिपोर्टिंग मोड में चलाएँ:
.\Azure-Resource-Cleanup.ps1 - चिह्नित संसाधनों के लिए बनाई गई रिपोर्ट की समीक्षा करें।
- आत्मविश्वास के साथ क्लीनअप मोड में आगे बढ़ें:
.\Azure-Resource-Cleanup.ps1 -DeleteResources