আপনি জেনকিন্স জবস এবং মাস্টার কনফিগারেশনগুলির ব্যাকআপ কীভাবে করবেন?


56

আমি সমস্ত জেনকিন্সের কাজ এবং কনফিগার করা ফাইলগুলিকে ব্যাকআপ করতে চাই। এটি করার সহজতম উপায় কী?


তুমি কি চেষ্টা করেছ?
030

1
আমি এই চেষ্টা করেছিলাম ।
কেনারব

উত্তর:


33

এটি করার অনেকগুলি উপায় রয়েছে তবে আমি মনে করতে পারি সবচেয়ে সহজ উপায় হ'ল জেনকিন্স হোম ফোল্ডারটির ব্যাকআপ নেওয়া।

আপনার জেনকিন্স বাড়ির সাথে আপনি কোথায় তা দেখতে পারেন:

echo $JENKINS_HOME

এবং উদাহরণস্বরূপ, আপনি যদি কেবলমাত্র কাজের ব্যাকআপ নিতে চান তবে আপনি যেতে পারেন:

cd $JENKINS_HOME/jobs

এবং সেই ফোল্ডারের জন্য একটি ব্যাকআপ তৈরি করুন।

সমস্ত কনফিগারেশন XML ফাইলের একগুচ্ছ হবে ।

আপনি যদি অফিসিয়াল জেনকিনস ডকার চিত্র ব্যবহার করেন তবে বাড়িটি চালু থাকবে:

/var/jenkins_home

2
$JENKINS_HOMEপরিবেশের পরিবর্তনশীল অ্যাক্সেস পেতে আমার sudo su -s /bin/bash jenkinsecho $JENKINS_HOME/var/lib/jenkins
জেনকিন্স

2
পুরো ফোল্ডার 'জবস' ব্যাক আপ করার ক্ষেত্রে সমস্যাটি হ'ল এছাড়াও কাজের ফাঁসিগুলি অনুলিপি করা হবে - এর অর্থ অনেকগুলি জিবি হতে পারে।
মাইক আরগেরিও

জেনকিনসের পরিষেবাটি আবার চালু হবে কিনা?
জিন মেং 4'18

জেনকিন্স বাড়িতে ম্যাকোজে (হোমব্রু ডিফল্ট ইনস্টলেশন): ~ /। জেনকিনস
চকসালদানা

30

সমস্ত কাঠামো ( jobs/) এবং মাস্টার কনফিগারেশন ফাইল ( config.xml) নীচের কাঠামোর জেনকিন্স হোম ফোল্ডারে ( JENKINS_HOME) পাওয়া যাবে :

JENKINS_HOME
 +- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

বেশিরভাগ কনফিগারেশন এক্সএমএল ফর্ম্যাটে রয়েছে, সুতরাং সমস্ত .xmlফাইলের ব্যাক করা যথেষ্ট।

সমস্ত সেটিংস, বিল্ড লগস, আর্টিক্যাক্ট সংরক্ষণাগারগুলি জেনকিনসহোম ডিরেক্টরিতে সংরক্ষণ করা হয়। ব্যাক আপ তৈরি করতে কেবল এই ডিরেক্টরিটি সংরক্ষণাগারভুক্ত করুন। একইভাবে, ডেটা পুনরুদ্ধার করা কেবল জেনকিনসহোম ডিরেক্টরি ডিরেক্টরিটিকে ব্যাক আপ থেকে প্রতিস্থাপন করছে।

সার্ভারটি বন্ধ না করে ব্যাক আপগুলি নেওয়া যেতে পারে, তবে আপনি পুনরুদ্ধার করার পরে, দয়া করে সার্ভারটি বন্ধ করুন।


ধারাবাহিক ব্যাকআপের জন্য JENKINS_HOMEডিরেক্টরিটি গিট সংগ্রহস্থলের অধীনে রাখা ভাল অনুশীলন ।

উদাহরণ স্বরূপ:

cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a

এবং ফাইলগুলি বহিরাগত সংগ্রহস্থলের দিকে ঠেলে দিচ্ছে। কিছু ফাইল উপেক্ষা করার জন্য আপনি নীচের .gitignoreফাইলটি যুক্ত করতে পারেন।

সম্পর্কিত: হডসন / জেনকিন্স কনফিগারেশন ফাইলগুলিকে উত্স নিয়ন্ত্রণে রাখার কোনও উপায় আছে কি?


আপনি কতবার ব্যাকআপ তৈরি করেন? আপনি কোডটি গিট রিপোজিটরিতে স্বয়ংক্রিয়ভাবে চাপছেন? যদি সত্য হয়, আপনি কি একটি পুল রিকুয়েস্ট তৈরি করেন যা কিছু ব্যাকআপ অখণ্ডতা পরীক্ষা করার জন্য ম্যানুয়ালি (ম্যানুয়াল হস্তক্ষেপ) মার্জ করতে হবে?
২030

