কমান্ড লাইন থেকে জেনকিন্স সুরক্ষা সেটিংস কীভাবে পুনরায় সেট করবেন?


217

আমি নিজেকে সম্পূর্ণরূপে লক আউট করে রেখেছি বলে কোনও ব্যবহারকারী / পাসওয়ার্ড ছাড়াই কমান্ড লাইন থেকে সমস্ত (বা কেবল সুরক্ষা সেটিংস অক্ষম) করার কী উপায় আছে Jenkins?

উত্তর:


275

সবচেয়ে সহজ সমাধান সম্পূর্ণরূপে নিষ্ক্রিয় নিরাপত্তার জন্য হয় - পরিবর্তন trueকরার falseমধ্যে /var/lib/jenkins/config.xmlফাইল।

<useSecurity>true</useSecurity>

তারপরে, জেনকিন্স পুনরায় চালু করুন by

sudo service jenkins restart

এবং তারপরে অ্যাডমিন প্যানেলে যান এবং আবার সবকিছু সেট করুন।

যদি আপনি যদি জেনকিন্সকে কোনও ডকার থেকে কে 8 এস পোডের ভিতরে চালাচ্ছেন, যা আমার ঘটনা এবং serviceকমান্ড চালাতে না পারে তবে আপনি কেবল জিনকিন্সকে পোড মুছে ফেলাতে পারেন:

kubectl delete pod <jenkins-pod-name>

কমান্ড জারি হওয়ার পরে, কে 8 গুলি পুরানো পোডটি শেষ করবে এবং একটি নতুন শুরু করবে।


3
পরিবর্তনের জন্য আমার জেনকিন্স পুনরায় চালু করতে হবে।
অথবা আর্বেল

12
sudo service jenkins restart
মনোথ্রেডেড

10
যারা এটি খুঁজে পায় না তাদের জন্য তাদের find / -name "config.xml" টার্মিনালে তাদের config.xml ব্যবহার করুন।
লেজার হক হক

ব্যবহারকারী সিকিউরিটি ট্যাগ প্রম্পট --- হুকুম থেকে পুনর্সূচনা jenking জন্য মিথ্যাতে পরিবর্তন করার পর stackoverflow.com/questions/14869311/...
Anurag_BEHS

1
ফাইলটি ~ / .jenkins / ফোল্ডারের অধীনে অবস্থিত হতে পারে
Andrii Abramov

181

অন্য একটি উপায় হ'ল ম্যানুয়ালি আপনার ব্যবহারকারীর জন্য কনফিগারেশন ফাইলটি সম্পাদনা করা (যেমন /var/lib/jenkins/users/username/config.xml) এবং পাসওয়ার্ডহ্যাশগুলির বিষয়বস্তু আপডেট করতে হবে :

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

একবার এটি হয়ে গেলে, কেবল জেনকিন্স পুনরায় চালু করুন এবং এই পাসওয়ার্ডটি ব্যবহার করে লগ ইন করুন:

test

1
যদি এই এন্ট্রিটি না থাকে - আসলে এটি কোথায় রাখা হবে?
Serup

2
<passwordHash>XML ট্যাগের শিশু <hudson.security.HudsonPrivateSecurityRealm_-Details>। মোট এক্সএমএল কাঠামোর ধারণার জন্য ডিফল্ট অ্যাডমিন ব্যবহারকারীকে দেখুন।
আইভান্ডভ

2
এটি একটি ভাল সমাধান যা ইনস্টলেশনটিকে সুরক্ষিত রাখে। কৌতূহলের বাইরে, কেউ কীভাবে সেই পাসওয়ার্ড হ্যাশ তৈরি করে?
2:40

আপনাকে ধন্যবাদ, এটি ঠিক আমার প্রয়োজন ছিল!
ম্যাট কাভানাঘ

সি-তে উপস্থিত ফাইলের বিষয়বস্তুগুলি সংশোধন করে: \ ব্যবহারকারী \ <USER> j জেনকিনস \ ব্যবহারকারীগণ \ প্রশাসকরা সমস্যাটি সমাধান করতে সহায়তা করেছে
সাক্ষী সিঙ্গলা

45

আমি কনফিগ.এক্সএমএল নামক / var / lib / jenkins- এ অবস্থিত প্রশ্নে ফাইলটি পেয়েছি, যা সমস্যার সমাধান করেছে।


