कमांड लाइन से जेनकिंस सुरक्षा सेटिंग्स कैसे रीसेट करें?


217

क्या उपयोगकर्ता / पासवर्ड के बिना कमांड लाइन से सभी (या सिर्फ सुरक्षा सेटिंग्स को अक्षम करने) को रीसेट करने का एक तरीका है क्योंकि मैंने खुद को पूरी तरह से बंद करने में कामयाब रहा है Jenkins?

जवाबों:


275

सरल समाधान पूरी तरह से अक्षम सुरक्षा के लिए है - परिवर्तन trueकरने falseमें /var/lib/jenkins/config.xmlफ़ाइल।

<useSecurity>true</useSecurity>

तो बस जेनकींस, द्वारा पुनः आरंभ करें

sudo service jenkins restart

और फिर व्यवस्थापक पैनल पर जाएं और एक बार फिर से सब कुछ सेट करें।

यदि आप मामले में एक डॉकटर से k8s पॉड के अंदर अपने जेनकींस चला रहे हैं, जो मेरा मामला है और serviceकमांड नहीं चला सकता है , तो आप पॉड को हटाकर जेनकींस को फिर से शुरू कर सकते हैं:

kubectl delete pod <jenkins-pod-name>

एक बार आदेश जारी होने के बाद, k8 पुरानी पॉड को समाप्त कर देगा और एक नई शुरुआत करेगा।


3
लागू करने के लिए मुझे जेनकींस को फिर से शुरू करने की आवश्यकता है।
या अर्बेल

12
sudo service jenkins restart
मोनोथ्रेड

10
उन लोगों के लिए जो इसे find / -name "config.xml" अपने टर्मिनल में config.xml का उपयोग नहीं कर सकते हैं ।
लेजर हॉक

कमांड प्रॉम्प्ट से पुनः आरंभ करने के लिए उपयोगकर्ता सुरक्षा टैग को बदलने के बाद, कमांड प्रॉम्प्ट से फिर से शुरू करना --- stackoverflow.com/questions/14869311/…
अनुराग_बीएचएस

1
इसके अलावा फ़ाइल ~ / .jenkins / फ़ोल्डर के तहत स्थित हो सकती है
Andrii Abramov

181

एक अन्य तरीका अपने उपयोगकर्ता के लिए कॉन्फ़िगरेशन फ़ाइल को मैन्युअल रूप से संपादित करना होगा (जैसे /var/lib/jenkins/users/username/config.xml) और पासवर्ड की सामग्री को अपडेट करें :

<passwordHash>#jbcrypt:$2a$10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>

एक बार जब आप ऐसा कर लेते हैं, तो बस जेनकिंस को पुनरारंभ करें और इस पासवर्ड का उपयोग करके लॉग इन करें:

test

1
क्या होगा अगर यह प्रविष्टि नहीं है - वास्तव में इसे कहां रखा जाए?
सर्प जूल

2
<passwordHash>एक्सएमएल टैग का एक बच्चा है <hudson.security.HudsonPrivateSecurityRealm_-Details>। कुल XML संरचना के विचार के लिए डिफ़ॉल्ट व्यवस्थापक उपयोगकर्ता को देखें।
ivandov

2
यह एक अच्छा समाधान है जो स्थापना को सुरक्षित रखता है। जिज्ञासा से बाहर, उस पासवर्ड को हैश कैसे उत्पन्न करता है?
kontextify 8

धन्यवाद, यह वही है जो मुझे चाहिए था!
मैट कैवानघ

C: \ Users \ <USER> \ में मौजूद फ़ाइल की सामग्री को संशोधित करना। jenkins \ users \ admin ने समस्या को हल करने में मदद की
साक्षी सिंगला

45

मैंने फ़ाइल को / var / lib / jenkins में स्थित विन्यास में पाया, जिसे config.xml कहा जाता है, जो इस समस्या को ठीक करता है।


1
मैं El-Capitan और config.xml का उपयोग कर रहा हूँ जो लोकेशन में नहीं मिल रहा है
Durai Amuthan.H

