জেনকিনসকে কীভাবে এক পিসি থেকে অন্য পিসিতে সরানো যায়


154

আমি বর্তমানে আমার উন্নয়ন পিসিতে জেনকিন্স ব্যবহার করছি। আমি এটি আমার বিকাশ পিসিতে ইনস্টল করেছি, কারণ এই সরঞ্জামটিতে আমার জ্ঞান সীমিত ছিল; তাই আমি আমার ডেভেলপমেন্ট পিসিতে এটি পরীক্ষা করেছি। এখন, আমি জেনকিন্সকে বিল্ড প্রক্রিয়ায় আমার দীর্ঘমেয়াদী "অংশীদার" হিসাবে স্বাচ্ছন্দ্যবোধ করি এবং এই জেনকিন্সকে একটি উত্সর্গীকৃত সার্ভারে "স্থানান্তর" করতে চাই।

এর আগে আমি কয়েকটি বিল্ড করেছি এবং প্রতিটি বিল্ড থেকে নিদর্শনগুলি সংরক্ষণাগারভুক্ত করেছি। বিশেষত, সংস্করণ নিয়ন্ত্রণের জন্য বিল্ড নম্বরটি আমার কাছে অত্যন্ত গুরুত্বপূর্ণ।

আমি কীভাবে আমার বর্তমান পিসি থেকে আমার নতুন সার্ভারে জেনকিন্সের সমস্ত তথ্য রফতানি করতে পারি?


6
আমি সবেমাত্র এটি করেছি। আমি সিড্রিক জুলিয়ানের উত্তর থেকে প্রাপ্ত পদক্ষেপগুলি অনুসরণ করেছি, কিন্তু আমি দেখেছি যে জিনকিনস সরানোর পরে সাফল্যের সাথে চালু হওয়ার আগে উইন্ডোজটিতে আমাকে একটি মেরামত ইনস্টল চালাতে হয়েছিল। মেরামতের পরে, সবকিছু ঠিক আছে।
স্মুরফ 269

উত্তর:


175

জেনকিনস উইকির অনুসরণ করে , আপনাকে:

  • নতুন সার্ভারে একটি নতুন জেনকিন্স ইনস্টল ইনস্টল করুন
  • পুরানো এবং নতুন জেনকিন্সের দৃষ্টান্তগুলি বন্ধ রয়েছে তা নিশ্চিত হন
  • পুরানো জেনকিন্স দৃষ্টান্তের জেনকিনসহোমের সমস্ত সামগ্রী সংরক্ষণাগারভুক্ত করুন
  • নতুন JENKINS_HOME ডিরেক্টরিতে সংরক্ষণাগারটি বের করুন
  • নতুন জেনকিন্স উদাহরণটি চালু করুন
  • আপনার জেনকিন্সের নতুন দস্তাবেজের ডকুমেন্টেশন / লিঙ্কগুলি পরিবর্তন করতে ভুলবেন না :)
  • নতুন জেনকিনস ফাইলগুলির মালিক পরিবর্তন করতে ভুলবেন না: chown -R jenkins:jenkins $JENKINS_HOME

JENKINS_HOME অবস্থিত ডিফল্টরূপে হয় ~/.jenkinsএকটি Linux ইনস্টলেশনের উপর, এখনো যেখানে এটি অবস্থিত খুঁজে যেতে ঠিক করতে HTTP: // your_jenkins_url / কনফিগার পৃষ্ঠা এবং প্রথম প্যারামিটার মান যাচাই করুন: Home directory; এটি জেনকিনসহোম।


