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


140

আমি হাডসন / জেনকিন্সে নতুন এবং ভাবছিলাম যে হডসনের কনফিগারেশন ফাইলগুলিকে উত্স নিয়ন্ত্রণে পরীক্ষা করার কোনও উপায় আছে কিনা।

আদর্শভাবে আমি ইউআই-তে এমন কয়েকটি বোতাম ক্লিক করতে সক্ষম হতে চাই যাতে 'কনফিগারেশনটি সংরক্ষণ করুন' বলে এবং হাডসন কনফিগারেশন ফাইলগুলিকে উত্স নিয়ন্ত্রণে চেক ইন করতে হবে।


অথবা আপনি দাবি হিসাবে গিট
রেপোতে


চেক করুন: জেনকিন্স ফাইলগুলির কাঠামোর জন্য HUDSON_HOME ডিরেক্টরি
কেনারব

উত্তর:


62

সবচেয়ে সহায়ক উত্তর

এসসিএম সিঙ্ক কনফিগারেশন প্লাগইন নামে একটি প্লাগইন রয়েছে


আসল উত্তর

আমার অনুরূপ প্রশ্নের উত্তরটি দেখুন । মূল ধারণাটি হ'ল এক্সটিএমএল-ফাইলগুলির পরিবর্তনগুলি সনাক্ত করতে ফাইল-সিস্টেম-স্কেম-প্লাগইন ব্যবহার করা। আপনার দ্বিতীয় অংশটি এসভিএন-এ পরিবর্তনগুলি করা হবে।

সম্পাদনা: আপনি যদি কোনও পরিবর্তনের জন্য ব্যবহারকারী নির্ধারণের কোনও উপায় খুঁজে পান তবে আমাদের জানান।

সম্পাদনা 2011-01-10 ইতিমধ্যে একটি নতুন প্লাগইন রয়েছে: এসসিএম সিঙ্ক কনফিগারেশন প্লাগইন । বর্তমানে এটি কেবল সাবগ্রেশন এবং গিট দিয়ে কাজ করে তবে আরও সংগ্রহস্থলের জন্য সমর্থন করার পরিকল্পনা করা হয়েছে। আমি এটি 0.0.3 সংস্করণ থেকে ব্যবহার করছি এবং এটি এখন পর্যন্ত ভাল কাজ করেছে।