@ DuraiAmuthan.H क्या आपने इसे बिटनामी स्टैक के साथ स्थापित किया है? कॉन्फ़िगरेशन फ़ाइल में होगा/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
siegy22

@ryanzec, Nowakers उत्तर उसी फ़ाइल का उपयोग करता है, लेकिन इसे बेहतर तरीके से समझाया गया है, आपको इसे सही उत्तर के रूप में स्वीकार करने पर विचार करना चाहिए।
काटू

जहाँ हम फ़ाइल को hight sierra
prabakaran iOS

44

<passwordHash>तत्व में users/<username>/config.xmlप्रारूप के डेटा स्वीकार करेंगे

salt:sha256("password{salt}")

तो, अगर आपका नमक है barऔर आपका पासवर्ड है fooतो आप SHA256 का उत्पादन कर सकते हैं:

echo -n 'foo{bar}' | sha256sum

आपको 7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349परिणाम के रूप में मिलना चाहिए । हैश लें और इसे नमक के साथ डालें <passwordHash>:

<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>

जेनकिंस को पुनरारंभ करें, फिर पासवर्ड के साथ लॉगिंग का प्रयास करें foo। फिर अपना पासवर्ड कुछ और पर रीसेट करें। (जेनकिंस डिफ़ॉल्ट रूप से bcrypt का उपयोग करता है, और SHA256 का एक राउंड पासवर्ड स्टोर करने का एक सुरक्षित तरीका नहीं है। जब आप अपना पासवर्ड रीसेट करते हैं तो आपको एक bcrypt हैश संग्रहीत होगा।)


1
यह काम नहीं लगता है। एक उदाहरण #jbscrypt के नमक से शुरू होता है और फिर एन्क्रिप्ट किए गए फ़ील्ड $ 2a $ 10 $ को परिभाषित करता है। इनका क्या मतलब है?
jrwren

मेरे जवाब ने मेरे लिए काम किया। आपके द्वारा देखे जा रहे अतिरिक्त क्षेत्र एक अलग हैश प्रारूप के लिए हैं। हैशेड पासवर्ड से निपटने के लिए लाइब्रेरी जेनकिंस एक से अधिक प्रारूप का समर्थन करता है। जिस jbcrypt प्रारूप का आप जिक्र कर रहे हैं वह नमक के साथ sha256 की तुलना में अधिक सुरक्षित है, लेकिन sha256 + नमक प्रारूप को आसानी से कमांड लाइन से उत्पादित किया जा सकता है --- याद रखें कि व्यायाम का बिंदु जेनकिंस में वापस जाना है, और फिर जेनकिंस के वेब इंटरफेस से पासवर्ड बदलें।
इक़ेलमैन

यह भी मेरे काम नहीं आया। मैं bcrypt के बारे में अधिक जानकारी प्राप्त करने की कोशिश करूँगा
लॉरेंट

यह मेरे लिए काम किया। मैंने निम्नलिखित आदेशों का उपयोग किया: `` PASSWORD_DIGEST = "$ (इको-एन" $ {ADMIN_PASSWORD} {$ {SALT}} "| sha256sum | awk '(प्रिंट $ 1}))" इको "पासवर्ड डाइजेस्ट: $ PASSWORD_DIGEST # sed # -i -e "s # <passwordHash>। * </ passwordHash> # <passwordHash> $ {SALT}: $ {PASSWORD_DIGEST} </ passwordHash> #" / usr / share / jenkins / ref / users / admin / config .xml "sed -i -e" s # <apiToken>। * </ apiToken> # <apiToken> $ {API_TOKEN} </ apiToken> # "" usr / share / jenkins / ref / users / admin / config। xml "` ``
लॉरेंट पिकेट

एक धन्यवाद। सटीक समान मूल्यों का उपयोग किया और एक आकर्षण की तरह काम किया। वापस अपने आप को मिला और पास रीसेट करें।

26

El-Capitan config.xml में नहीं पाया जा सकता है

/ Var / lib / जेनकींस /

