শেল স্ক্রিপ্টগুলির উপরে শেফ / পুতুল কেন ব্যবহার করবেন?


81

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

আমি তারা আরও পাঠযোগ্য হয় সম্মত হবে। তবে, কেবল পঠনযোগ্য ছাড়াও শেল স্ক্রিপ্টগুলির চেয়ে অন্য কোনও সুবিধা আছে কি?

উত্তর:


56

একটি ডোমেন-নির্দিষ্ট ভাষা আপনার কোডের লেখার পরিমাণের মধ্যে একটি বড় পার্থক্য করে। উদাহরণস্বরূপ, আপনি তর্ক করতে পারেন যে এর মধ্যে খুব বেশি পার্থক্য নেই:

chmod 640 /my/file

এবং

file { "/my/file":
    mode => 640,
}

তবে এর মধ্যে অনেক পার্থক্য রয়েছে:

FILE=/my/file
chmod 640 $FILE
chown foo $FILE
chgrp bar $FILE
wget -O $FILE "http://my.puppet.server/dist/$FILE"
     # where the URL contains "Hello world"

এবং

file { "/my/file":
    mode => 640,
    owner => foo,
    group => bar,
    content => "Hello world",
}

উইজেট ব্যর্থ হলে কী হবে? আপনার স্ক্রিপ্ট কীভাবে এটি পরিচালনা করবে? এবং আপনার স্ক্রিপ্টে এর পরে যদি এমন কিছু থাকে যার জন্য contents ফাইলের সঠিক বিষয়বস্তু থাকা উচিত?

আপনি তর্ক করতে পারেন যে echo "Hello world" > $FILEস্ক্রিপ্টটি কেউ ঠিক রাখতে পারে , প্রথম উদাহরণে স্ক্রিপ্টটি ক্লায়েন্টের উপর চালানো আবশ্যক, যখন পুতুল সার্ভারে এই সমস্তগুলি সংকলন করে। সুতরাং আপনি যদি সামগ্রীটি পরিবর্তন করেন তবে আপনাকে কেবল এটি সার্ভারে পরিবর্তন করতে হবে এবং এটি যতটা সিস্টেমে আপনি এটি লাগাতে চান তার জন্য এটি পরিবর্তন করে। এবং পুতুল নির্ভরতা পরিচালনা করে এবং স্বয়ংক্রিয়ভাবে আপনার জন্য সমস্যা হস্তান্তর করে।

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


9
@ পল গিয়ার, এটির জন্য একটি ওভারসিম্প্লিফিকেশন যে কনফিগারেশন ম্যানেজমেন্ট সরঞ্জামগুলি দীর্ঘমেয়াদে যাওয়ার উপায়। উদাহরণস্বরূপ, এডাব্লুএস ব্যবহার করে শেল স্ক্রিপ্ট স্ক্র্যাচ থেকে সার্ভারটি তৈরি করতে পারে, কিছু পরীক্ষা চালাতে পারে এবং একবার আপনি নিশ্চিত হয়ে যান যে ডাব্লুএসের ইনস্ট্যাসগুলি ঠিক আছে, একটি চিত্র তৈরি করুন। তারপরে আপনি এই চিত্রটি আরও পরীক্ষার জন্য প্রাকদর্শন বা মঞ্চ পরিবেশের জন্য স্থাপন করতে পারেন, একবার আপনি নিজের উদ্দেশ্যটির জন্য চিত্রটি ভাল করে তোলেন, তারপরে আপনি উত্পাদনের দিকে ধাবিত হন। কনফিগারেশন পরিচালনার সরঞ্জামগুলি এই দৃশ্যে মোটেই সহায়তা করে না।
ডেরেক লিটজ

এখন আপনি যদি 100 টি ডেডিকেটেড সার্ভারগুলি পরিচালনা করতে চান যা লোকেরা প্রতিদিন ব্যবহার করছেন (এবং তারা যা করেন তার উপর আপনার নিয়ন্ত্রণ খুব কম থাকে), যেখানে কনফিগারেশন পরিচালনার সরঞ্জামগুলি ব্যবহার করা উচিত।
ডেরেক লিটজ

6
এটি খুব দৃinc়প্রত্যয়ী উদাহরণ নয়। আমি উইজেট দিয়ে শুরু করতে পারতাম এবং তারপরে আমি কোনও অদ্ভুত অবস্থায় শেষ করব না। ফাইলটি কি কোনও লেনদেনের মতো যা পদক্ষেপগুলির কোনওটিতে সফল না হলে আবার ফিরে যাবে?
পিএসকোকিক

33

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

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

আমি কেবলমাত্র বেশ কয়েকটি দৃষ্টান্ত পেয়েছি যেখানে আমরা কনফিগারেশন পরিচালনা স্থাপন করেছি এবং এটি আটকে গেছে। এটি সর্বদা ছিল যখন পুনরাবৃত্তিযোগ্য কনফিগারেশন সহ প্রচুর সংখ্যক সিস্টেম ছিল এবং কনফিগারযোগ্য কুকি-কাটার স্থাপনার সঞ্চালনের প্রয়োজন ছিল।


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