2
আমি পৃথক হয়ে উঠতে অনুরোধ করছি: আপনি যদি জটিল পরিবেশে গিট ব্যবহার করেন এবং পরিচালনা করেন তবে প্লাগইনটিতে কিছু বড় দুর্বলতা রয়েছে: 'আপনি যদি গিট ব্যবহার করেন তবে আপনার ডিফল্ট নামের সাথে এসএসএইচ কী ব্যবহার করা উচিত। এটি "id_rsa"। এসসিএম সিঙ্কের জন্য এসএসএস কী পাথ নির্দিষ্ট করার বিকল্প নেই। এসসিএম সিঙ্কটি জেনকিনস প্রক্রিয়া মালিকের হোম ডিরেক্টরি থেকে .ssh / id_rsa ব্যবহার করে। ' [ wiki.jenkins-ci.org/display/JENKINS/…
বেন হাচিসন

2
এসসিএম সিঙ্ক কনফিগারেশন প্লাগইনটি সাবভার্সন প্লাগইন> = ২.০ ( ইস্যুগুলিতেজেনকিনস-ci.org/ ব্রাউজ / জেনকিনস ২১40০০ ) এর সাথে বেমানান ।
নিক জোন্স

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

1
@ ভিকরামভি, আপনি প্রস্তাবিত বিকল্পটি কী?
ইগোর রদ্রিগেজ

1
@ ইগোররড্রিগেজ প্রকল্পের কোডের তুলনায় জেনকিন্সের কাজ ঘন ঘন পরিবর্তন ঘটাতে পারে না; আমি গিথুবে ম্যানুয়ালি পরিবর্তনগুলি করছি।
বিক্রমভি

38

নোট করুন যে ভোগেলার একটি সাম্প্রতিক (জানুয়ারী ২০১৪, ওপি-র প্রশ্নের জানুয়ারী ২০১০ এর তুলনায়) রয়েছে এবং এটি ভিন্নভাবে গ্রহণ করে।
বিবেচনা করুন যে এসসিএম সিঙ্ক কনফিগারেশন প্লাগইন প্রচুর কমিট তৈরি করতে পারে ।
সুতরাং, একটি প্লাগইন এবং একটি স্বয়ংক্রিয় প্রক্রিয়া নির্ভর করার পরিবর্তে, তিনি একই বৈশিষ্ট্যটি ম্যানুয়ালি পরিচালনা করেন:

গিটে জেনকিন্সের কাজের তথ্য সংরক্ষণ করা

আমি কমিটের পরিমাণটি কিছুটা অপ্রতিরোধ্য পেয়েছি, সুতরাং আমি সিদ্ধান্ত নিয়েছি যে নিজে নিজেই এই কমিটগুলি নিয়ন্ত্রণ করতে এবং কেবলমাত্র জব সম্পর্কিত তথ্যগুলি সংরক্ষণ করার জন্য জেনকিনস কনফিগারেশনটি নয় not
আপনার জেনকিন্স জব ডিরেক্টরিতে (উবুন্টু /var/lib/jenkins/jobs:) স্যুইচ করার জন্য এবং " git init" কমান্ডটি সম্পাদন করুন ।

আমি .gitignoreকেবল গিট কাজের তথ্য সংরক্ষণের জন্য নিম্নলিখিত ফাইলটি তৈরি করেছি:

builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber
modules/
*.log

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

আলবার্তো আসলে (যুক্ত $JENKINS_HOME) যুক্ত করার পরামর্শ দেয় :

  • জেনকিন্স নিজস্ব কনফিগারেশন ( config.xml),
  • জেনকিন্স প্লাগইন কনফিগার ( hudson*.xml) এবং
  • ব্যবহারকারী কনফিগার ( users/*/config.xml)

ব্যবহারকারী কনফিগারগুলি তাদের প্লেটেক্সট এপিআই টোকেনগুলি ফাঁস করে দেবে না config.xml?
বুন

@ বুুন আমি আসলে জানি না, যেহেতু সম্প্রতি আমাকে এপিআই টোকেন ব্যবহার করতে হয়নি। আপনার কাছে জিজ্ঞাসা করার জন্য এটি নিজের পক্ষে একটি ভাল প্রশ্ন হতে পারে।
ভনসি

2
কিছু গবেষণার পরে, দেখা যাচ্ছে যে এপিআই টোকেনগুলি এক্সএমএল এ এনক্রিপ্ট করা আছে, সুতরাং এটি কোনও সুরক্ষা ঝুঁকি তৈরি করবে না।
বুন

19

গিটের সাথে আপনার কনফিগারেশনটি ম্যানুয়ালি পরিচালনা করতে, নিম্নলিখিত .gitignore ফাইলটি সহায়ক হতে পারে।

# Miscellaneous Hudson litter
*.log
*.tmp
*.old
*.bak
*.jar
*.json

# Generated Hudson state
/.owner
/secret.key
/queue.xml
/fingerprints/
/shelvedProjects/
/updates/

# Tools that Hudson manages
/tools/

# Extracted plugins
/plugins/*/

# Job state
builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber

দেখুন এই GitHub সারকথা এবং এই ব্লগ পোস্টে আরো বিস্তারিত জানার জন্য।


14

এখানে একটি নতুন এসসিএম সিঙ্ক কনফিগারেশন প্লাগ-ইন রয়েছে যা আপনি যা খুঁজছেন ঠিক তা করে।

এসসিএম সিঙ্ক কনফিগারেশন হাডসন প্লাগইনটি 2 টি প্রধান বৈশিষ্ট্যকে লক্ষ্য করে:

  • আপনার কনফিগার.এক্সএমএল (এবং অন্যান্য রিসোর্স) হডসন ফাইলগুলিকে এসসিএম সংগ্রহস্থলের সাথে সিঙ্ক করে রাখুন
  • প্রতিশ্রুতিবদ্ধ বার্তাগুলি সহ প্রতিটি ফাইলে করা পরিবর্তনগুলি (এবং লেখক) ট্র্যাক করুন

আমি আসলে এটি এখনও চেষ্টা করি নি, তবে এটি আশাব্যঞ্জক বলে মনে হচ্ছে।


3
আমি গিটের সাথে এসসিএম সিঙ্ক কনফিগারেশন প্লাগ-ইনয়ের একটি কার্যকারী কনফিগারেশনে আগ্রহী, আমি বেশ কয়েকটি কনফিগারেশন চেষ্টা করেছি এবং আমি কেবল এটি কাজ করতে পারি না (এবং লগগুলিতে ত্রুটি বার্তাগুলি সর্বোপরি অসহনীয় ছিল)।
সেবাস্তিয়ানো পিল্লা

8

আপনি জেনকিন্স হোম ফোল্ডারে কনফিগারেশন ফাইলগুলি খুঁজে পেতে পারেন (উদাঃ /var/lib/jenkins)।

এগুলিকে ভিসিএসে রাখতে, প্রথমে জেনকিন্স ( sudo su - jenkins) হিসাবে লগইন করুন এবং এর গিট শংসাপত্রগুলি তৈরি করুন:

git config --global user.name "Jenkins"
git config --global user.email "jenkins@example.com"

তারপরে প্রাথমিক ফাইলগুলি শুরু করুন, যুক্ত করুন এবং প্রতিশ্রুতিবদ্ধ করুন যেমন:

git init
git add config.xml jobs/ .gitconfig
git commit -m'Adds Jenkins config files' -a

.gitignoreনীচের ফাইলগুলি উপেক্ষা করার জন্য তৈরি করার বিষয়টিও বিবেচনা করুন (প্রয়োজনীয় হিসাবে কাস্টমাইজ করুন):

# Git untracked files to ignore.

# Cache.
.cache/

# Fingerprint records.
fingerprints/

# Working directories.
workspace/

# Secret files.
secrets/
secret.*
*.enc
*.key
users/
id_rsa

# Plugins.
plugins/

# State files.
*.state

# Job state files.
builds/
lastStable
lastSuccessful
nextBuildNumber

# Updates.
updates/

# Hidden files.
.*
# Except git config files.
!.git*
!.ssh/

# User content.
userContent/

# Log files.
logs/
*.log

# Miscellaneous litter
*.tmp
*.old
*.bak
*.jar
*.json
*.lastExecVersion

তারপর এটি যোগ করুন: git add .gitignore

হয়ে গেলে, আপনি কাজের কনফিগারেশন ফাইলগুলি যুক্ত করতে পারেন, যেমন

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

প্রয়োজনে অন্য যে কোনও ফাইল যুক্ত করুন এবং প্রতিশ্রুতিবদ্ধ করুন, তারপরে আপনি যে কনফিগারেশন ফাইলগুলি রাখতে চান সেখানে এটি রিমোট রেপোজিটরিতে সরিয়ে নিন push


জেনকিনস ফাইলগুলি আপডেট করা হলে, আপনাকে সেগুলি পুনরায় লোড করতে হবে ( ডিস্ক থেকে পুনরায় লোড কনফিগারেশন ) বা reload-configurationজেনকিনস সিএলআই থেকে চালানো উচিত ।


সাইট-প্রশস্ত কনফিগারেশনগুলি কেন বাদ রয়েছে? আমি দেখতে পাচ্ছি যে অন্যান্য উত্তরগুলিতে সেগুলি অন্তর্ভুক্ত রয়েছে।
ভিনসেন্ট বেল্টম্যান

@kenorb আমি এটিকে আবার বাদ দেব। একটি মন্তব্য লাইনের উপরে *.xmlনিয়ম পরিবর্তন করে না এবং Git উপেক্ষা করে সব সহ XML ফাইল config.xmlথেকে jobsডিরেক্টরি, git statusইহাতে চুপটি কোনো উপেক্ষা করে নতুন প্রকল্পের।
মিকোলাসন

5

আমি যেভাবে পছন্দ করি তা হ'ল জেনকিন্স হোম ফোল্ডারে থাকা সমস্ত কনফিগারেশন ফাইলগুলি বাদ দিয়ে আপনি সত্যই আপনার ভিসিএসে থাকতে চান। .gitignoreআমি যে ফাইলটি ব্যবহার করি তা এখানে :

*
!.gitignore
!/jobs/*/*.xml
!/*.xml
!/users/*/config.xml
!*/

এটি নিজে *( !) .gitignore, কাজ / প্রকল্পগুলি, প্লাগইন এবং অন্যান্য গুরুত্বপূর্ণ এবং ব্যবহারকারীর কনফিগারেশন ফাইল ব্যতীত ( ) সমস্ত কিছু উপেক্ষা করে।

এটি অন্তর্ভুক্ত করার জন্য বিবেচনা করাও মূল্যবান plugins ফোল্ডারটি । বিরক্তিকরভাবে আপডেট হওয়া প্লাগইনগুলি অন্তর্ভুক্ত করা উচিত ...

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


5

আরও সঠিক .gitignore, নেপা থেকে জবাব দ্বারা অনুপ্রাণিত :

*
!.gitignore
!/jobs/
!/jobs/*/
/jobs/*/*
!/jobs/*/config.xml
!/users/
!/users/*/
/users/*/*
!/users/*/config.xml
!/*.xml

এটি .xmlকনফিগারেশন ফাইল এবং .gitignoreনিজেই বাদ দিয়ে সবকিছু উপেক্ষা করে। (আপনি পার্থক্য nepa 's .gitignoreএটি "অপ্রত্যাখ্যান" সব টপ লেভেল ডিরেক্টরি (না হয় !*/) -এর মত logs/, cache/ইত্যাদি)


