उपयोगकर्ता कैसे बनाएं/जोड़ें Jenkins अनुमतियों का प्रबंधन करें

⚡ स्मार्ट सारांश

उपयोगकर्ता बनाना Jenkins इसमें चार क्लिक लगते हैं, लेकिन उनमें से प्रत्येक को अलग-अलग अनुमतियाँ देने के लिए रोल-आधारित प्राधिकरण रणनीति प्लगइन की आवश्यकता होती है, जो प्रत्येक अंतर्निहित भूमिका में मौजूद एकल वैश्विक भूमिका को प्रतिस्थापित करता है। Jenkins खाता अन्यथा साझा करता है।

  • 🔘 अंतर्निहित सीमा: Jenkins यह बिना किसी अतिरिक्त सेटिंग के कई उपयोगकर्ता बना सकता है, फिर भी उनमें से प्रत्येक को समान वैश्विक विशेषाधिकार प्राप्त होते हैं।
  • पहले प्लगइन: रोल-आधारित प्राधिकरण रणनीति स्थापित करें, फिर किसी भी रोल स्क्रीन के प्रकट होने से पहले प्राधिकरण को रोल-आधारित रणनीति में बदलें।
  • तीन प्रकार की भूमिकाएँ: ग्लोबल रोल पूरे कंट्रोलर को कवर करते हैं, आइटम रोल जॉब्स और फोल्डर्स को टारगेट करते हैं, और एजेंट रोल बिल्ड मशीनों को टारगेट करते हैं।
  • 🧪 उदाहरण सहित: 'भूमिकाएँ सौंपें' स्क्रीन पर एक डेवलपर भूमिका बनाई जाती है, उसे अनुमतियाँ दी जाती हैं और उपयोगकर्ता गुरु99 को सौंपी जाती है।
  • पैटर्न मिलान: किसी आइटम की भूमिका में tester.* जैसे रेगुलर एक्सप्रेशन का उपयोग होता है, इसलिए हर मेल खाने वाली नौकरी या उपयोगकर्ता स्वचालित रूप से उस भूमिका को ग्रहण कर लेता है।
  • ⚙️ सुरक्षा नियम: एक ही खाते में हमेशा समग्र/प्रशासनिक पद की जिम्मेदारी रखें, अन्यथा भूमिका परिवर्तन को सहेजने से सभी लोग लॉग आउट हो सकते हैं।

उपयोगकर्ता कैसे बनाएं और जोड़ें Jenkins और अनुमतियाँ प्रबंधित करें

आम तौर पर, एक बड़े संगठन में, कार्यों को प्रबंधित करने और चलाने के लिए कई अलग-अलग टीमें होती हैं। Jenkinsलेकिन उपयोगकर्ताओं की इस भीड़ को प्रबंधित करना और उन्हें भूमिकाएँ सौंपना परेशानी भरा साबित हो सकता है।

डिफ़ॉल्ट रूप से, Jenkins इसमें उपयोगकर्ता बनाने के बहुत ही बुनियादी विकल्प मौजूद हैं। आप कई उपयोगकर्ता बना सकते हैं, लेकिन उन्हें केवल समान वैश्विक भूमिकाएँ और विशेषाधिकार ही दे सकते हैं। यह आदर्श नहीं है, खासकर किसी बड़े संगठन के लिए।

RSI भूमिका रणनीति प्लगइन यह प्लगइन आपको अलग-अलग उपयोगकर्ताओं को अलग-अलग भूमिकाएँ और विशेषाधिकार सौंपने की सुविधा देता है। इसके लिए आपको पहले अपने सिस्टम में प्लगइन इंस्टॉल करना होगा। Jenkins यह एक विशिष्ट वातावरण है, इसलिए नीचे दिए गए विवरण में पहले उपयोगकर्ता निर्माण, फिर प्लगइन और फिर इसके द्वारा अनलॉक की जाने वाली भूमिका स्क्रीन को शामिल किया गया है।

किसी उपयोगकर्ता को कैसे बनाएं/जोड़ें Jenkins

नीचे दिए गए चरणों का पालन करके आप एक नया उपयोगकर्ता बना सकते हैं। Jenkins:

चरण 1) लॉग इन करें Jenkins डैशबोर्ड

लॉग इन करें Jenkins डैशबोर्ड पर जाकर http://localhost:8080/