में उपलब्ध है

~ / .Jenkins

उसके बाद अन्य उल्लेख के रूप में config.xml फ़ाइल खोलें और निम्नलिखित परिवर्तन करें

  • इसमें <useSecurity>true</useSecurity>साथ देते हैं<useSecurity>false</useSecurity>

  • निकालें <authorizationStrategy>और<securityRealm>

  • इसे सहेजें और जेनकींस को फिर से शुरू करें ( sudo service jenkins पुनरारंभ )


मैं वास्तव में config.xml फ़ाइल को संपादित करने में सक्षम नहीं हूं। जब मैं इसे vim का उपयोग करके इसे सहेजने की कोशिश करता हूं तो यह फेंकता है कि यह केवल पढ़ने के लिए फ़ाइल और ऑपरेशन है इसे लिखने की अनुमति नहीं है।
एमजे

19

संशोधन पर उत्तर सही था। फिर भी, मुझे लगता है कि यह उल्लेख किया जाना चाहिए कि /var/lib/jenkins/config.xmlऐसा कुछ दिखता है यदि आपने "प्रोजेक्ट-आधारित मैट्रिक्स प्राधिकरण रणनीति" को सक्रिय किया है। /var/lib/jenkins/config.xmlजेनकींस को हटाना और पुनः आरंभ करना भी चालबाजी करता है। मैंने उपयोगकर्ताओं /var/lib/jenkins/usersको खरोंच से शुरू करने के लिए हटा दिया ।

<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Computer.Configure:jenkins-admin</permission>
    <permission>hudson.model.Computer.Connect:jenkins-admin</permission>
    <permission>hudson.model.Computer.Create:jenkins-admin</permission>
    <permission>hudson.model.Computer.Delete:jenkins-admin</permission>
    <permission>hudson.model.Computer.Disconnect:jenkins-admin</permission>
    <!-- if this is missing for your user and it is the only one, bad luck -->
    <permission>hudson.model.Hudson.Administer:jenkins-admin</permission>
    <permission>hudson.model.Hudson.Read:jenkins-admin</permission>
    <permission>hudson.model.Hudson.RunScripts:jenkins-admin</permission>
    <permission>hudson.model.Item.Build:jenkins-admin</permission>
    <permission>hudson.model.Item.Cancel:jenkins-admin</permission>
    <permission>hudson.model.Item.Configure:jenkins-admin</permission>
    <permission>hudson.model.Item.Create:jenkins-admin</permission>
    <permission>hudson.model.Item.Delete:jenkins-admin</permission>
    <permission>hudson.model.Item.Discover:jenkins-admin</permission>
    <permission>hudson.model.Item.Read:jenkins-admin</permission>
    <permission>hudson.model.Item.Workspace:jenkins-admin</permission>
    <permission>hudson.model.View.Configure:jenkins-admin</permission>
    <permission>hudson.model.View.Create:jenkins-admin</permission>
    <permission>hudson.model.View.Delete:jenkins-admin</permission>
    <permission>hudson.model.View.Read:jenkins-admin</permission>
  </authorizationStrategy>

14

यदि आप मैट्रिक्स अनुमतियों का उपयोग कर रहे हैं, तो सुरक्षा को अक्षम किए बिना इसे रीसेट करने के लिए (संभवत: आसानी से अन्य लॉगिन तरीकों के लिए अनुकूल है):

  1. में config.xml, के लिए सेट disableSignupकरेंfalse
  2. पुनः आरंभ करें जेनकींस।
  3. जेनकिंस वेब पेज पर जाएं और एक नए उपयोगकर्ता के साथ साइन अप करें
  4. में config.xml, <permission>hudson.model.Hudson.Administer:username</permission>लाइनों में से एक की नकल करें और बदलेंusername नए उपयोगकर्ता के साथ ।
  5. यदि यह एक निजी सर्वर है, तो disableSignupवापस trueअंदर जाएंconfig.xml
  6. पुनः आरंभ करें जेनकींस।
  7. जेनकिन्स वेब पेज पर जाएं और नए उपयोगकर्ता के रूप में लॉग इन करें
  8. पासवर्ड रीसेट करेंमूल उपयोगकर्ता का करें।
  9. मूल उपयोगकर्ता के रूप में लॉग इन करें।