1
আমি যখন আমার নতুন জিনকিনগুলি চালু করি তখন আমার নোডগুলি নীচে প্রদর্শিত হচ্ছে যা সঠিক। ক্রীতদাস কম্যান্ড লাইন থেকে চালান: কিন্তু যখন আমি কিছু নোড ক্লিক URL গুলি সেখানে নিচের পুরনো Jenkins প্রতি নির্দেশ করা হয় javaws পুরোনো Jenkins-সার্ভার: 8080 / কম্পিউটার / slaveMachine1 / দাস-agent.jnlp অথবা যদি স্লেভ হেডলেস: জাভা -জার স্লেভ.জার -jnlpUll ওল্ড- জেনকিনস -সার্ভার: ৮০৮০ / কম্পিউটার / স্লেভম্যাচাইন ১ / স্লেভ-এজেন্ট.jnlp এখন প্রতিটি নোডের জন্য নতুন জেনকিনস-সার্ভারে নির্দেশ করার জন্য আমি কীভাবে এই ইউআরএলগুলি তৈরি করব?
মের্লাচন্দ্র

13
আমার আগের মন্তব্যে উল্লিখিত আমার সমস্যার সমাধান পেয়েছেন: গোটো জেনকিনস পরিচালনা করুন> সিস্টেম কনফিগার করুন। এখানে 'জেনকিন্স অবস্থান' বিভাগে, 'জেনকিন্স ইউআরএল' ক্ষেত্রের অধীনে, নতুন জেনকিন্স সার্ভারে এটি নির্দেশ করার জন্য URL টি পরিবর্তন করুন।
মের্লাচন্দ্র

3
লুকানো ফোল্ডারগুলিও অনুলিপি করতে ভুলবেন না!
mohi

7
"আপনার জেনকিনসের নতুন দস্তাবেজগুলিতে ডকুমেন্টেশন / লিঙ্কগুলি পরিবর্তন করতে ভুলবেন না" এর জন্য হা হা +1
আয়ান স্মিথ

2
সঠিক ফাইল অনুমতি এবং মালিকানা নিয়ে আমার সমস্যা ছিল, এটি ঠিক করতে আমি এই ডকার স্ক্রিপ্টটি ব্যবহার করেছি (অংশটি যা মালিকানা / অনুমতি নির্ধারণ করে): hub.docker.com/r/appcontainers/jenkins/~/dockerfile
marcinj

53

যদি আপনার জেনকিনসহোম ডিরেক্টরিটি অনুলিপি করার জন্য খুব বড় হয় এবং আপনার যা দরকার তা হল একই কাজ, জেনকিনস প্লাগইনস এবং জেনকিনস কনফিগারেশনগুলি সেটআপ করা (এবং পুরানো কাজের শৈল্পিকাগুলি এবং প্রতিবেদনের প্রয়োজন নেই), তারপরে আপনি থিনব্যাকআপ প্লাগিন ব্যবহার করতে পারেন :

  1. উত্স এবং লক্ষ্য জেনকিন্স সার্ভার উভয় ক্ষেত্রেই থিনব্যাকআপ ইনস্টল করুন
  2. উভয়টিতে ব্যাকআপ ডিরেক্টরিটি কনফিগার করুন (জেনকিন্স -> থিনব্যাকআপ -> সেটিংস পরিচালনা করুন)

  3. অন ​​সোর্স জেনকিনস থিনব্যাকআপ -> এখন ব্যাকআপ যান

  4. জেনকিন্স উত্স ব্যাকআপ ডিরেক্টরি থেকে জেনকিনস টার্গেট ব্যাকআপ ডিরেক্টরিতে অনুলিপি করুন
  5. টার্গেটে জেনকিনস থিনব্যাকআপ -> পুনরুদ্ধারে যান এবং তারপরে জেনকিনস পরিষেবাটি পুনরায় চালু করুন।
  6. যদি কিছু প্লাগইন বা চাকরি অনুপস্থিত থাকে তবে ব্যাকআপ সামগ্রীটি সরাসরি জেনকিনসহোমে লক্ষ্য করুন copy

  7. যদি জেনকিন্স উত্সটিতে আপনার ব্যবহারকারীর প্রমাণীকরণ থাকে এবং এখন জেনকিনস লক্ষ্যবস্তুতে লক আউট হয়ে থাকেন তবে জেনকিনস কনফিগারেশন.এক্সএমএল সম্পাদনা করুন, মিথ্যাতে সেট <useSecurity>হয়ে গেছেন এবং জেনকিন্স পুনরায় চালু করুন।