10
@Wwite "কখন আপনি বনাম বনাম" স্বয়ংক্রিয় করার সিদ্ধান্ত
নিবেন

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

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

2
@ এ বি বি না, এটি নিহিত নয়। আমি এমনকি শেল স্ক্রিপ্টগুলি উল্লেখ করি না, আমি একটি সাধারণ অনুশীলন হিসাবে অটোমেশন উল্লেখ করি। আপনি শেল স্ক্রিপ্টগুলির সাহায্যে জিনিসগুলিকে স্বয়ংক্রিয় করতে পারেন এবং ম্যানুয়ালি জিনিসগুলি না করে স্ক্রিপ্টিং বিমূর্ততা শিখতে পারেন যা আপনাকে কেবল সেই কাজটি করার সময়ই বাঁচায় না, এটি ভুলগুলি প্রতিরোধ করবে। এছাড়াও, আপনার পরবর্তী স্ক্রিপ্টটি শেষের চেয়ে কিছুটা ভাল লিখতে সক্ষম হওয়া উচিত। একটি ইতিবাচক তুষার বল ... তবে, আপনি যদি স্ক্রিপ্টগুলি লেখায় বিশেষজ্ঞ হন এবং আপনি এমন কোনও কিছু স্ক্রিপ্ট না করছেন যা আপনি আবার চালাবেন, এটি আপনাকে কোনওভাবেই আপনার সময় বাড়াতে শিখতে বা সহায়তা করে না।
ডেরেক লিটজ

23

আপনি নিজের প্রশ্নের উত্তর দিয়েছেন ...

অটোমেশনটি আরও স্কেলযোগ্য এবং আনুষ্ঠানিক হয়ে উঠছে । পুতুল এবং শেফকে আজকাল মান বিবেচিত করা হয় ( কাজের বিজ্ঞাপনগুলি দেখুন )।

কাবলেড-একসাথে শেল স্ক্রিপ্টগুলির নিজস্ব জায়গা রয়েছে তবে তারা ডিওওএসস আন্দোলনের প্রেক্ষাপটে স্কেলযোগ্য নয় । পাঠযোগ্যতা তারই একটি অংশ।


7
শেল স্ক্রিপ্টগুলি কি কোনওভাবে কম আনুষ্ঠানিক হয়? চাকরির বিজ্ঞাপনগুলিকে উদ্ধৃত করা কি যুক্তিটিকে বিশ্বাসযোগ্য করে তোলে? এবং ডিভোপস বেশ লজ্জাজনক, কারণ তিনি বিকাশকারী হিসাবে অপ্রত্যাশিত। লিঙ্কটি স্কেলাবিলিটি সম্পর্কে আসলে কিছুই বলে না। দাবী কি শেল স্ক্রিপ্টগুলি স্কেলযোগ্য নয়? আমি মনে করি পুতুল আকর্ষণীয়, তবে উত্তরের কারণগুলির জন্য অগত্যা নয়।
একিউম্যানাস

কাজের বিজ্ঞাপনগুলি নির্দিষ্ট দক্ষতার জন্য আসল বাজারকে প্রতিফলিত করে। হ্যাঁ, এর উদ্দেশ্যযুক্ত উদ্দেশ্যে কনফিগারেশন পরিচালনা ব্যবহার করা শেল স্ক্রিপ্টগুলির চেয়ে আরও বেশি মাপের, মজবুত এবং নথিতে সহজ। আমি অনেক পরিবেশে এসেছি এবং বেশিরভাগ স্ক্রিপ্টগুলি আমি দেখি এমনভাবে নির্মিত হয় না যে কেউ "উত্পাদন মানের" বলে মনে করে এবং ব্যতিক্রমগুলি পরিচালনা করতে সংগঠিত হয়। কেন তা বোঝার জন্য গৃহীত উত্তর দেখুন।
ew white

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

13

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

বাস্তব (প্রায়ই অগোচর) পাচক বা রাঁধুনি সুবিধার হয় idempotence । ওভারল্যাপিং স্বার্থের সাথে চালিত রেসিপিগুলির সংমিশ্রণ নির্বিশেষে কোনও সংস্থার রাজ্য সম্পর্কে নিশ্চিত হতে সক্ষম হওয়া শেল স্ক্রিপ্ট কনফিগারেশনের ক্ষেত্রে একটি বিশাল সুবিধা। আপনার যদি এখন কনফিগারেশনের জন্য শেল স্ক্রিপ্ট রয়েছে তবে নিজেকে জিজ্ঞাসা করুন যে এগুলির মধ্যে কতগুলি অনিচ্ছাকৃত / অনাকাঙ্ক্ষিত পরিণতি ছাড়াই একাধিকবার চালানো যেতে পারে?

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