वैकल्पिक सफाई:

  1. नया उपयोगकर्ता हटाएं।
  2. में अस्थायी <permission>लाइन हटाएं config.xml

इस उत्तर के दौरान किसी भी प्रतिभूतियों को नुकसान नहीं पहुंचाया गया था।


क्लीनअप सेट अप को डिसिप्लिनअप पर वापस सही पर जोड़ें, और जेनकिंस को पुनः आरंभ करें
मार्क

14

लिनक्स में सरल चरणों में जेनकिंस सुरक्षा को अक्षम करने के लिए, इन कमांडों को चलाएं:

sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart

यह आपकी रूट कॉन्फ़िग फ़ाइल से हटाएगा useSecurityऔर आपके जेनकिन्स को फिर से शुरू करेगा।authorizationStrategyconfig.xml

इसे भी देखें: जेनकिंस वेबसाइट पर सुरक्षा अक्षम


जेनकिंस तक पहुंच प्राप्त करने के बाद, आप एक्सेस कंट्रोल / सुरक्षा क्षेत्र का चयन करके अपने कॉन्फ़िगर ग्लोबल सुरक्षा पृष्ठ में सुरक्षा को फिर से सक्षम कर सकते हैं । के बाद व्यवस्थापक उपयोगकर्ता बनाने के लिए मत भूलना ।


हालांकि, यह मेरे लिए काम कर रहा है, यह अब प्राधिकरण को छोड़ रहा है।
हेमंतो

@hemanto आपको प्राधिकरण को पुन: सक्षम करने के लिए सुरक्षा सक्षम करने की आवश्यकता है। मैंने जवाब अपडेट कर दिया है।
kenorb

12

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

sed -i 's/<useSecurity>true/<useSecurity>false/' ~/config.xml

इसके बाद बिल्ड नाउ पर क्लिक करें और अगर जरूरत हो तो जेनकिंस (या सर्वर को फिर से शुरू करें!)


1
यदि आप खुद को इससे बाहर कर लेते हैं तो आप जेनकिंस में नौकरी कैसे बनाते हैं?
गेरोल्डब्रोज़ ने मोनिका

इस स्थिति में, मैंने एक सामान्य क्रोम विंडो लॉग इन की थी और मैंने मुख्य विंडो से लॉग आउट करने से पहले सुरक्षा सेटिंग्स में बदलाव किया और एक गुप्त विंडो में परीक्षण किया। परीक्षण ने मुझे लॉग इन नहीं करने दिया, लेकिन मेरे सत्र मुख्य विंडो में बने रहे ताकि मैं क्षति की मरम्मत कर सकूं।
निक

1
मेरा मानना ​​है कि जो सुरक्षा सेटिंग्स मैं बदलूंगा उसका एक हिस्सा यह भी था कि मेरे विशेषाधिकार सत्र में जेनकिंस सुरक्षा कॉन्फ़िगरेशन को बदलने की अनुमति नहीं थी।
निक

सक्रिय होने के बाद इस समस्या में दौड़ें ProjectMatrixAuthorization। जब मैं परिवर्तन करता हूं और जेनकिंस को पुनः आरंभ करता हूं तो मुझे जेनकिंस-यूआई में एक जावा-अपवाद दिखाई देता है। इसे ठीक करने के लिए, मैंने रेखा को भी हटा दिया authorizationStrategyऔर यह फिर से ठीक हो गया। जेनकिन्स ने अगली शुरुआत में इसे एक खाली टैग के रूप में पढ़ा।
पीटर श्नाइडर

12

हम सुरक्षा को छोड़ते समय पासवर्ड रीसेट कर सकते हैं।

