গিথুব ব্যক্তিগত সংগ্রহস্থলের জন্য জেনকিনস সিআইকে প্রমাণীকরণ করুন


136

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

কোনও ক্লু, সম্ভবত আপনি কিছু ডক্স / ব্লগ / যা কিছু জানেন যা এই ধরণের স্টাফটি বর্ণনা করছে?


আমি
এটির

উত্তর:


139

সম্ভবত ডিপ্লয় কীগুলির জন্য গিটহাবের সমর্থন আপনি যা খুঁজছেন তা কি? এই পৃষ্ঠাটি উদ্ধৃত করতে:

আমি কখন একটি ডিপ্লয় কী ব্যবহার করব?

সরল, যখন আপনার এমন কোনও সার্ভার থাকে যা একটি একক ব্যক্তিগত রেপোতে টানতে পারে। এই কীটি ব্যক্তিগত ব্যবহারকারীর অ্যাকাউন্টের পরিবর্তে সরাসরি সংগ্রহস্থলের সাথে সংযুক্ত।

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


এখন প্রযুক্তিগত অংশের জন্য: জেনকিন্সের সাথে কীভাবে আপনার এসএসএইচ কী ব্যবহার করবেন?

যদি আপনার কোনও jenkinsইউনিক্স ব্যবহারকারী থাকে তবে আপনি নিজের ডিপ্লয় কীটি এতে সঞ্চয় করতে পারেন ~/.ssh/id_rsa। জেনকিন্স যখন ssh এর মাধ্যমে রেপো ক্লোন করার চেষ্টা করবেন, তখন এটি কীটি ব্যবহার করার চেষ্টা করবে।

কিছু সেটআপে, আপনি জেনকিন্সকে নিজের ব্যবহারকারীর অ্যাকাউন্ট হিসাবে চালাতে পারবেন না এবং সম্ভবত ডিফল্ট ssh কী অবস্থানটি ব্যবহার করতে পারবেন না ~/.ssh/id_rsa। এই ধরনের ক্ষেত্রে, আপনি কোনও আলাদা অবস্থানে একটি কী তৈরি করতে পারেন, যেমন ~/.ssh/deploy_key, এবং sshএন্ট্রি সহ এটি ব্যবহারের জন্য কনফিগার করতে পারেন ~/.ssh/config:

Host github-deploy-myproject
    HostName       github.com
    User           git
    IdentityFile   ~/.ssh/deploy_key
    IdentitiesOnly yes

যেহেতু আপনি সমস্ত ব্যবহার করে সমস্ত গিথুব সংগ্রহস্থলগুলিতে প্রমাণীকরণ করেছেন git@github.comএবং আপনি চান না যে উপরের কীটি আপনার সমস্ত গিথুব সংযোগের জন্য ব্যবহার করা উচিত, আমরা একটি হোস্ট ওরফে গিথুব-ডিপ্লয়ে-মাইপ্রজেক্ট তৈরি করেছি । আপনার ক্লোন URL এখন হয়ে যায়

git clone github-deploy-myproject:myuser/myproject

এবং এটি আপনি জেনকিন্সে ভান্ডার URL হিসাবে রেখেছেন ।

