इस प्रोजेक्ट के बारे में
netbox-ceph, netbox-proxbox के लिए एक सहोदर (sibling) NetBox प्लगइन है। यह proxbox-api के माध्यम से Proxmox-managed Ceph इन्वेंट्री को मिरर करता है और netbox-proxbox बैकएंड कॉन्टेक्स्ट, ब्रांच लाइफसाइकिल, एंडपॉइंट रिलेशनशिप और जॉब कन्वेंशन का पुन: उपयोग करता है। इसका v1 रिफ्लेक्टेड इन्वेंट्री जानबूझकर रीड-ओनली रखा गया है।
रिफ्लेक्टेड इन्वेंट्री (v1)
यह प्लगइन क्लस्टर्स, डेमन्स, OSDs, पूल्स, फाइलसिस्टम, CRUSH रूल्स, फ्लैग्स, हेल्थ चेक, प्लगइन सेटिंग्स और रीड-ओनली RGW/S3 और RBD रिफ्लेक्टेड इन्वेंट्री प्रदान करता है। सिंक को POST /api/plugins/ceph/clusters/{id}/sync/ के साथ डिस्पैच किया जाता है, जो 7200-सेकंड टाइमआउट के साथ एक CephSyncJob को एनक्यू करता है। एक resources पैरामीटर को लिस्ट या कॉमा-सेपरेटेड स्ट्रिंग के रूप में पास किया जा सकता है, जैसे ["pools", "osds"]; इसे छोड़ने पर डिफॉल्ट फुल सिंक चलता है। क्यूड रन NetBox के कोर Jobs UI में दिखाई देते हैं।
वांछित-अवस्था कंट्रोल प्लेन (v2)
Ceph v2 एक अलग गेटेड वांछित-अवस्था (desired-state) प्लेन जोड़ता है: अपरिवर्तनीय एंडपॉइंट-और-कॉन्फ़िगरेशन-रिवीजन-बाउंड प्लान, वैलिडेशन फाइंडिंग्स, दो-व्यक्ति अनुमोदन ऑडिट रिकॉर्ड, अप्लाई/रिकवरी रन, ड्रिफ्ट रिकॉर्ड, मेट्रिक स्नैपशॉट और एक टाइप्ड proxbox-api क्लाइंट। एक रॉ अप्रूवल टोकन केवल अप्रूवल रिस्पॉन्स और उसके तुरंत बाद आने वाले अप्लाई रिक्वेस्ट के बीच मौजूद रहता है; इसे NetBox द्वारा कभी स्टोर, लॉग, सीरियलाइज़ या रेंडर नहीं किया जाता है।
वांछित-अवस्था मॉडल ऑपरेटरों को पूल्स, CephFS, RBD और RGW/S3 के लिए NetBox-प्रथम इरादा (intent) घोषित करने की अनुमति देते हैं — आकार, ऑटोस्केल, CRUSH नियम, एप्लिकेशन, कोटा, कम्प्रेशन, CephFS मेटाडेटा/डेटा पूल्स, MDS प्लेसमेंट, RBD इमेज लेआउट/फीचर्स, RBD स्नैपशॉट प्रोटेक्शन, RGW टोपोलॉजी, S3 उपयोगकर्ता और बकेट। ये NetBox-स्वामित्व वाले इरादा रिकॉर्ड के रूप में उपयोगी रहते हैं। सख्त proxbox-ceph-v2-2026-07 राइटर वर्तमान में केवल पूल और CephFS पंक्तियों को म्यूटेशन उत्पन्न करने देता है। प्रत्येक समर्थित पंक्ति के लिए एक सटीक execution_node की आवश्यकता होती है; पूल पेलोड proxbox-api इश्यू #258 द्वारा स्वीकार किए गए फ़ील्ड्स तक सीमित हैं, और CephFS निर्माण pg_num और add_storage तक सीमित है। RBD और RGW/S3 इरादा ब्राउज़ करने योग्य है लेकिन जानबूझकर तब तक कोई Generate ऑपरेशन एक्शन नहीं है जब तक कि राइटर सपोर्ट मौजूद न हो।
अनुमोदन प्रवाह और अनुमतियाँ
अनुरोधकर्ता के पास कस्टम रिक्वेस्ट और अप्लाई अनुमतियाँ होनी चाहिए; फिर अप्रूव अनुमति वाला एक अलग एक्टर ऑर्केस्ट्रेटर के माध्यम से एक सिंगल Approve & apply एक्शन करता है। माइग्रेशन 0007_ceph_plan_bound_approvals पुराने अथॉरिटी को हटाता है, एंडपॉइंट/प्रोवाइडर/नोड/कॉन्फ़िगरेशन स्नैपशॉट जोड़ता है, एक्सपायर होने वाले अप्रूवल-इश्यूअंस लीज बनाता है, और प्रति अप्रूवल एक लोकल रन लागू करता है।
इंस्टॉलेशन
pip install netbox-ceph के साथ इंस्टॉल करें, configuration.py में PLUGINS में "netbox_proxbox" और "netbox_ceph" दोनों जोड़ें, फिर सामान्य रूप से NetBox माइग्रेशन चलाएं।
स्कोप और सुरक्षा नोट्स
v1 के दायरे से बाहर: डायरेक्ट Ceph डैशबोर्ड API इंटीग्रेशन, प्रोमीथियस मेट्रिक इंजेक्शन, बाहरी नॉन-Proxmox Ceph क्लस्टर्स, और रिफ्लेक्टेड इन्वेंट्री के लिए NetBox-to-Ceph राइट ऑपरेशन्स। कोई शेल या डायरेक्ट Proxmox API फॉलबैक मौजूद नहीं है। अनुशंसित रोलआउट: पहले मैचिंग बैकएंड कॉन्ट्रैक्ट तैनात करें, NetBox का बैकअप लें, माइग्रेट करें, जानबूझकर रिक्वेस्ट/अप्लाई/अप्रूव अनुमतियाँ दें, लीगेसी समर्थित इरादे पर सटीक एग्जीक्यूशन नोड्स भरें, और स्टेजिंग में पूरे प्रवाह को वैलिडेट करें; उन गेट्स और ऑथेंटिकेटेड एक्टर-हेडर गेटवे कंट्रोल के पूरा होने तक सभी Proxmox एंडपॉइंट allow_writes फ्लैग्स को अक्षम रखें।
संगतता और प्रोजेक्ट स्थिति
रिपॉजिटरी में Apache-2.0 लाइसेंसिंग, PyPI मेटाडेटा, कम्पैटिबिलिटी मेटाडेटा, GitHub Actions CI, रिलीज़ वैलिडेशन, डॉक्स पब्लिशिंग, और NetBox v4.6.4 के लिए स्क्रीनशॉट कैप्चर और पेज-कवरेज वर्कफ़्लो शामिल हैं। डाइजेस्ट-पिन किया गया Docker इंस्टॉल स्मोक आधिकारिक NetBox v4.7.0 GA को कवर करता है, और सटीक-सोर्स इंटीग्रेशन टेस्ट बैकवर्ड-कम्पैटिबल v4.5.8 से v4.6.6 रेंज को कवर करते हैं। NetBox v4.7.0 GA मेटाडेटा को बिना कम्पैटिबिलिटी चेतावनी के GA आधार पर स्वीकार किया गया है, जबकि 4.7.1 और बाद के संस्करण फेल क्लोज होते हैं; CI GA सोर्स रिविजन 5f06007e4c9bacc93ce17c1e645fc1143d60df3d को पिन करता है। पूर्ण दस्तावेज़ीकरण प्रोजेक्ट की दस्तावेज़ीकरण साइट पर प्रकाशित है, मॉडल और फ़ील्ड संदर्भ docs/models.md में हैं, वर्शन टेबल COMPATIBILITY.md में है, सर्टिफिकेशन प्रमाण CERTIFICATION.md में ट्रैक किए गए हैं, और बग और फीचर अनुरोध GitHub Issues के माध्यम से संभाले जाते हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.