Config.xml फ़ाइल / var / lib / Jenkins / users / admin / जैसे / etc / छाया फ़ाइल Linux या UNIX- जैसी प्रणालियों या Windows में SAM फ़ाइल, इस अर्थ में कि यह हैश को संग्रहीत करता है खाते का पासवर्ड।

यदि आपको लॉग इन किए बिना पासवर्ड रीसेट करने की आवश्यकता है, तो आप इस फ़ाइल को संपादित कर सकते हैं और पुराने हैश को एक नए एचसीएच से बदल सकते हैं:

$ pip install bcrypt
$ python
>>> import bcrypt
>>> bcrypt.hashpw("yourpassword", bcrypt.gensalt(rounds=10, prefix=b"2a"))
'YOUR_HASH'

यह आपके हैश का उत्पादन करेगा, प्रीफिक्स 2 ए के साथ, जेनकिंस हैश के लिए सही उपसर्ग।

अब, config.xml फ़ाइल को संपादित करें:

...
<passwordHash>#jbcrypt:REPLACE_THIS</passwordHash>
...

एक बार जब आप नया हैश डालें, तो जेनकिंस रीसेट करें:

(यदि आप सिस्टमड के साथ सिस्टम पर हैं):

sudo systemctl restart Jenkins

अब आप लॉग इन कर सकते हैं, और आपने अपने सिस्टम को एक सेकंड के लिए खुला नहीं छोड़ा।


5
\.jenkins\secrets\initialAdminPassword

शुरुआती AdminPassword फ़ाइल से पासवर्ड कॉपी करें और इसे जेनकिंस में पेस्ट करें।


4

Windows OS में जेनकींस के लिए डिफ़ॉल्ट सुरक्षा को हटाने के लिए,

आप /users/ellingUserName Ideal/.jenkins के अंदर बनाई गई Config.xml फ़ाइल के माध्यम से पार कर सकते हैं।

इस फाइल के अंदर से आप कोड को बदल सकते हैं

<useSecurity>true</useSecurity>

सेवा,

<useSecurity>false</useSecurity>

4

यदि आप युद्ध या लिनक्स या उसके आधार पर विंडोज़ स्थापित करते हैं तो 1 पहला स्थान जांचें

उदाहरण के लिए अगर लिनक्स के तहत युद्ध और व्यवस्थापक उपयोगकर्ता के लिए

/home/"User_NAME"/.jenkins/users/admin/config.xml

#jbcrypt के बाद इस टैग पर जाएं:

<passwordHash>#jbcrypt:$2a$10$3DzCGLQr2oYXtcot4o0rB.wYi5kth6e45tcPpRFsuYqzLZfn1pcWK</passwordHash>

bcrypt हैश जनरेटर के लिए किसी भी वेबसाइट का उपयोग करके इस पासवर्ड को बदलें

https://www.dailycred.com/article/bcrypt-calculator

सुनिश्चित करें कि यह $ 2a के साथ शुरू होता है क्योंकि यह एक जेनकेन उपयोग करता है


4

स्टेप -1: डायरेक्टरी cd .jenkins / सीक्रेट्स पर जाएं फिर आपको एक 'initialAdminPassword' मिलेगा।

चरण -2: नैनो आरंभिक AdminPassword

आपको एक पासवर्ड मिलेगा


2

बदलने के <useSecurity>true</useSecurity>लिए <useSecurity>false</useSecurity>पर्याप्त नहीं होगा, आपको हटा देना चाहिए <authorizationStrategy>और <securityRealm>तत्वों को भी करना चाहिए और अपने जेनकींस सर्वर को पुनः आरंभ करना चाहिएsudo service jenkins restart

इस सेट याद <usesecurity>करने के लिए falseकेवल, आप के लिए एक समस्या का कारण हो सकता है क्योंकि इन निर्देशों को अपने आधिकारिक दस्तावेज में उल्लेख कर रहे यहां


1