2
কেন জেনকিনসহোম ডিরেক্টরিটি অনুলিপি করার পক্ষে এত বড় হবে? আমরা কোন ধরণের আকারের কথা বলছি?
wotanii

9
আমার জেনকিন্স_হোম 100 গিগাবাইট বা তাই, এটি নতুন সার্ভারে অনুলিপি করতে চান না, কারণ এটি বেশিরভাগ জিনিস ফেলে দেয়
ব্যবহারকারী 230910

3
আমার জেনকিনস_হোমটি 4TB ডলার, সুতরাং একটি পাতলা অনুলিপি যা কেবলমাত্র কনফিগারেশন বহন করে এবং বিল্ড ইতিহাস বা / ব্যবহারকারীর কোনওটিই কার্যকর নয়।
ভলি জোশ

দুর্দান্ত, প্লাগইনস ... সত্যিকার অর্থে অনেক সময় সাশ্রয় হয়েছে .. 100 গিগাবাইট মোকাবেলা করা সহজ কাজ নয়
স্বপ্নিল কোতোয়াল

11

এটি আমার জন্য উবুন্টু 12.04 (জেনকিনস ভার। ১.6262৮) থেকে উবুন্টু ১ (.০৪ (জেনকিন্স ভার্জ ১.6565১.২) এ যাওয়ার জন্য কাজ করেছিল। আমি জেনকিন্স প্রথম সংগ্রহস্থল থেকে ইনস্টল করেছি ।

  1. উভয় জেনকিন্স সার্ভার বন্ধ করুন
  2. JENKINS_HOMEপুরানো সার্ভার থেকে নতুনটিতে অনুলিপি করুন (যেমন / var / lib / jenkins)। নতুন সার্ভারের কনসোল থেকে:

    rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/

  3. আপনার নতুন জেনকিন্স সার্ভারটি শুরু করুন

আপনার এটার দরকার নেই, তবে আমারও দরকার ছিল

  • Manage Jenkinsএবং Reload Configuration from Disk
  • সমস্ত দাসকে আবার সংযোগ বিচ্ছিন্ন করুন এবং সংযুক্ত করুন।
  • এটিকে পরীক্ষা করে দেখুন Configure System > Jenkins Location, Jenkins URLসঠিকভাবে নতুন জেনকিন্স সার্ভারকে দেওয়া হয়েছে।

নতুন জেনকিনসের কি পুরানোটির মতো সংস্করণ ছিল?
জাকুব সাজাপলিকি

@ জাকুবকাজাপ্লিক্লি - জেনকিনস উভয়ই ছিল ১.6, তবে ঠিক একই সংস্করণ নয়। উত্তর আপডেট হয়েছে। আমি তখন জেনকিনস.ওয়ার ফাইলটি প্রতিস্থাপন করে জেনকিন্স ২.6 এ উবুন্টুকে ১.0.০৪ আপডেট করেছি এবং এটি ভালভাবে কাজ করেছে। stackoverflow.com/questions/11062335/…
কাটু

উপরের কাজটি করার পরে এবং পরিদর্শন করার পরে /configureSecurityআমি পাইjava.lang.AssertionError: InstanceIdentity is missing its singleton
ম্যাক্সিম্মে

@ ম্যাক্সিম্মে, দেরিতে তবে এই থ্রেডটি পরামর্শ দেয় যে আপনি উল্লিখিত সমস্যাটি জাভা সংস্করণের সাথে সম্পর্কিত। ইস্যু.জেনকিনস-ci.org/ ব্রাউজ
কাতু

1

জেনকিন্স সার্ভার অটোমেশন:

ধাপ 1:

জিনকিন্স হোম (চাকুরী, কনফিগারেশন, প্লাগইন ইত্যাদি) গিটল্যাব লোকাল বা গিটহাবের ব্যক্তিগত সংগ্রহস্থলে সংরক্ষণের জন্য একটি ভান্ডার স্থাপন করুন এবং জেনকিন্স চাকরি, প্লাগইন ইত্যাদিতে কোনও নতুন পরিবর্তন ঠেকিয়ে নিয়মিত আপডেট রাখুন

ধাপ ২:

জেনকিন্সের জন্য একটি পুতুল হোস্ট-গ্রুপ / ভূমিকাটি কনফিগার করুন যা নতুন জেনকিন্স সার্ভারগুলি স্পিন করতে ব্যবহৃত হতে পারে। একটি পুতুল রেসিপিতে সমস্ত বেসিক কনফিগারেশন করুন এবং নিশ্চিত করুন যে এটি জেনকিন্সের সর্বশেষ সংস্করণটি ইনস্টল করে এবং এর জন্য একটি পৃথক ডিরেক্টরি / মাউন্ট সেট আপ করে JENKINS_HOME

ধাপ 3:

উপরে জেনকিন্স-পুতুল কনফিগারেশন ব্যবহার করে একটি নতুন মেশিন স্পিন করুন। সবকিছু ইনস্টল হয়ে গেলে, জিটকিনস কনফিগারেশনটি গিট সংগ্রহশালা থেকে জেনকিন্সের হোম ডিরেক্টরিতে যান এবং জেনকিন্স পুনরায় আরম্ভ করুন art

পদক্ষেপ 4:

জেনকিন্স URL- এ যান, জেনকিন্স পরিচালনাপ্লাগইন পরিচালনা এবং সব প্লাগইনগুলির একটি আপডেট প্রয়োজন আপডেট করুন।

সম্পন্ন

স্লেভ নোডগুলিকে স্বয়ংক্রিয়ভাবে স্কেল করতে আপনি ডকার সোর্ম বা কুবারনেটস ব্যবহার করতে পারেন ।


1

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

প্লাগইন স্থানান্তরের জন্য:

  1. অনুরোধটি পান: {SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1আপনি তাদের সংস্করণে ইনস্টল হওয়া প্লাগইনগুলির তালিকা পাবেন।
  2. এই প্লাগইনগুলি ইনস্টল করার জন্য আপনি নিম্নলিখিত পরামিতিগুলির সাথে একটি পোষ্ট অনুরোধ পাঠাতে পারেন।

    final_url=`{DESTINATION_JENKINS_SERVER}/pluginManager/installNecessaryPlugins`
    
    data=`<jenkins><install plugin="{PLUGIN_NAME}@latest"/></jenkins>` (where, latest will fetch the latest version of the plugin_name)
    
    auth=`(destination_jenkins_username, destination_jenkins_password)`
    
    header=`{crumb_field:crumb_value,"Content-Type":"application/xml”}` (where crumb_field=Jenkins-Crumb and get crumb value using API call {DESTINATION_JENKINS_SERVER}/crumbIssuer/api/json
    

চাকরি স্থানান্তরের জন্য:

  1. আপনি একটি REST কল ব্যবহার করে {SOURCE_JENKINS_URL on এ ইনস্টল করা কাজের তালিকা পেতে পারেন, {SOURCE_JENKINS_URL}/view/All/api/json
  2. তারপরে আপনি জব URL টি ব্যবহার করে job SOURCE_JENKINS_URL jobs এ কাজগুলি থেকে প্রতিটি কাজের config.xML ফাইল পেতে পারেন {SOURCE_JENKINS_URL}/job/{JOB_NAME}
  3. Config DESTINATION_JENKINS_URL on এ এক্সএমএল ফাইলের বিষয়বস্তু পোস্ট করার জন্য এই কনফিগার.এক্সএমএল ফাইলটি ব্যবহার করুন এবং এটি {DESTINATION_JENKINS_URL on তে একটি কাজ তৈরি করবে}

আমি পাইথনে একটি মেনু চালিত ইউটিলিটি তৈরি করেছি যা ব্যবহারকারীকে প্লাগইন বা জেনকিন্স স্থানান্তর শুরু করতে বলে এবং এটি করার জন্য জেনকিনস আরএসটি এপিআই কলগুলি ব্যবহার করে।

আপনি এই ইউআরএল থেকে জেনকিনসমিগ্রেশন.ডোক্স উল্লেখ করতে পারেন


যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে।
ভিচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.