यदि आपने स्थापित नहीं किया है Jenkins अपने स्थानीय सर्वर में, उपयुक्त स्थान पर जाएं URL अपने लॉगिन क्रेडेंशियल का उपयोग करके अपने डैशबोर्ड तक पहुंचें। नीचे दिखाया गया डैशबोर्ड आपको मिल जाएगा।

Jenkins ब्राउज़र में खुला डैशबोर्ड Jenkins स्थापना पथ

चरण 2) विकल्प चुनें

अब आपको उपयोगकर्ता बनाने और जोड़ने के विकल्प दिखाई देंगे। Jenkins और मौजूदा उपयोगकर्ताओं का प्रबंधन करें।

प्रबंधित Jenkins उपयोगकर्ताओं को बनाने और प्रबंधित करने के विकल्पों को दर्शाने वाली स्क्रीन

चरण 3) एक नया उपयोगकर्ता बनाएं

  • प्रबंधित करें के अंतर्गत Jenkinsक्रिएट यूजर पर क्लिक करें
  • दर्ज Jenkins पासवर्ड, नाम, ईमेल आदि जैसी उपयोगकर्ता जानकारी जोड़ें।
  • उपयोगकर्ता बनाएं पर क्लिक करें

चरण 4) उपयोगकर्ता बनाया गया है

आप डैशबोर्ड पर देखेंगे कि एक नया Jenkins नीचे दी गई उपयोगकर्ता सूची में दर्ज किए गए विवरण के अनुसार उपयोगकर्ता बनाया गया है।

उपयोगकर्ता सूची Jenkins नया उपयोगकर्ता बन जाने के बाद डैशबोर्ड दिखाई देगा।

⚠️ संस्करण नोट: वर्तमान Jenkins रिलीज़ इस स्क्रीन को सूचीबद्ध करती है प्रबंधित Jenkins उपयोगकर्ता बजाय उपयोगकर्ताओं को प्रबंधित करेंप्रयोक्ता बनाएँ बटन और उस पर मौजूद फ़ील्ड अपरिवर्तित रहते हैं, और स्क्रीन केवल तभी मौजूद रहती है जब Jenkins'स्वयं का उपयोगकर्ता डेटाबेस सुरक्षा क्षेत्र है - इसके बजाय एक LDAP या एकल साइन-ऑन क्षेत्र बाहरी रूप से खातों का प्रबंधन करता है।

रोल स्ट्रेटेजी प्लगइन को कैसे इंस्टॉल करें Jenkins

अंतर्निहित उपयोगकर्ता स्क्रीन खाते तो बना देती है, लेकिन उन्हें अलग-अलग अनुमतियाँ नहीं दे सकती। यह क्षमता रोल-आधारित प्राधिकरण रणनीति प्लगइन के साथ आती है, जिसे निम्नानुसार स्थापित किया जाता है।

प्लगइन्स को इंस्टॉल करने के दो तरीके हैं Jenkins:

  1. इसे अपने माध्यम से इंस्टॉल करें Jenkins डैशबोर्ड
  2. प्लगइन डाउनलोड करना Jenkins वेबसाइट और इसे मैन्युअल रूप से इंस्टॉल करना।

चरण 1)

  1. प्रबंधित Jenkins
  2. मैनेज प्लगइन्स विकल्प पर क्लिक करें

प्रबंधित Jenkins प्लगइन प्रबंधन विकल्प हाइलाइट किया गया पृष्ठ

चरण 2)

  1. उपलब्ध अनुभाग स्क्रीन में, "भूमिका" खोजें।
  2. भूमिका चुनें-आधारित प्राधिकरण रणनीति लगाना
  3. पर क्लिक करें "पुनः आरंभ किए बिना इंस्टॉल करें” (सुनिश्चित करें कि आपके पास सक्रिय इंटरनेट कनेक्शन है)

प्लगइन मैनेजर खोज परिणामों में रोल-आधारित प्राधिकरण रणनीति प्लगइन सूचीबद्ध है

⚠️ संस्करण नोट: अब रास्ता यह है प्रबंधित Jenkins > प्लगइन्स और टैब पर लेबल लगा हुआ है उपलब्ध प्लगइन्ससर्च बॉक्स और प्लगइन का नाम एक ही है, इसलिए ऊपर बताए गए दोनों चरण अभी भी लागू होते हैं।

चरण 3)

