CI रनरचे VPN: टनल बिल्डपेक्षा जास्त टिकते का?
सामायिक CI रनर कामांमध्ये रूट आणि प्रक्रिया ठेवतो. कामापूर्वी, दरम्यान आणि नंतर VPN च्या स्थितीचे नियोजन करा, आणि फक्त कामाच्या मालकीचे कनेक्शन साफ करा.
डिप्लॉयमेंट काम जोडते, त्याचे आर्टिफॅक्ट कॉपी करते आणि यश नोंदवते. त्याने उघडलेली टनल पुढील काम सुरू होताना अजूनही सुरू असू शकते, आणि त्याने बदललेला रूट संपूर्ण होस्टचा आहे. बिल्डचा निकाल कमांडचे वर्णन करतो, मागे सोडलेल्या स्थितीचे नाही. VPN ला आयुष्य असलेला स्रोत माना, टप्प्याच्या सुरुवातीची एक ओळ मानू नका.
या होस्टवर आणखी काय चालते
Jenkins नोड एकाच वेळी अनेक एक्झिक्युटर चालवू शकतो, आणि होस्टचे रूट, रिझॉल्व्हर सेटिंग्ज किंवा प्रणाली-व्यापी कनेक्शन बदलणारे काम ते सर्वांसाठी बदलते. दुसरे काम ते लक्षात घेईल का, हे रूट आणि फिल्टरिंग धोरणावर अवलंबून आहे, VPN बद्दलच्या सामान्य नियमावर नाही. रेपॉझिटरी प्रवेश, आर्टिफॅक्ट प्रवेश आणि नियंत्रण चॅनेल या रनरला अजूनही आवश्यक असलेल्या वेगळ्या गरजा आहेत. पूर्ण टनल निवडण्यापूर्वी त्या डिप्लॉयमेंट गंतव्यांच्या यादीत जोडा.
नियंत्रण चॅनेलने टनल ओलांडायचे असेल, तर रचनेने ते जाणीवपूर्वक सांगितले पाहिजे. रोलबॅकमध्ये ते शोधणे ही योजना नाही. दोन याद्या लिहा: कामाला खासगीरीत्या कुठे पोहोचायचे आहे, आणि रनरला कोणत्याही परिस्थितीत कुठे पोहोचायचे आहे.
या कामाला खासगी प्रवेशाची गरज आहे का?
टनल जोडण्यापूर्वी बिल्ड टप्प्याला त्याची गरज आहे का ते विचारा. खासगी डिप्लॉयमेंट एजंट मंजूर आर्टिफॅक्ट आणून डिप्लॉयमेंट करू शकतो, ज्यामुळे सामान्य बिल्ड टप्पा खासगी नेटवर्कबाहेर राहतो. हे विभाजन सहसा प्रत्येक बिल्ड पायरीला टनलमधून रूट करायला शिकवण्यापेक्षा स्वस्त आहे.
सीमा सवयीतून नाही, कार्यप्रवाहातून निवडा. उत्तर नाही असेल, तर या पानाचा उर्वरित भाग अनावश्यक आहे, आणि हाच सर्वोत्तम उपलब्ध निकाल आहे.
पुढील काम जी स्थिती वारसाहक्काने घेते
कामापूर्वी, खासगी प्रवेश असताना आणि काम संपल्यानंतर—रद्द करण्यासह—काय खरे असावे ते वर्णन करा. अंतिम स्थितीच सर्वाधिक वेळा अव्यक्त राहते, आणि तीच पुढील काम वारसाहक्काने घेते. ती कोणाच्याही स्मरणात ठेवण्याऐवजी पाइपलाइनच्या शेजारी लिहा.
| Moment | What proves it | What leaks if it is skipped |
|---|---|---|
| Job start: pre-flight route check | The route table shows no tunnel from an earlier job, and the profile list is empty | A stale route sends deployment traffic into a dead tunnel |
| Job end: disconnect and shred | The profile is down and the temporary key file is gone | The next job inherits an open tunnel and a usable credential |
| Cancelled job: reboot or disposal | The host is replaced or rebooted before the next job starts | A killed process leaves the tunnel up with no owner |
समर्पित किंवा एकदाच वापरण्याचा एजंट या सीमा लागू करणे सोपे करतो. कंटेनर किंवा नेमस्पेस फक्त तेव्हाच मदत करते, जेव्हा त्याची नेटवर्क आणि विशेषाधिकार रचना बदल खरोखर वेगळा करते.
प्रोग्राम नाही, कनेक्शन थांबवा
या कामाने सुरू केलेले कनेक्शन बंद करण्यासाठी आणि त्याची तात्पुरती क्रेडेन्शियल्स काढण्यासाठी पाइपलाइनचा अंतिमीकरण मार्ग वापरा. इतर कामे वापरत असलेल्या होस्टवर प्रोग्रामच्या नावाने प्रक्रिया जुळवू नका; त्याऐवजी ते विशिष्ट कनेक्शन थांबवा. खालील दोन कमांड्स संपूर्ण स्वच्छता आहेत, आणि दोन्हीपैकी कोणतीही प्रक्रिया शोधण्यावर अवलंबून नाही.
vpn-cli disconnect --profile "$PROFILE"
rm -f "$RUNNER_TEMP/client.key"
अंतिमीकरण हे विलगीकरण नाही: मरणारा रनर उघडलेली टनल ठेवतो, आणि जबरदस्तीने थांबवलेली प्रक्रिया ब्लॉक पूर्णपणे वगळते. म्हणून केवळ स्वच्छतेची कमांड संपूर्ण रचना असू शकत नाही. प्रत्यक्षात हे असे अयशस्वी होते: डिप्लॉयमेंट काम कॉपीच्या पायरीवर रद्द होते, अंतिमीकरण ब्लॉक कधीच चालत नाही, आणि त्याच होस्टवरील पुढील काम जिवंत टनल आणि पोहोचता येणार नाही अशा नेटवर्ककडे निर्देश करणाऱ्या रूटसह सुरू होते. बिघाड पुढील बिल्डमध्ये 'DNS' समस्येसारखा दिसतो, तो निर्माण करणारे काम संपल्यानंतर तासाभरानंतर.
कामाच्या आउटपुटमध्ये प्रोफाइलचे नाव आणि क्रेडेन्शियलचा मार्ग नोंदवा. ओळख नसलेली रिकामी डिस्कनेक्ट कमांड नंतर ऑडिट करणे कठीण. लॉगची ओळही तेच सिद्ध करते की ब्लॉक चालला होता, जेव्हा नंतरची तपासणी विचारते.
कामाला असे होस्ट द्या जे इतर कोणी वापरत नाही
एकदाच वापरात येणारी पायाभूत सुविधा वारसा समस्या सांभाळण्याऐवजी दूर करते. प्रत्येक कामासाठी नवीन एजंट रूट, प्रोफाइल आणि इतरांची क्रेडेन्शियल्स नसताना सुरू होतो, आणि त्याचा नाश कामाने सोडलेले सर्व साफ करतो. याचा प्रत्येक बिल्डला जास्त खर्च येतो, आणि स्वच्छता कोडवर अवलंबून नसलेल्या सीमेची ही प्रामाणिक किंमत आहे. उत्पादन नेटवर्कला स्पर्श करणाऱ्या कामांसाठी, घटना मोजल्यानंतर सहसा हाच स्वस्त पर्याय आहे.
जिथे सामायिक रनर राहणे आवश्यक आहे, तिथे अपयश आणि रद्दीकरण यशस्वी कॉपीइतकेच काळजीपूर्वक तपासा. हे काम अर्ध्यावर रद्द झाले तर पुढील कामाला काय दिसेल हे चाचणीने दाखवावे. काम त्याचा प्रवेश आणि तात्पुरती स्थिती संपल्यावर पूर्ण होते, कॉपी कमांड शून्य परत केल्यावर नाही.