इसका आसान तरीका यह है कि अपने व्यवस्थापक उपयोगकर्ता के साथ लॉगिन करने के लिए व्यवस्थापक psw का उपयोग करें:

  • रूट उपयोगकर्ता में बदलें: sudo su -
  • पासवर्ड कॉपी करें: xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
  • व्यवस्थापक के साथ लॉगिन करें और ctrl + vपासवर्ड इनपुट बॉक्स पर दबाएं ।

यदि आपके पास यह नहीं है, तो स्थापित करें:

  • $ sudo apt-get install xclip

डिफ़ॉल्ट पासवर्ड का उपयोग मेरे लिए काम किया। इसे सरल रखने के लिए, आप केवल एक-बंद के लिए xclip स्थापित करने के बजाय 'कैट सीक्रेट्स / initialAdminPassword' कर सकते हैं।
पॉल

कभी-कभी यह पासवर्ड मौजूद नहीं होता है। मुझे यकीन नहीं है कि आप इस विन्यास को कैसे दरकिनार कर सकते हैं लेकिन मेरे लिए, यह मौजूद नहीं है और मुझे config.xml
vinicius.hisao

1

कुबनेट्स और डोकर पर जेनकींस

के मामले में जेनकींस एक कंटेनर एक द्वारा प्रबंधित से अधिक Kubernetes पॉड में थोड़ा और अधिक जटिल के बाद से है: kubectl exec PODID --namespace=jenkins -it -- /bin/bashआप सीधे जेनकींस चल कंटेनर के लिए उपयोग करने की अनुमति देगा, लेकिन आप रूट पहुँच नहीं होगा , sudo,vi और कई आदेशों एक समाधान उपलब्ध नहीं हैं और इसलिए जरूरत है।

kubectl describe pod [...]अपने पॉड और कंटेनर आईडी को चलाने वाले नोड को खोजने के लिए उपयोग करें(docker://...)

  • SSH नोड में
  • चलाने के docker exec -ti -u root -- /bin/bashरूट विशेषाधिकारों के साथ कंटेनर का उपयोग करने की
  • apt-get update
  • sudo apt-get install vim

दूसरा अंतर यह है कि जेनकिंस कॉन्फ़िगरेशन फ़ाइल को एक अलग पथ में रखा गया है जो लगातार वॉल्यूम के बढ़ते बिंदु से मेल खाती है, अर्थात /var/jenkins_home, यह स्थान भविष्य में बदल सकता है, इसे चला रहा है।df

फिर सुरक्षा को अक्षम करें - /var/jenkins_home/jenkins/config.xmlफ़ाइल में सही पर गलत बदलें ।

<useSecurity>false</useSecurity>

अब जेनकिंस को फिर से चालू करने के लिए पर्याप्त है, कार्रवाई जो कंटेनर और पॉड को मरने का कारण बनेगी, यह कुछ सेकंड में फिर से अपडेटेड कॉन्फ़िगरेशन (और सभी मौका जैसे vi, अपडेट मिट) के साथ लगातार वॉल्यूम के लिए धन्यवाद होगा।

संपूर्ण समाधान का परीक्षण Google कुबेरनेट इंजन पर किया गया है। अद्यतन सूचना कि आप ps -auxसादा पाठ में पासवर्ड चला सकते हैं, रूट एक्सेस के बिना भी दिखाया गया है।

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]

1

बहुत बार जब आप config.xml फ़ाइल को संपादित करने की अनुमति नहीं होगी।

सबसे आसान काम यह होगा कि आप config.xmlसूडो कमांड का इस्तेमाल करके वापस आ जाएं ।

कमांड का उपयोग करके जेनकिंस को पुनरारंभ करें sudo /etc/init.d/jenkins restart

यह जेनकिंस में सभी सुरक्षा को अक्षम कर देगा और लॉगिन विकल्प गायब हो जाएगा


यदि आप sudo के साथ config.xml को हटा सकते हैं, तो आप इसे sudo के साथ भी संपादित कर सकते हैं। उदा
सूदो

1

Bcrypt का उपयोग करके आप इस समस्या को हल कर सकते हैं। जो व्यक्ति बैश और अजगर का उपयोग करके प्रक्रिया को स्वचालित करने का प्रयास कर रहा है, उसके लिए @Reem उत्तर का विस्तार करना।