1
আমি এল-ক্যাপিটান ব্যবহার করছি এবং কনফিগারেশন। এক্সএমএল লোকেশন পাওয়া যায় নি
দুরাই আমুথান। এইচ

@ দুরাইআমুথান।এইচটি আপনি কী বিটনামির স্ট্যাক দিয়ে ইনস্টল করেছেন? কনফিগারেশন ফাইলটি হবে/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
siegy22

@ আরয়ানজেক, নওকারদের উত্তরগুলি একই ফাইলটি ব্যবহার করে তবে এটি আরও ভালভাবে ব্যাখ্যা করা হয়েছে, আপনার এটি সঠিক উত্তর হিসাবে গ্রহণ করার বিষয়টি বিবেচনা করা উচিত।
কাতু

যেখানে আমরা
hight সিয়েরায়

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 এর এক রাউন্ড পাসওয়ার্ড সংরক্ষণের জন্য নিরাপদ উপায় নয় you আপনি নিজের পাসওয়ার্ডটি পুনরায় সেট করার সময় আপনি একটি bcrypt হ্যাশ পাবেন))


1
এটি কাজ করে না বলে মনে হচ্ছে। একটি উদাহরণ #jbscrypt এর লবণের সাথে শুরু হয় এবং তারপরে এনক্রিপ্ট ক্ষেত্রগুলি $ 2a $ 10 def সংজ্ঞায়িত করে $ এর অর্থ কী?
jrwren

আমার উত্তর আমার জন্য কাজ করে। আপনি যে অতিরিক্ত ক্ষেত্রগুলি দেখছেন তা হ্যাশ ফর্ম্যাটের জন্য আলাদা। জেনকিনস লাইব্রেরি হ্যাশ পাসওয়ার্ড পরিচালনার জন্য ব্যবহার করে যা একাধিক ফর্ম্যাটকে সমর্থন করে। আপনি যে jbcrypt ফর্ম্যাটটির কথা উল্লেখ করছেন তা লবণের সাথে sha256 এর চেয়ে বেশি সুরক্ষিত তবে sha256 + লবণের বিন্যাসটি কমান্ড লাইন থেকে সহজেই তৈরি করা যেতে পারে --- মনে করুন যে অনুশীলনের বিন্দুটি জেনকিন্সে ফিরে আসবে, এবং তারপরে জেনকিন্সের ওয়েব ইন্টারফেস থেকে পাসওয়ার্ড পরিবর্তন করুন।
uckelman

এটি আমার পক্ষেও কার্যকর হয়নি। আমি bcrypt উপর আরও তথ্য পেতে চেষ্টা করব
লরেন্ট Picquet

এটা আমার জন্য কাজ করে। আমি নিম্নলিখিত কমান্ডগুলি ব্যবহার করেছি: `` `PASSWORD_DIGEST =" $ (প্রতিধ্বনি-এন "{{সল্ট} W" | sha256sum | awk '{মুদ্রণ $ 1}') "প্রতিধ্বনি" পাসওয়ার্ড ডাইজেস্ট: $ পাসওয়ার্ড " -i "s # <পাসওয়ার্ডহ্যাশ>। .xml "সেড-আই-ই" এস # <পেপিটোকেন>। xML "` ``
লরেন্ট পিক্য়েট

ধন্যবাদ মিল। হুবহু একই মানগুলি ব্যবহার করে এবং কবজির মতো কাজ করে। নিজেকে আবার ফিরে পেয়েছি এবং পাসটি পুনরায় সেট করে।

26

এল-ক্যাপিটান কনফিগারেশন। এক্সএমএল পাওয়া যাবে না

/ Var / lib / Jenkins /

এটি উপলব্ধ

~ / .Jenkins

তারপরে তারপরে অন্যান্য উল্লিখিত হিসাবে কনফিগ.এক্সএমএল ফাইলটি খুলুন এবং নিম্নলিখিত পরিবর্তনগুলি করুন

  • এই <useSecurity>true</useSecurity>সঙ্গে প্রতিস্থাপন<useSecurity>false</useSecurity>

  • সরান <authorizationStrategy>এবং<securityRealm>

  • এটি সংরক্ষণ করুন এবং জেনকিনগুলি পুনরায় চালু করুন ( সুডো পরিষেবা জেনকিনস পুনরায় চালু করুন )