प्लगइन इंस्टॉल हो जाने के बाद, "सफलता" की स्थिति प्रदर्शित होगी, जैसा कि नीचे दी गई इंस्टॉलेशन स्क्रीन में दिखाया गया है।

रोल स्ट्रैटेजी प्लगइन की स्थापना की सफलता की स्थिति दर्शाने वाली प्लगइन इंस्टॉलेशन स्क्रीन।

पर क्लिक करें शीर्ष पृष्ठ पर वापस जाएँ.

चरण 4) प्रबंधित Jenkins -> वैश्विक सुरक्षा कॉन्फ़िगर करें -> के अंतर्गत प्राधिकरण, चयन भूमिका आधारित रणनीति. पर क्लिक करें सहेजेंप्राधिकरण अनुभाग इस प्रकार दिखता है।

वैश्विक सुरक्षा स्क्रीन के प्राधिकरण अनुभाग में भूमिका आधारित रणनीति का चयन किया गया है।

वर्तमान में Jenkins इस पेज का लिंक यह है प्रबंधित Jenkins > सुरक्षाऔर पेज का शीर्षक अभी भी वही है। वैश्विक सुरक्षा को कॉन्फ़िगर करें उसी ऑथराइजेशन ड्रॉप-डाउन के साथ।

रोल स्ट्रैटेजी प्लगइन में भूमिकाओं के प्रकार

रोल बेस्ड स्ट्रैटेजी सक्रिय होने के बाद, प्लगइन तीन अलग-अलग रोल स्कोप प्रदान करता है। गलत स्कोप का चयन करना ही अनुमति के अप्रभावी प्रतीत होने का सबसे आम कारण है, इसलिए कुछ भी बनाने से पहले यह जानना ज़रूरी है कि प्रत्येक स्कोप में क्या शामिल है।

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

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

उपयोगकर्ताओं और भूमिकाओं को कैसे प्रबंधित करें Jenkins

भूमिकाओं को प्रबंधित करने और सौंपने के तरीके के बारे में नीचे दिए गए चरण हैं। Jenkins:

चरण 1)

  1. प्रबंधित Jenkins
  2. चुनते हैं भूमिकाएँ प्रबंधित करें और असाइन करें

प्रबंधित Jenkins यह पृष्ठ प्लगइन द्वारा जोड़ी गई 'भूमिकाओं को प्रबंधित करें और असाइन करें' प्रविष्टि को दर्शाता है।

नोट: कि भूमिकाएँ प्रबंधित करें और असाइन करें यह विकल्प तभी दिखाई देगा जब आपने रोल स्ट्रेटेजी प्लगइन इंस्टॉल कर लिया हो और ऑथराइजेशन को रोल बेस्ड स्ट्रेटेजी में बदल दिया हो।

चरण 2) पर क्लिक करें भूमिकाएँ प्रबंधित करें अपने संगठन के आधार पर नई भूमिकाएँ जोड़ने के लिए.

भूमिकाएँ प्रबंधित करें विकल्प के साथ भूमिकाएँ प्रबंधित करें और असाइन करें स्क्रीन

चरण 3) “डेवलपर” नामक एक नई भूमिका बनाने के लिए,

  1. “भूमिका” के अंतर्गत “डेवलपर” टाइप करें।
  2. नई भूमिका बनाने के लिए “जोड़ें” पर क्लिक करें।
  3. अब, चयन करें Jenkins आप "डेवलपर" भूमिका को कौन सी उपयोगकर्ता अनुमतियाँ देना चाहते हैं।
  4. सहेजें पर क्लिक करें

नीचे दिखाई देने वाले चेकबॉक्स का ग्रिड दिखाया गया है।

डेवलपर भूमिका को जोड़कर और उसकी अनुमतियों पर टिक लगाकर भूमिका प्रबंधन स्क्रीन पर जाएं।

Jenkins आप किसी भूमिका को ये अनुमति समूह असाइन कर सकते हैं

भूमिका प्रबंधन स्क्रीन पर मौजूद टिक बॉक्स को उस ऑब्जेक्ट के आधार पर समूहित किया गया है जिस पर प्रत्येक अनुमति लागू होती है। नीचे दी गई तालिका बताती है कि प्रत्येक समूह क्या नियंत्रित करता है, जिससे किसी टीम को वास्तव में आवश्यक न्यूनतम अनुमतियाँ प्रदान करना बहुत आसान हो जाता है।