2
@ 030 সাধারণত ম্যানুয়ালি কিছু বড় পরিবর্তনের পরে, যখন আমি জানি কনফিগারটি স্থিতিশীল এবং আমার এটি ব্যাকআপ করা দরকার, কারণ জেনকিন্স প্রায়শই জিনিসগুলি ভাঙতে পছন্দ করেন যেমন ইউনিট থেকে উইন্ডোতে স্ব-স্ব দ্বারা গোলাম পরিবর্তন করা, ফর্মগুলি থেকে পাসওয়ার্ড সরিয়ে ফেলা, গিট / গিটহাবের মধ্যে থাকা, আমি সহজেই তুলনা করতে এবং হারিয়ে যাওয়া ডেটা খুঁজে পেতে এবং এটিকে আবার যুক্ত করতে বা কোনও নির্দিষ্ট ফাইলটি ফিরতে পারি। ইতিহাসের পরিবর্তনগুলি রাখতে কিছু প্লাগইন রয়েছে, তবে আমি এটি কার্যকর মনে করি নি।
কেনরব

আপনি পাসওয়ার্ড গিটে সংরক্ষণ করেন? আপনি কি তাদের এনক্রিপ্ট করেন? আপনি কি কোড হিসাবে পাইপলাইনস ওরফে পাইপলাইন ব্যবহার করেন?
030

3
@ 030 জেনকিন্স ডিফল্টরূপে পাসওয়ার্ড / শংসাপত্রগুলি এনক্রিপ্ট করে তবে আপনি সেগুলি সহজেই ডিক্রিপ্ট করতে পারেন । তবে, মাস্টার কী (যা ব্যাকআপের অংশ হওয়া উচিত নয়) বা জেনকিন্স অ্যাক্সেস ছাড়া অন্য কেউ পারবেন না। আমি পাইপলাইনটিকে কোড হিসাবে ব্যবহার করছি না।
কেনারব

গিটে আপনি এই ব্যাকআপটির সত্যতা কীভাবে পরীক্ষা করেন? যেমন আপনি কি ভার্চুয়াল মেশিন বা ডকার সিস্টেমটি স্পিন করেন, গিট রেপো মাউন্ট করেন এবং এখনও সবকিছু কাজ করে কিনা তা যাচাই করেন?
২030

11

যদি আপনার জেনকিন্সের কাজগুলি জেনকিনসফাইলে সংজ্ঞায়িত করা হয় তবে আপনি এটিকে একটি গিটার সংগ্রহস্থলে সংরক্ষণ করতে পারেন এবং পাইপলাইন ব্যবহার করে এটি লোড করতে পারেন ।

দুর্ভাগ্যক্রমে, যেহেতু সমস্ত জেনকিনস প্লাগইন জেনকিনসফাইল এবং পাইপলাইন সমর্থন করে না, আপনি যদি বিদ্যমান ফর্ম্যাটগুলিকে এই ফর্ম্যাটে সরিয়ে নিতে চান তবে আপনাকে ম্যানুয়ালি নতুন জেনকিনসফাইল তৈরি করতে হবে।


9

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


1
আমি আক্ষরিক অর্থে $ জেনকিনস_হোল্ডার ফোল্ডারটি রেখেছি, তবে এটি খুব ভাল বলে মনে হচ্ছে।
মিঃমিসিজ 21

2
সেই প্লাগইনগুলি বেশ নিস্ক্রিয় / মৃত বলে মনে হচ্ছে - এটি কি সত্যিই কার্যকরী এবং 2017 সালের মতো?
টুউকা মস্তোনেন

5

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

ডেটা এবং কনফিগারেশন ব্যাকআপ করার অন্য উপায় হ'ল আপনার জেনকিন্স মাস্টার সার্ভারের ডিস্ক স্ন্যাপশট নেওয়া। ডিস্ক মাউন্ট করার মাধ্যমে এটি করার সর্বোত্তম উপায় এবং জেনকিনস কনফিগারেশন ডিরেক্টরিটি ডিস্ক মাউন্ট পয়েন্টের সাথে সংযুক্ত করে

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


3

আমি থেকে স্ক্রিপ্ট ব্যবহার করছি sue445/jenkins-backup-script

এটি জেনকিনস সেটিংস এবং প্লাগইনগুলির সংরক্ষণাগার যেমন:

  • $JENKINS_HOME/*.xml
  • $JENKINS_HOME/jobs/*/*.xml
  • $JENKINS_HOME/nodes/*
  • $JENKINS_HOME/plugins/*.jpi
  • $JENKINS_HOME/secrets/*
  • $JENKINS_HOME/users/*

ব্যবহার

./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz

# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz

3

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


1

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

  • জেনকিন্স পরিষেবা বন্ধ করুন (যদি আপনি এটি সামর্থ্য করতে পারেন)
  • পুরো জেনকিনস ফোল্ডারটি অনুলিপি করুন (ডিফল্টরূপে C:\Program Files x86\Jenkins)
  • নতুন উদাহরণে আটকান
  • ডিরেক্টরি ভিতরে যান এবং চালান jenkins.exe install

এটি নতুন মেশিনে একটি পরিষেবা হিসাবে নতুনভাবে আটকানো জেনকিন্সকে নিবন্ধভুক্ত করবে এবং একইভাবে 100% কাজ করবে।

যদি এটি কাজ করে তবে ভবিষ্যতের সুরক্ষার জন্য যদি আপনার ব্যাকআপের প্রয়োজন হয় তবে জেনকিনস ফোল্ডারটি কোথাও অনুলিপি করুন। এটি একটি স্ন্যাপশটের মতো কাজ করবে।

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