(নোট আপনি যে আবশ্যক না করা : // SSH জন্য আপনাকে এই কাজ করার জন্য সামনে।)


4
আপনি কীভাবে জিনকিন্সের জন্য কী তৈরি করেছেন?
থিয়াগো ডিনিজ

5
"ডিপ্লয় কী" হ'ল কোনও পুরানো এসএসএইচ কী। আমি যা করেছি তা ssh-keygenব্যবহারকারী জেনকিন্স হিসাবে চালিত হয় (আমার উবুন্টু সার্ভারে "জেনকিনস")। আমি তখন ~jenkins/.ssh/id_rsa.pubগিথুবটিতে সংগ্রহস্থলের ডিপোয় কীগুলি বিভাগে যুক্ত করেছি ।
অ্যাডাম মনসেন

10
কিছু ইনস্টলের ক্ষেত্রে আপনাকে এটি ~ডিরেক্টরিতে না করে আউট করা দরকার । কিন্তু /var/lib/jenkins/.ssh/ডিফল্ট জেনকিন ব্যবহারকারীদের জন্য কীগুলি ব্যবহার করুন!
গারমনচেগ

7
@Garmoncheg দ্বারা মন্তব্য, দয়া করে মনে রাখবেন আপ অনুসরণ করতে /var/lib/jenkins হয় home ডিরেক্টরিতে ( ~) এর জন্য jenkinsব্যবহারকারী।
ডেভিড হারকনেস

1
কেউ কি কাজ করে এই সাথে কাজ করা হুক পেতে জানেন? আমি Could not match github-deploy-myproject:myuser/myprojectহুক লগের মতো ত্রুটিগুলি দেখতে পাচ্ছি । আমি আমার রেপো ইউআরএল হিসাবে প্রবেশ করেছি এবং বিল্ডগুলি কাজ করে যাতে এটি গিটহাবে অ্যাক্সেস করতে পারে। এটি কেবল গিটহাবের পোস্ট যা বিল্ডটি ট্রিগার করতে ব্যর্থ।
পোগো

36

আমার পক্ষে এটি কাজ করার একটি জিনিস হ'ল এটি নিশ্চিত github.comকরা ~jenkins/.ssh/known_hosts


মূল সমস্যাটি স্থাপনের পরে আমার যে সমস্যাটি ছিল তা এই সমস্যার সমাধান করেছে, গিট পুশ ব্যর্থ হচ্ছে
ক্রিসবুনি

আমার ক্ষেত্রে এটির সবচেয়ে সহজ উপায় হ'ল 'সুডো সু জেনকিনস' করা কারণ জেনকিন্স ব্যবহারকারী হিসাবে সঠিকভাবে লগ ইন করা সম্ভব নয়। জেনকিনস পরিচয়টি একবার হয়ে গেলে, আপনি গিথুব / বিটবাকেটে ম্যানুয়াল এসএস লগইন করতে পারেন এবং জেনকিন্স ব্যবহারকারীর পক্ষে রিমোট হোস্ট কী গ্রহণ করতে পারেন।
LOAS

তবে আপনি যদি জেনকিন্স ইনিশিয়ালাইজেশনটিকে আপনার বিকাশের পরিবেশের 'বুটস্ট্র্যাপ'-এর অংশ করে তোলেন। এর 'ম্যানুয়াল' দিকটি কাজ করে না
TheJediCowboy

13

আপনার যদি জেনকিনসের আরও 1 টি প্রকল্পের অ্যাক্সেসের প্রয়োজন হয় তবে আপনার প্রয়োজন হবে:
1. একটি গিথব ব্যবহারকারী অ্যাকাউন্টে সর্বজনীন কী
যুক্ত করুন 2. এই ব্যবহারকারীকে মালিক (সমস্ত প্রকল্প অ্যাক্সেস করতে) বা প্রতিটি প্রকল্পে সহযোগী হিসাবে যুক্ত করুন।

একটি সিস্টেম ব্যবহারকারীর জন্য অনেকগুলি পাবলিক কী কাজ করবে না কারণ গিটহাব প্রথম মিলিত ডিপ্লোয় কীটি সন্ধান করবে এবং "ERROR: ব্যবহারকারীর / অনুমতি / ব্যবহারকারী / repo1 এর অনুমতি অস্বীকার" এর মতো ত্রুটি ফিরিয়ে দেবে "

http://help.github.com/ssh-issues/


2
ডিপ্লয় কী ব্যবহারের উত্তরটি দুর্দান্ত কাজ করে যদি আপনার কাছে কেবল একটি একক সংগ্রহস্থল থাকে। আপনি যখন সিআই সার্ভারটি একাধিক রেপো জুড়ে প্রকল্পগুলি তৈরি করতে চান আপনি তত্ক্ষণাত বেশ কয়েকটি সেট (কী রেপোতে একটি জোড়া) পরিচালনা করার অবস্থানে রয়েছেন এবং এই উত্তরে তালিকাভুক্ত পদ্ধতিটি গ্রহণ করা আরও সহজ হয়ে যায়।
cclark

এই লোকটির গাইড ব্যাখ্যা করে যে কীভাবে এটি dep
জর্জি অর্পিনেল

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

6

জেনকিনস সিস্টেমে একটি ব্যবহারকারী জেনকিন্স তৈরি করে। জেনকিন্স ব্যবহারকারীর জন্য অবশ্যই ssh কী তৈরি করা উচিত। পদক্ষেপ এখানে:

sudo su jenkins -s /bin/bash
cd ~
mkdir .ssh // may already exist
cd .ssh
ssh-keygen

এখন আপনি জেনকিন্স ড্যাশবোর্ডে এসএসএইচ কী ব্যবহার করে জেনকিন্স শংসাপত্র তৈরি করতে পারেন শংসাপত্রগুলি যুক্ত করুন

এই বিকল্পটি নির্বাচন করুন

ব্যক্তিগত কী: জেনকিন্স মাস্টার থেকে master / .ssh


1

গিটল্যাব নিয়ে আমারও একই সমস্যা ছিল। দেখা যাচ্ছে যে আমি যে সকল ব্যবহারকারীদের ssh এর মাধ্যমে লগইন করার অনুমতিপ্রাপ্ত তা সীমাবদ্ধ করেছিলাম। এই GitHub ব্যবহারকারীদের প্রভাবিত করবে না, কিন্তু যদি মানুষ gitlab এর জন্য এখানে শেষ (এবং মত) বিষয়, তা নিশ্চিত আপনি যোগ gitকরতে AllowUsersসেটিং /etc/ssh/sshd_config:

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
AllowUsers batman git

0

আর একটি বিকল্প হ'ল গিটহাবের ব্যক্তিগত অ্যাক্সেস টোকেনগুলি ব্যবহার করা :

  • Https://github.com/settings/tokens/new এ যান
  • যোগ রেপো সুযোগ
  • জেনকিন্সে, একটি গিটহাব উত্স যুক্ত করুন
  • সংগ্রহস্থল HTTPS URL টি ব্যবহার করুন
  • গিট রেপোর এইচটিটিপিএস ইউআরএল যুক্ত করুন ( এসএসএইচ নয় , যেমন https://github.com/my-username/my-project.git))
  • শংসাপত্র যুক্ত করুন
    • দয়া করে: পাসওয়ার্ড সহ ব্যবহারকারীর নাম
    • ব্যবহারকারীর নাম: গিটহাব ব্যবহারকারীর নাম
    • পাসওয়ার্ড: গিটহাবে আপনি তৈরি ব্যক্তিগত অ্যাক্সেস টোকেন
    • আইডি: কিছু github-token-for-my-username

আমি জেনকিন্স ভারে এটি পরীক্ষা করেছি। ২.২২২.১ এবং জেনকিন্স গিটহাব প্লাগইন একটি বেসরকারী গিটহাব রেপোর সাথে 1.29.5।


-1

সার্জি_মো থেকে উত্তরের বিকল্প হ'ল জেনকিন্স সার্ভারে একাধিক এসএস কী তৈরি করা।

(যদিও সার্জি_মো'র উত্তরের প্রথম মন্তব্যকারী বলেছেন, এটি কোনও একক কী-পরিচালনা পরিচালনার চেয়ে বেশি বেদনাদায়ক হতে পারে))


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