अनुमति समूह यह क्या प्रदान करता है
कुल प्रशासक, पठन और अन्य नियंत्रक-व्यापी अधिकार। व्यवस्थापित पूर्ण नियंत्रण का अधिकार इसी के पास है, इसलिए इसे सोच-समझकर ही दें।
साख संग्रहित क्रेडेंशियल्स को देखना, बनाना और अपडेट करना
एजेंट बिल्ड एजेंटों को कॉन्फ़िगर करना, कनेक्ट करना, डिस्कनेक्ट करना और हटाना
काम बिल्ड, कैंसिल, कॉन्फ़िगर, क्रिएट, डिलीट, रीड, वर्कस्पेस और मूव जॉब्स
रन किसी व्यक्तिगत बिल्ड रिकॉर्ड को हटाना, पुनः चलाना और अपडेट करना
देखें डैशबोर्ड दृश्य बनाना, कॉन्फ़िगर करना, हटाना और पढ़ना
SCM सोर्स-कंट्रोल हुक से बिल्ड को ट्रिगर करना

हर नई भूमिका की शुरुआत करें कुल मिलाकर/पढ़ें प्लस नौकरी/पढ़ेंइन दोनों के बिना, लॉग इन किया हुआ उपयोगकर्ता अन्य अनुमतियों को चुने जाने पर भी एक खाली डैशबोर्ड देखता है, जो इस प्लगइन के साथ सबसे अधिक रिपोर्ट की गई समस्या है।

भूमिकाएँ कैसे सौंपें Jenkins

चरण 1) अब जब आपने भूमिकाएँ बना ली हैं, तो आइए उन्हें विशिष्ट उपयोगकर्ताओं को सौंपें।

  1. प्रबंधित Jenkins
  2. भूमिकाएँ प्रबंधित करें और असाइन करें चुनें

भूमिकाएँ प्रबंधित करें और असाइन करें स्क्रीन खुलती है, जिससे भूमिकाएँ असाइन करें विकल्प तक पहुँचा जा सकता है।

चरण 2) हम उपयोगकर्ता “ में नई भूमिका “डेवलपर” जोड़ेंगेguru99"

  1. डेवलपर भूमिका चेकबॉक्स का चयन करें
  2. सहेजें पर क्लिक करें

भूमिकाएँ असाइन करें स्क्रीन पर उपयोगकर्ता guru99 के लिए डेवलपर भूमिका चेकबॉक्स पर टिक लगा हुआ है।

आप अपनी आवश्यकतानुसार किसी भी उपयोगकर्ता को कोई भी भूमिका सौंप सकते हैं।

प्रोजेक्ट रोल कैसे बनाएं Jenkins

वैश्विक भूमिकाएँ हर जगह लागू होती हैं। जब कोई अनुमति केवल नौकरियों के एक समूह पर लागू होनी चाहिए, तो उसके बजाय एक प्रोजेक्ट भूमिका बनाएँ — जिसे प्लगइन अब आइटम भूमिका कहता है।

आप इसके अंतर्गत परियोजना-विशिष्ट भूमिकाएँ बना सकते हैं परियोजना भूमिकाएँ.

चरण 1) In Jenkins' भूमिकाओं का प्रबंधन और आवंटन करें

  1. “परीक्षक” के रूप में भूमिका दर्ज करें
  2. इसमें एक पैटर्न जोड़कर जोड़ें परीक्षक.*, ताकि “परीक्षक” से शुरू होने वाले किसी भी उपयोगकर्ता नाम को आपके द्वारा निर्दिष्ट परियोजना भूमिका सौंपी जाएगी।
  3. जोड़ें क्लिक करें
  4. विशेषाधिकार चुनें
  5. सहेजें पर क्लिक करें

नीचे पूर्ण प्रोजेक्ट रोल्स टेबल दिखाया गया है।

प्रोजेक्ट रोल्स टेबल में टेस्टर रोल और टेस्टर डॉट स्टार पैटर्न दर्ज किया गया है।

यह पैटर्न आइटम के पूरे नाम के आधार पर मिलान किया गया एक नियमित अभिव्यक्ति है, इसलिए tester.* यह नाम के फ़ोल्डर से भी मेल खाता है परीक्षक-सूट और इसके अंदर सब कुछ। किसी वास्तविक कार्य पर लागू करने से पहले किसी अप्रचलित कार्य पर नए पैटर्न का परीक्षण करें। फ्रीस्टाइल प्रोजेक्ट या एक पाइपलाइन नौकरी.