#!/bin/bash

pip install bcrypt
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install xmlstarlet

cat > /tmp/jenkinsHash.py <<EOF
import bcrypt
import sys

if not sys.argv[1]:
  sys.exit(10)

plaintext_pwd=sys.argv[1]
encrypted_pwd=bcrypt.hashpw(sys.argv[1], bcrypt.gensalt(rounds=10, prefix=b"2a"))
isCorrect=bcrypt.checkpw(plaintext_pwd, encrypted_pwd)

if not isCorrect:
   sys.exit(20);

print "{}".format(encrypted_pwd)
EOF

chmod +x /tmp/jenkinsHash.py
cd /var/lib/jenkins/users/admin*
pwd
while (( 1 )); do
    echo "Waiting for Jenkins to generate admin user's config file ..."

    if [[ -f "./config.xml" ]]; then
        break
    fi

    sleep 10
done

echo "Admin config file created"

admin_password=$(python /tmp/jenkinsHash.py password 2>&1)

# Repalcing the new passowrd
xmlstarlet -q ed --inplace -u "/user/properties/hudson.security.HudsonPrivateSecurityRealm_-Details/passwordHash" -v '#jbcrypt:'"$admin_password" config.xml

# Restart
systemctl restart jenkins
sleep 10

मैंने यहां पासवर्ड हार्डकोड किया है, लेकिन यह आवश्यकता के आधार पर एक उपयोगकर्ता इनपुट हो सकता है। यह भी जोड़ना सुनिश्चित करें कि sleepअन्यथा जेनकिंस के चारों ओर घूमने वाला कोई अन्य आदेश विफल हो जाएगा।


1

केवल सुरक्षा और स्टार्टअप विज़ार्ड दोनों को अक्षम करने के लिए, जावा संपत्ति का उपयोग करें:

-Djenkins.install.runSetupWizard=false

इसके बारे में अच्छी बात यह है कि आप इसे डॉकर छवि में उपयोग कर सकते हैं जैसे कि आपका कंटेनर हमेशा बिना लॉगिन स्क्रीन के तुरंत चालू होगा:

# Dockerfile
FROM jenkins/jenkins:lts
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false

ध्यान दें कि, जैसा कि दूसरों ने उल्लेख किया है, जेनकिंस config.xml /var/jenkins_homeछवि में है, लेकिन sedइसे डॉकरफाइल से संशोधित करने का उपयोग करने में विफल रहता है, क्योंकि (संभवतः) config.xml तब तक मौजूद नहीं है जब तक कि सर्वर शुरू नहीं होता है।


0

मेरे पास एक समान मुद्दा था, और आर्टबी से उत्तर मिला,

मैंने पाया कि मेरे उपयोगकर्ता के पास उचित कॉन्फ़िगरेशन नहीं थे। तो मैंने क्या किया:

नोट: ऐसी XML फ़ाइलों को मैन्युअल रूप से संशोधित करना जोखिम भरा है। अपने जोखिम पर करें। चूंकि मैं पहले से ही बंद था, इसलिए मेरे पास खोने के लिए बहुत कुछ नहीं था। AFAIK सबसे खराब स्थिति मैं प्रचलित पोस्ट के रूप में ~ / .jenkins / config.xml फ़ाइल को हटा दिया होगा।

**> 1. जेनकींस मशीन के लिए ssh

  1. cd ~ / .jenkins (मुझे लगता है कि कुछ संस्थापन इसे /var/lib/jenkins/config.xml के तहत डालते हैं, लेकिन मेरे मामले में नहीं)
  2. vi config.xml, और ऑथराइजेशनस्ट्रेटी xml टैग के तहत, नीचे सेक्शन जोड़ें ("पुट-योर-यूजर नेम" के बजाय मेरे यूजरनेम का उपयोग करें)
  3. जेनकींस को पुनः आरंभ करें। मेरे मामले में रूट सेवा tomcat7 स्टॉप के रूप में; ; सेवा tomcat7 प्रारंभ
  4. फिर से लॉगिन करने का प्रयास करें। (मेरे लिए काम किया) **