2

মার্কের উত্তর ( https://stackoverflow.com/a/4066654/142207 ) এসভিএন এবং গিটের জন্য কাজ করা উচিত (যদিও গিট কনফিগারেশন আমার পক্ষে কাজ করে না)।

তবে যদি আপনার মার্চুরিয়াল রেপোতে কাজ করার প্রয়োজন হয় তবে নিম্নলিখিত স্ক্রিপ্ট সহ একটি কাজ তৈরি করুন:

hg remove -A || true
hg add ../../config.xml
hg add ../../*/config.xml
if [ ! -z "`hg status -admrn`" ]; then
    hg commit -m "Scheduled commit" -u fill_in_the@blank.com
    hg push
fi

2

আমি একটি প্লাগইন লিখেছি যা আপনাকে জেনকিন্স নির্দেশাবলী উত্স নিয়ন্ত্রণে পরীক্ষা করতে দেয়। .jenkins.ymlবিষয়বস্তু সহ কেবল একটি ফাইল যুক্ত করুন :

script:
    - make
    - make test

এবং জেনকিন্স এটি করবে:

এখানে চিত্র বর্ণনা লিখুন


0

আমি সম্পূর্ণভাবে হডসনে চেক করেছিলাম, আপনি এটি একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করতে পারেন https://github.com/morkeleb/continuous-delivery-with-hudson

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

কাজের এ আমাদের হডসন অবিচ্ছিন্ন ডেলিভারি সেটআপের জন্য আমরা এটি বয়লারপ্লেট হিসাবে ব্যবহার করেছি।

শুভেচ্ছা মর্টেন

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