আমি আসলে কনফিগার.এমএমএল ফাইল সম্পাদনা করতে পারছি না। আমি যখন ভিএম ব্যবহার করে এটি সংরক্ষণের চেষ্টা করি তখন এটি ছোঁড়ে যে এটি কেবল পঠনযোগ্য ফাইল এবং এটি লেখার অ্যাক্সেসের অনুমতি দেওয়ার জন্য অপারেশন।
এমজে

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. মূল ব্যবহারকারী হিসাবে লগ ইন করুন।

Cleanচ্ছিক পরিষ্কার:

  1. নতুন ব্যবহারকারী মুছুন।
  2. অস্থায়ী <permission>লাইনটি মুছুন config.xml

এই উত্তরের সময় কোনও সিকিওরিটির ক্ষতি করা হয়নি।


সত্যতে পরিষ্করণ সেট disableSignup ফিরে পুনর্সূচনা যোগ করুন, এবং Jenkins
মার্ক

14

লিনাক্সের সাধারণ পদক্ষেপে জেনকিনস সুরক্ষা অক্ষম করতে, এই কমান্ডগুলি চালান:

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

এটি মুছে ফেলা হবে useSecurityএবং authorizationStrategyআপনার থেকে লাইন config.xmlরুট কনফিগ ফাইল এবং আপনার জেনকিন্স পুনরায় আরম্ভ করুন।

আরও দেখুন: জেনকিন্স ওয়েবসাইটে সুরক্ষা অক্ষম করুন


জেনকিন্স অ্যাক্সেস পাওয়ার পরে, আপনি অ্যাক্সেস কন্ট্রোল / সুরক্ষা ক্ষেত্রটি চয়ন করে আপনার কনফিগার গ্লোবাল সুরক্ষা পৃষ্ঠাতে পুনরায় সক্ষম করতে পারেন । এর পরে অ্যাডমিন ব্যবহারকারী তৈরি করতে ভুলবেন না ।


এটি আমার পক্ষে কাজ করেছে, তবে এটি এখন অনুমোদনটি এড়িয়ে চলেছে।
হেমন্ত

@hemanto অনুমোদন পুনরায় সক্ষম করতে আপনার সুরক্ষা সক্ষম করতে হবে। আমি উত্তর আপডেট করেছি।
কেনারব

12

অনুমতি ভুলের কারণে অফঙ্কে আপনি দুর্ঘটনাক্রমে নিজেকে জেনকিন্স থেকে লক করে ফেলেছেন এবং জেনকিন্স ব্যবহারকারী বা রুটে স্যুইচ করার জন্য আপনার সার্ভার-সাইড অ্যাক্সেস নেই ... আপনি জেনকিনসে একটি চাকরী করতে পারেন এবং এটিকে শেল স্ক্রিপ্টে যুক্ত করতে পারেন:

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

তারপরে এখনই বিল্ড ক্লিক করুন এবং জেনকিন্স পুনরায় চালু করুন (বা আপনার যদি প্রয়োজন হয় তবে সার্ভার!)


1
আপনি যদি জিনকিন্সে নিজেকে চাকরি থেকে সরিয়ে ফেলে থাকেন তবে কীভাবে আপনি একটি কাজ তৈরি করবেন?
জেরোল্ডব্রোসর মনিকা

এই ক্ষেত্রে, আমার একটি সাধারণ ক্রোম উইন্ডো লগ ইন ছিল এবং আমি সুরক্ষা সেটিংস পরিবর্তন করে এবং মূল উইন্ডো থেকে লগ আউট করার আগে একটি ছদ্মবেশ উইন্ডোতে পরীক্ষা করেছিলাম। পরীক্ষাটি আমাকে লগ ইন করতে দেয় নি, তবে আমার সেশনগুলি মূল উইন্ডোতে স্থির ছিল যাতে আমি ক্ষতিটি মেরামত করতে পারি।
নিক 11

1
আমি বিশ্বাস করি যে আমি যে সুরক্ষা সেটিংস পরিবর্তন করেছি তার অর্থ এই ছিল যে আমার লেখক অধিবেশনটির আর জেনকিনস সুরক্ষা কনফিগারেশন পরিবর্তন করার অনুমতি নেই permission
নিক

সক্রিয় হওয়ার পরে এই সমস্যায় পড়ুন ProjectMatrixAuthorization। আমি যখন পরিবর্তনটি করি এবং জেনকিন্স পুনরায় চালু করি তখন আমি জেনকিন্স-ইউআই তে একটি জাভা-ব্যতিক্রম দেখতে পাই। এটি ঠিক করার জন্য, আমি এর সাথে লাইনটিও সরিয়েছি authorizationStrategyএবং এটি আবার ঠিক আছে। জেনকিন্স পরের শুরুতে এটি খালি ট্যাগ হিসাবে পুনরায় পাঠিয়েছিল।
পিটার স্নাইডার

12

সুরক্ষা চালু রেখে আমরা পাসওয়ার্ডটি পুনরায় সেট করতে পারি।

/ Var / lib / জেনকিন্স / ব্যবহারকারী / অ্যাডমিন / এ কনফিগারেশন। XML ফাইল / etc / ছায়া ফাইল লিনাক্স বা ইউনিক্স-এর মতো সিস্টেমগুলি বা উইন্ডোজের এসএএম ফাইলের মতো কাজ করে, এই অর্থে যে এটি হ্যাশ সংরক্ষণ করে অ্যাকাউন্টের পাসওয়ার্ড

লগ ইন না করে যদি আপনার পাসওয়ার্ডটি পুনরায় সেট করতে হয়, আপনি এই ফাইলটি সম্পাদনা করতে এবং bcrypt থেকে উত্পন্ন নতুনটির সাথে পুরানো হ্যাশ প্রতিস্থাপন করতে পারেন:

$ 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

প্রাথমিকআডমিনপ্যাসওয়ার্ড ফাইল থেকে পাসওয়ার্ডটি অনুলিপি করুন এবং এটি জেনকিন্সে আটকান।


4

উইন্ডোজ ওএসে জেনকিনগুলির জন্য ডিফল্ট সুরক্ষাটি সরাতে,

আপনি /users/{UserName}/.jenkins এর ভিতরে তৈরি কনফিগারেশন.এমএমএল ফাইলটি অতিক্রম করতে পারেন।

এই ফাইলের ভিতরে আপনি কোডটি পরিবর্তন করতে পারবেন

<useSecurity>true</useSecurity>

প্রতি,

<useSecurity>false</useSecurity>

4

যদি আপনি যুদ্ধ বা লিনাক্স বা তার ভিত্তিতে উইন্ডোজ ইনস্টল করেন তবে প্রথমে 1 চেক অবস্থান location

উদাহরণস্বরূপ যদি লিনাক্সের অধীনে এবং অ্যাডমিন ব্যবহারকারীর জন্য যুদ্ধ হয়

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

# জেবিক্রিপ্টের পরে এই ট্যাগটিতে যান:

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

bcrypt হ্যাশ জেনারেটরের জন্য কোনও ওয়েবসাইট ব্যবহার করে এই পাসওয়ার্ডটি পরিবর্তন করুন

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

নিশ্চিত হয়ে নিন যে এটি $ 2a দিয়ে শুরু হয়েছে যার ফলে এটি একটি জেনকেন ব্যবহার করে


4

পদক্ষেপ -১: সিডি। জেনকিন্স / সিক্রেট ডিরেক্টরিতে যান তবে আপনি একটি 'প্রাথমিকআডমিনপ্যাসওয়ার্ড' পাবেন।

পদক্ষেপ -২: ন্যানো প্রারম্ভিক অ্যাডমিন পাসওয়ার্ড

আপনি একটি পাসওয়ার্ড পাবেন


2

পরিবর্তন <useSecurity>true</useSecurity>করার জন্য <useSecurity>false</useSecurity>যথেষ্ট নয়, আপনি মুছে ফেলা আবশ্যক <authorizationStrategy>এবং <securityRealm>খুব উপাদান এবং করে আপনার Jenkins সার্ভার পুনরায় আরম্ভ 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

ডিফল্ট পাসওয়ার্ড ব্যবহার আমার জন্য কাজ করে। এটি সহজ রাখার জন্য, আপনি এক-অফের জন্য এক্সক্লিপ ইনস্টল না করে কেবল 'বিড়াল সিক্রেটস / ইনিশিয়াল অ্যাডমিনপ্যাসওয়ার্ড' করতে পারেন।
পল

কখনও কখনও এই পাসওয়ার্ড উপস্থিত হয় না। আপনি কীভাবে এই কনফিগারটিকে বাইপাস করতে পারবেন তা আমি নিশ্চিত নই তবে আমার জন্য এটি উপস্থিত নেই এবং আমাকে কনফিগারেশন.এক্সএমএল সম্পাদনা করতে হয়েছিল
vinicius.hisao

1

জেনকিনস কুবনেটস এবং ডকারের উপরে