के अंतर्गत

जोड़ें:

<permission>hudson.model.Computer.Build:put-your-username</permission>
<permission>hudson.model.Computer.Configure:put-your-username</permission>
<permission>hudson.model.Computer.Connect:put-your-username</permission>
<permission>hudson.model.Computer.Create:put-your-username</permission>
<permission>hudson.model.Computer.Delete:put-your-username</permission>
<permission>hudson.model.Computer.Disconnect:put-your-username</permission>
<permission>hudson.model.Hudson.Administer:put-your-username</permission>
<permission>hudson.model.Hudson.ConfigureUpdateCenter:put-your-username</permission>
<permission>hudson.model.Hudson.Read:put-your-username</permission>
<permission>hudson.model.Hudson.RunScripts:put-your-username</permission>
<permission>hudson.model.Hudson.UploadPlugins:put-your-username</permission>
<permission>hudson.model.Item.Build:put-your-username</permission>
<permission>hudson.model.Item.Cancel:put-your-username</permission>
<permission>hudson.model.Item.Configure:put-your-username</permission>
<permission>hudson.model.Item.Create:put-your-username</permission>
<permission>hudson.model.Item.Delete:put-your-username</permission>
<permission>hudson.model.Item.Discover:put-your-username</permission>
<permission>hudson.model.Item.Read:put-your-username</permission>
<permission>hudson.model.Item.Workspace:put-your-username</permission>
<permission>hudson.model.Run.Delete:put-your-username</permission>
<permission>hudson.model.Run.Update:put-your-username</permission>
<permission>hudson.model.View.Configure:put-your-username</permission>
<permission>hudson.model.View.Create:put-your-username</permission>
<permission>hudson.model.View.Delete:put-your-username</permission>
<permission>hudson.model.View.Read:put-your-username</permission>
<permission>hudson.scm.SCM.Tag:put-your-username</permission>

अब, आप विभिन्न दिशाओं में जा सकते हैं। उदाहरण के लिए मेरे पास गीथ ऑउथ इंटीग्रेशन था, इसलिए मैं नीचे दिए गए कुछ के साथ ऑथराइजेशनस्ट्रेगी को बदलने की कोशिश कर सकता था:

नोट:, यह मेरे मामले में काम करता है क्योंकि मेरे पास एक विशिष्ट गितुब ऑउथ प्लगइन था जो पहले से ही कॉन्फ़िगर किया गया था। तो यह पिछले समाधान की तुलना में अधिक जोखिम भरा है।

  <authorizationStrategy class="org.jenkinsci.plugins.GithubAuthorizationStrategy" plugin="github-oauth@0.14">
    <rootACL>
      <organizationNameList class="linked-list">
        <string></string>
      </organizationNameList>
      <adminUserNameList class="linked-list">
        <string>put-your-username</string>
        <string>username2</string>
        <string>username3</string>
        <string>username_4_etc_put_username_that_will_become_administrator</string>
      </adminUserNameList>
      <authenticatedUserReadPermission>true</authenticatedUserReadPermission>
      <allowGithubWebHookPermission>false</allowGithubWebHookPermission>
      <allowCcTrayPermission>false</allowCcTrayPermission>
      <allowAnonymousReadPermission>false</allowAnonymousReadPermission>
    </rootACL>
  </authorizationStrategy>

0

$ JENKINS_HOME / config.xml फ़ाइल को संपादित करें और इसके साथ डी सुरक्षा कॉन्फ़िगरेशन बदलें:

<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>

इसके बाद जेनकिंस को फिर से शुरू करें।


0

एक जो macOS का उपयोग कर रहा है, उसके लिए नया संस्करण सिर्फ होमब्रे द्वारा स्थापित किया जा सकता है। इसलिए आराम करने के लिए, इस कमांड लाइन का उपयोग करना चाहिए:

brew services restart jenkins-lts
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.