মূল টুকরা:

  • Idempotence
  • নির্ভরতা পরিচালনার সহজতা (সংস্করণ)
  • মানকৃত সংস্থা (শিল্প পর্যায়ে গৃহীত)
  • সিস্টেম স্তরের বিবরণ থেকে সার্ভার কনফিগারেশন কার্যগুলি পৃথক করার বিমূর্ততা
  • সম্প্রদায়ের জ্ঞান লাভ করার ক্ষমতা (এটি উপরোক্ত সমস্ত নীতিমালা গ্রহণের গ্যারান্টিযুক্ত)

3
Ss এর সাথে আইডেম্পোটেন্স খুব কমই অসম্ভব। নির্ভরতা yum / apt ইত্যাদি দ্বারা ভালভাবে পরিচালিত হয় গ্রহণ গ্রহণ অপ্রাসঙ্গিক। সম্প্রদায়ের জ্ঞান এসএসের জন্য বিদ্যমান। তবে আমি স্বীকার করি যে একগুচ্ছ স্ক্রিপ্টগুলির অনুলিপি না করা এবং কেন্দ্রীয়ভাবে সিস্টেমগুলি কনফিগার করা উভয়ই কার্যকর। শুনেছি পুতুলের জন্য ক্লায়েন্ট-সাইড এজেন্ট দরকার।
একিউম্যানাস

10

আধুনিক কনফিগারেশন পরিচালনার সরঞ্জাম যেমন পুতুল এবং শেফ আপনাকে একটি কনফিগার করা সার্ভার অর্জনের জন্য প্রয়োজনীয় ক্রিয়াকলাপগুলি সম্পর্কে চিন্তাভাবনা করার পরিবর্তে কোনও সিস্টেমের অবস্থা নির্ধারণ করতে দেয় ।

উদাহরণস্বরূপ, আপনার chmod কমান্ড ধরে নিয়েছে যে ফাইলটি বিদ্যমান, ফাইলটির মালিক ব্যবহারকারী উপস্থিত রয়েছে, ডিরেক্টরিগুলি তৈরি হয়েছে, ইত্যাদি। আপনার লিপিটি অবশ্যই এই সমস্ত পূর্বশর্ত বিবেচনা করতে হবে।

রাজ্য-ভিত্তিক কনফিগারেশন পরিচালনার সরঞ্জামগুলি সহজ: আপনি কেবল যত্নবান হন যে ফাইলটির সঠিক অনুমতি রয়েছে। কীভাবে এটি অর্জিত হয় তা হল সরঞ্জামটির সমস্যা।


1
আসলে আমার chmodফাইলটি বিদ্যমান বলে ধরে নেয় না কারণ ফাইলটি স্ক্রিপ্ট দ্বারা তৈরি হয়েছিল বা অস্তিত্বের জন্য পরীক্ষা করা হয়েছিল।
একিউম্যানাস

9

সার্ভারগুলি যদি আপনার কাছে নিষ্পত্তিযোগ্য হয় বা আপনি একবারে কয়েকজনের চেয়ে বেশি দাঁড়ানোর কারণ হয়ে থাকেন তবে একটি পূর্ণ বিকাশযুক্ত সিএম সিস্টেম শেল স্ক্রিপ্টগুলির একটি সিরিজের চেয়ে আপনার প্রয়োজনগুলি আরও ভালভাবে পূরণ করবে।

যদি আপনার বিল্ডের প্রয়োজনীয়তাগুলি বিনয়ী হয়, (বা শৈল্পিকভাবে হ্যান্ড ক্র্যাফট জৈব ফ্রি-রেঞ্জ ফেয়ার-ট্রেড সার্ভারগুলি পছন্দ করতে চান), তবে এটি সহজ রাখুন।

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

এই বলে যে, আপনি সার্ভার ছাড়াই শেফ চালাতে পারেন (শেফ-একাকী), এবং আমি নিশ্চিত যে পুতুলের একটি অ্যানালগ রয়েছে, যেখানে আপনি এখনও কোনও কেন্দ্রীয় সার্ভার চালনা না করে অন্যের কুকবুক এবং রেসিপিগুলি লাভ করতে পারবেন।

আরেকটি সুবিধা হ'ল সম্প্রদায়: প্রচুর লোক রয়েছে (যার মধ্যে অনেকগুলি আপনার চেয়ে স্মার্ট এবং / বা আরও অভিজ্ঞ হবে)। ব্যক্তিগতভাবে আমি এটি ভালবাসি যখন অন্য কেউ আমার জন্য আমার কাজটি করে থাকে, প্রায়শই আমার চেয়ে বেশি বিস্তৃত হয়।


1

আমি একটি শেল স্ক্রিপ্ট-ভিত্তিক সার্ভার অটোমেশন কাঠামো তৈরি করেছি: https://github.com/myplaceonline/posixcube

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

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