मैट्रिक्स-आधारित सुरक्षा बनाम भूमिका-आधारित रणनीति

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

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

सामान्य नियम यह है कि अनुमति कितनी बार दोहराई जाती है। एक बार जब तीसरे उपयोगकर्ता के लिए भी वही टिक पैटर्न दर्ज किया जाता है, तो भूमिका को बनाए रखना सस्ता हो जाता है - यही तर्क टीमों को तदर्थ कार्यों से समीक्षा किए गए कार्यों की ओर ले जाता है। सीआई/सीडी पाइपलाइन.

अक्सर पूछे जाने वाले प्रश्न

दो बातें पूरी होनी चाहिए। रोल-बेस्ड ऑथराइजेशन स्ट्रैटेजी प्लगइन इंस्टॉल होना चाहिए, और सिक्योरिटी स्क्रीन पर ऑथराइजेशन को रोल-बेस्ड स्ट्रैटेजी पर सेट किया जाना चाहिए। दूसरा चरण सेव होने तक यह एंट्री छिपी रहेगी।

रुकें Jenkins, खुला config.xml JENKINS_HOME में, इसे बदलें authorizationStrategy तत्व के साथ <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>फिर रीस्टार्ट करें। हमेशा एक अकाउंट को ओवरऑल/एडमिनिस्टर के लिए रखें ताकि इसकी आवश्यकता न पड़े।

जी हां। 'भूमिकाएं असाइन करें' स्क्रीन समूह नामों के साथ-साथ उपयोगकर्ता नामों को भी स्वीकार करती है, इसलिए एक LDAP या एक्टिव डायरेक्टरी समूह को एक बार किसी भूमिका से जोड़ा जा सकता है और सदस्यता को फिर पूरी तरह से डायरेक्टरी में ही नियंत्रित किया जा सकता है।

मशीन लर्निंग टूल दी गई अनुमतियों की तुलना प्रत्येक खाते द्वारा वास्तव में उपयोग की जाने वाली अनुमतियों से करते हैं और अप्रयुक्त अनुमतियों को चिह्नित करते हैं, जिससे अनुमति मैट्रिक्स को मैन्युअल रूप से पढ़ने की तुलना में अत्यधिक विशेषाधिकार प्राप्त भूमिकाओं का पता बहुत तेजी से चलता है।

गिटहब कोपिलॉट लिखते हैं Groovy या फिर REST कॉल जो बल्क में भूमिकाएँ बनाते हैं और आइटम भूमिकाओं के लिए पैटर्न एक्सप्रेशन तैयार करते हैं। Revइसके चलने से पहले इसके द्वारा उत्पन्न किसी भी चीज़ को देखें, क्योंकि एक गलत पैटर्न चुपचाप पहुंच को व्यापक बना देता है।

खाते इसके अंतर्गत आते हैं JENKINS_HOME/usersप्रत्येक उपयोगकर्ता के लिए एक फ़ोल्डर, जिसमें एक config.xml अंदर। भूमिकाएँ और उनकी अनुमतियाँ मुख्य भाग में रहती हैं। JENKINS_HOME/config.xmlइसलिए उस फोल्डर का बैकअप लेने से दोनों चीजें सुरक्षित रहती हैं।

उपयोगकर्ता सूची से खाता हटा दें, जिससे लॉगिन तो हट जाएगा लेकिन बिल्ड हिस्ट्री नहीं हटेगी। बिना कुछ हटाए एक्सेस रद्द करने के लिए, 'भूमिकाएँ असाइन करें' स्क्रीन पर उस उपयोगकर्ता के लिए 'भूमिका' चेकबॉक्स को अनचेक करें और सेव करें।

जी हां। मैनेज रोल्स स्क्रीन पर क्रेडेंशियल्स अनुमति समूह संग्रहीत रहस्यों को देखने, बनाने और अपडेट करने को कवर करता है, इसलिए किसी भूमिका को किसी कार्य को चलाने की अनुमति दी जा सकती है जबकि उसे उसके द्वारा उपयोग किए जाने वाले क्रेडेंशियल्स को पढ़ने से रोका जा सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: