पॉडमैन जाँच
scripts/podman_testing में स्थित स्क्रिप्ट्स की पॉडमैन जाँच सर्वर पर प्रतिलिपि बनाएँ और निष्पादित करें।
प्रारंभिक सेटअप और प्रबंधन
copy.docker.duplistatus.local: स्थानीय डॉकर डेमॉन से पॉडमैन में डॉकर छवि की प्रतिलिपि बनाता है (स्थानीय जाँच के लिए)।copy.docker.duplistatus.remote: दूरस्थ विकास सर्वर से पॉडमैन में डॉकर छवि की प्रतिलिपि बनाता है (एसएसएच पहुँच की आवश्यकता है)।- विकास सर्वर पर छवि बनाएँ इसका उपयोग करके:
docker build . -t wsj-br/duplistatus:devel
- विकास सर्वर पर छवि बनाएँ इसका उपयोग करके:
start.duplistatus: रूटलेस मोड में कंटेनर शुरू करता है।pod.testing: पॉडमैन पॉड के अंदर कंटेनर का परीक्षण करता है (रूट विशेषाधिकारों के साथ)।stop.duplistatus: पॉड को रोकता है और कंटेनर को हटा देता है।clean.duplistatus: कंटेनर रोकता है, पॉड हटाता है और पुरानी छवियों को साफ करता है।
डीएनएस कॉन्फ़िगरेशन
स्क्रिप्ट्स स्वचालित रूप से होस्ट सिस्टम से डीएनएस सेटिंग्स का पता लगाती हैं और कॉन्फ़िगर करती हैं:
- स्वचालित पहचान: डीएनएस सर्वर और खोज डोमेन निकालने के लिए
resolvectl status(systemd-resolved) का उपयोग करता है - फ़ॉलबैक समर्थन: गैर-सिस्टमडी सिस्टम पर
/etc/resolv.confको पार्स करने पर वापस आता है - स्मार्ट फ़िल्टरिंग: स्वचालित रूप से लोकलहोस्ट पतों और आईपीवी6 नाम सर्वरों को फ़िल्टर करता है
- इसके साथ काम करता है:
- टेलस्केल मैजिकडीएनएस (100.100.100.100)
- कॉर्पोरेट डीएनएस सर्वर
- मानक नेटवर्क कॉन्फ़िगरेशन
- कस्टम डीएनएस सेटअप
कोई मैनुअल डीएनएस कॉन्फ़िगरेशन की आवश्यकता नहीं है - स्क्रिप्ट्स इसे स्वचालित रूप से संभालती हैं!
निगरानी और स्वास्थ्य जाँच
check.duplistatus: पॉड के लॉग, कनेक्टिविटी और एप्लिकेशन स्वास्थ्य की जाँच करता है।
डीबगिंग कमांड
logs.duplistatus: पॉड के लॉग दिखाता है।exec.shell.duplistatus: कंटेनर में एक शेल खोलता है।restart.duplistatus: पॉड को रोकता है, कंटेनर को हटाता है, छवि की प्रतिलिपि बनाता है, कंटेनर बनाता है और पॉड शुरू करता है।
उपयोग प्रवाह
विकास सर्वर
विकास सर्वर पर डॉकर छवि बनाएँ:
docker build . -t wsj-br/duplistatus:devel
पॉडमैन सर्वर
- डॉकर छवि स्थानांतरित करें:
- उपयोग करें
./copy.docker.duplistatus.localयदि डॉकर और पॉडमैन एक ही मशीन पर हैं - उपयोग करें
./copy.docker.duplistatus.remoteयदि दूरस्थ विकास सर्वर से प्रतिलिपि बना रहे हैं (.envफ़ाइल की आवश्यकता हैREMOTE_USERऔरREMOTE_HOSTके साथ)
- उपयोग करें
./start.duplistatusके साथ कंटेनर शुरू करें (स्टैंडअलोन, रूटलेस)- या पॉड मोड में जाँच करने के लिए
./pod.testingका उपयोग करें (रूट के साथ)
- या पॉड मोड में जाँच करने के लिए
./check.duplistatusऔर./logs.duplistatusके साथ निगरानी करें- समाप्त होने पर
./stop.duplistatusके साथ रोकें - पूर्ण पुनरारंभ चक्र के लिए
./restart.duplistatusका उपयोग करें (रोकें, छवि की प्रतिलिपि बनाएँ, शुरू करें)- नोट: यह स्क्रिप्ट वर्तमान में
copy.docker.duplistatusको संदर्भित करती है जिसे.localया.remoteचर के साथ बदला जाना चाहिए
- नोट: यह स्क्रिप्ट वर्तमान में
- कंटेनर, पॉड और पुरानी छवियों को हटाने के लिए
./clean.duplistatusका उपयोग करें
एप्लिकेशन का परीक्षण
यदि आप समान मशीन पर पॉडमैन सर्वर चला रहे हैं, तो http://localhost:9666 का उपयोग करें।
यदि आप किसी अन्य सर्वर पर हैं, तो इसके साथ यूआरएल प्राप्त करें:
echo "http://$(hostname -I | awk '{print $1}'):9666"
महत्वपूर्ण टिप्पणियाँ
पॉडमैन पॉड नेटवर्किंग
पॉडमैन पॉड में चलते समय, एप्लिकेशन को इनकी आवश्यकता होती है:
- स्पष्ट डीएनएस कॉन्फ़िगरेशन (
pod.testingस्क्रिप्ट द्वारा स्वचालित रूप से संभाला जाता है) - सभी इंटरफेस के लिए पोर्ट बाइंडिंग (
0.0.0.0:9666)
स्क्रिप्ट्स इन आवश्यकताओं को स्वचालित रूप से संभालती हैं - कोई मैनुअल कॉन्फ़िगरेशन की आवश्यकता नहीं।
रूटलेस बनाम रूट मोड
- स्टैंडअलोन मोड (
start.duplistatus):--userns=keep-idके साथ रूटलेस चलाता है - पॉड मोड (
pod.testing): परीक्षण उद्देश्यों के लिए पॉड के अंदर रूट के रूप में चलाता है
स्वचालित डीएनएस पहचान के साथ दोनों मोड सही ढंग से काम करते हैं।
वातावरण कॉन्फ़िगरेशन
copy.docker.duplistatus.local और copy.docker.duplistatus.remote दोनों को scripts/podman_testing निर्देशिका में .env फ़ाइल की आवश्यकता होती है:
स्थानीय कॉपी के लिए (copy.docker.duplistatus.local):
IMAGE=wsj-br/duplistatus:devel
दूरस्थ कॉपी के लिए (copy.docker.duplistatus.remote):
IMAGE=wsj-br/duplistatus:devel
REMOTE_USER=your_username
REMOTE_HOST=your_hostname
start.duplistatus स्क्रिप्ट को कम से कम IMAGE चर के साथ .env फ़ाइल की आवश्यकता होती है:
IMAGE=wsj-br/duplistatus:devel
नोट: स्क्रिप्ट का त्रुटि संदेश REMOTE_USER और REMOTE_HOST का उल्लेख करता है, लेकिन ये वास्तव में start.duplistatus द्वारा उपयोग नहीं किए जाते हैं—केवल IMAGE की आवश्यकता होती है।