ক্ষেত্রে জেনকিন্স একটি ধারক একটি দ্বারা পরিচালিত উপর Kubernetes POD একটি বিট আরো জটিল থেকে হল: kubectl exec PODID --namespace=jenkins -it -- /bin/bashআপনি সরাসরি জেনকিন্স চলমান ধারক এক্সেস অনুমতি দেবে, কিন্তু আপনি যদি root পরিচয় অ্যাক্সেস থাকবে না , 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 এর মতো সমস্ত সুযোগ মুছে ফেলা) সহ কয়েক সেকেন্ডে আবার তৈরি হবে।

পুরো সমাধানটি গুগল কুবারনেটস ইঞ্জিনে পরীক্ষা করা হয়েছে। আপডেট আপডেট দেখুন যে আপনি 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.xmlsudo কমান্ডটি ব্যবহার করে মুছে ফেলা।

কমান্ডটি ব্যবহার করে জেনকিনগুলি পুনরায় চালু করুন sudo /etc/init.d/jenkins restart

এটি জেনকিন্সের সমস্ত সুরক্ষা অক্ষম করবে এবং লগইন বিকল্পটি অদৃশ্য হয়ে যাবে


যদি আপনি sudo দিয়ে config.xml মুছতে পারেন তবে আপনি এটি sudo দিয়েও সম্পাদনা করতে পারেন। যেমন sudo vi ...
লি মাদোর

1

Bcrypt ব্যবহার করে আপনি এই সমস্যাটি সমাধান করতে পারেন। ব্যাশ এবং পাইথন ব্যবহার করে প্রক্রিয়াটি স্বয়ংক্রিয় করার চেষ্টা করছেন এমন কারও জন্য @ রিম জবাব বাড়ানো।

#!/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

মনে রাখবেন, অন্যদের দ্বারা বর্ণিত হিসাবে, জেনকিনস কনফিগারেশন.এক্সএমএল /var/jenkins_homeছবিটিতে রয়েছে, তবে sedডকফাইফাইল থেকে এটি পরিবর্তন করতে ব্যর্থ হয়েছে, কারণ (সম্ভবতঃ) সার্ভারটি শুরু না হওয়া অবধি কনফিগারেশন.এক্সএমএল বিদ্যমান নেই।


0

আমার অনুরূপ সমস্যা ছিল এবং আর্টবির উত্তর অনুসরণ করে,

আমি দেখতে পেয়েছি যে আমার ব্যবহারকারীর যথাযথ কনফিগারেশন নেই। সুতরাং আমি কি করেছি:

দ্রষ্টব্য: ম্যানুয়ালি এই জাতীয় এক্সএমএল ফাইলগুলি সংশোধন করা ঝুঁকিপূর্ণ। নিজের ঝুঁকিতে এটি করুন। যেহেতু আমি ইতিমধ্যে লক আউট ছিলাম, আমার হারানোর তেমন কিছুই ছিল না। আফাইক সবচেয়ে খারাপ ক্ষেত্রে আমি পূর্বের পোস্ট হিসাবে উল্লিখিত / / .jenkins / config.xML ফাইলটি মুছে ফেলতাম।

**> 1. জেনকিন্স মেশিনে এসএসএস করুন

  1. সিডি। /। জেনকিনস (আমি অনুমান করি যে কিছু ইনস্টলেশন এটি /var/lib/jenkins/config.xml এর অধীনে রেখেছিল তবে আমার ক্ষেত্রে নয়)
  2. vi কনফিগারেশন। এক্সএমএল এবং অনুমোদন স্ট্র্যাটেজি এক্সএমএল ট্যাগের অধীনে নীচের অংশটি যুক্ত করুন ("আপনার ইউজারনেমটি" -র পরিবর্তে সবেমাত্র আমার ব্যবহারকারীর নাম ব্যবহার করেছেন)
  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

EN জেনকিনসহোম / কনফিগার.এক্সএমএল ফাইলটি সম্পাদনা করুন এবং এটির সাথে সুরক্ষা কনফিগারেশনটি পরিবর্তন করুন:

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

এরপরে জেনকিন্স পুনরায় চালু করুন।


0

যিনি ম্যাকস ব্যবহার করছেন তার জন্য নতুন সংস্করণটি হোমব্রিউ দ্বারা ইনস্টল করা যেতে পারে। সুতরাং বিশ্রামের জন্য, এই কমান্ড লাইনটি অবশ্যই ব্যবহার করা উচিত:

brew services restart jenkins-lts
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.