OpenShift - Jenkins

Reading time: 2 minutes

इस पृष्ठ के मूल लेखक हैं Fares

यह पृष्ठ बताता है कि आप Openshift (या Kubernetes) क्लस्टर में चल रहे Jenkins इंस्टेंस पर कैसे हमला कर सकते हैं।

अस्वीकरण

Jenkins इंस्टेंस को Openshift या Kubernetes क्लस्टर में तैनात किया जा सकता है। आपके संदर्भ के आधार पर, आपको दिखाए गए किसी भी पेलोड, yaml या तकनीक को अनुकूलित करने की आवश्यकता हो सकती है। Jenkins पर हमले के बारे में अधिक जानकारी के लिए, आप इस पृष्ठ को देख सकते हैं।

पूर्वापेक्षाएँ

1a. Jenkins इंस्टेंस में उपयोगकर्ता पहुंच या 1b. एक SCM रिपॉजिटरी में लिखने की अनुमति के साथ उपयोगकर्ता पहुंच जहां एक स्वचालित निर्माण एक पुश/मर्ज के बाद ट्रिगर होता है।

यह कैसे काम करता है

मूल रूप से, पर्दे के पीछे लगभग सब कुछ एक नियमित Jenkins इंस्टेंस की तरह काम करता है जो एक VM में चल रहा है। मुख्य अंतर समग्र आर्किटेक्चर और यह है कि Openshift (या Kubernetes) क्लस्टर के अंदर निर्माण कैसे प्रबंधित होते हैं।

निर्माण

जब एक निर्माण ट्रिगर होता है, तो इसे पहले Jenkins मास्टर नोड द्वारा प्रबंधित/संयोजित किया जाता है और फिर एक एजेंट/स्लेव/वर्कर को सौंपा जाता है। इस संदर्भ में, मास्टर नोड बस एक नियमित पॉड है जो एक नामस्थान में चल रहा है (जो उस नामस्थान से भिन्न हो सकता है जहां वर्कर चलते हैं)। यही बात वर्कर्स/स्लेव्स पर भी लागू होती है, हालाँकि वे निर्माण समाप्त होने के बाद नष्ट हो जाते हैं जबकि मास्टर हमेशा चालू रहता है। आपका निर्माण आमतौर पर एक पॉड के अंदर चलता है, जो Jenkins प्रशासकों द्वारा परिभाषित डिफ़ॉल्ट पॉड टेम्पलेट का उपयोग करता है।

निर्माण को ट्रिगर करना

आपके पास निर्माण को ट्रिगर करने के लिए कई मुख्य तरीके हैं जैसे:

  1. आपके पास Jenkins तक UI पहुंच है

एक बहुत आसान और सुविधाजनक तरीका है मौजूदा निर्माण की पुनरावृत्ति कार्यक्षमता का उपयोग करना। यह आपको एक पूर्व निष्पादित निर्माण को पुनः चलाने की अनुमति देता है जबकि आपको ग्रोवी स्क्रिप्ट को अपडेट करने की अनुमति देता है। इसके लिए Jenkins फ़ोल्डर पर विशेषाधिकार और एक पूर्व निर्धारित पाइपलाइन की आवश्यकता होती है। यदि आपको छिपकर काम करना है, तो आप अपनी ट्रिगर की गई निर्माणों को हटा सकते हैं यदि आपके पास पर्याप्त अनुमति है।

  1. आपके पास SCM में लिखने की पहुंच है और स्वचालित निर्माण वेबहुक के माध्यम से कॉन्फ़िगर किए गए हैं

आप बस एक निर्माण स्क्रिप्ट (जैसे Jenkinsfile) को संपादित कर सकते हैं, कमिट कर सकते हैं और पुश कर सकते हैं (यदि निर्माण केवल PR मर्ज पर ट्रिगर होते हैं तो अंततः एक PR बना सकते हैं)। ध्यान रखें कि यह मार्ग बहुत शोर करता है और आपके निशान साफ़ करने के लिए उच्च विशेषाधिकार की आवश्यकता होती है।

Jenkins निर्माण पॉड YAML ओवरराइड

OpenShift - Jenkins Build Pod Override