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


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

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


78
2018-05-01 10:13


উত্স




উত্তর:


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

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",
}

উইজেট ব্যর্থ হলে কি হবে? কিভাবে আপনার স্ক্রিপ্ট যে হ্যান্ডেল হবে? এবং যদি আপনার স্ক্রিপ্টের পরে এমন কিছু থাকে তবে কী হবে সঠিক ফাইলের সাথে সেখানে $ FILE থাকতে হবে?

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

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


55
2018-05-01 11:14



@ পল গিয়ার, এটি একটি oversimplification বলে যে কনফিগারেশন ম্যানেজমেন্ট সরঞ্জাম দীর্ঘ রান যেতে উপায়। উদাহরণস্বরূপ, AWS ব্যবহার করে একটি শেল স্ক্রিপ্ট স্ক্র্যাচ থেকে সার্ভার তৈরি করতে পারে, কিছু পরীক্ষা চালাতে পারে এবং একবার আপনি নিশ্চিত হন যে AWS ইনস্ট্যান্স ঠিক আছে, একটি চিত্র তৈরি করুন। তারপরে আপনি এই ছবিটিকে পূর্বরূপ পরীক্ষা বা স্টেজিং পরিবেশের জন্য আরও পরীক্ষা করার জন্য স্থাপন করতে পারেন, একবার আপনি নিজের বৈধতার জন্য ছবিটি যাচাই করার পরে আপনার উত্পাদনের জন্য ভাল হয়, তারপরে আপনি উত্পাদনতে চাপ দেন। কনফিগারেশন ম্যানেজমেন্ট সরঞ্জাম এই দৃশ্যকল্প সব সময়ে সাহায্য করে না। - Derek Litz
এখন যদি আপনি 100 টি ডেডিকেটেড সার্ভার পরিচালনা করতে চান যা লোকেরা দৈনিক ব্যবহার করে (এবং সেগুলি ভুলভাবে বা না করে তার উপর আপনার সামান্য নিয়ন্ত্রণ থাকে) সেক্ষেত্রে কনফিগারেশন পরিচালনার সরঞ্জামগুলি ব্যবহার করা উচিত। - Derek Litz
এটি একটি খুব বিশ্বাসী উদাহরণ নয়। আমি wget সঙ্গে শুরু হতে পারে এবং তারপর আমি একটি অদ্ভুত রাষ্ট্র শেষ হবে না। কোনও লেনদেনের মতো ফাইলটি যদি কোনও পদক্ষেপ সফল না হয় তবে তা পিছিয়ে যাবে? - PSkocik


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

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

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


32
2018-05-01 14:58



পরিবেশ পরিচালনার খরচ এত বড় যে অটোমেশন পরিচালনা করা সত্যিই সস্তা। যদি এটি Git এ পরিচালিত পরিবর্তনগুলি স্ক্রিপ্টের জন্য সরল না হয় বা ssh মাল্টিপ্লেক্সারে জিনিসগুলিকে সেট করে তবে আমরা তা করি। আমার জন্য সবচেয়ে গুরুত্বপূর্ণ কি যে আমি সিস্টেমগুলির উপর নজর রাখি এবং সবকিছু প্রত্যাশিত হিসাবে যাচাই করা হয় তা যাচাই করি। যতক্ষণ আমি কিছু ভুল কনফিগার করার সময় সতর্ক থাকি, ততক্ষণ এটি কনফিগার করা যায় না তা এত গুরুত্বপূর্ণ নয়। - kenchilada
@ewwhite "আপনি যখন বনাম স্বয়ংক্রিয় স্বয়ংক্রিয়ভাবে সিদ্ধান্ত নেবেন না" xkcd.com/1205 - MikeyB
শেফ বা পুতটপের চেয়ে আরো আধুনিক সরঞ্জামগুলি যেমন কমপক্ষে কম স্থাপনা / ব্যবস্থাপনা ওভারহেড থাকে, তেমন কোন নির্ভরতা কম নয় (বিশেষত আনুষ্ঠানিক নয় এমন এজেন্ট)। এই সত্যিই গ্রহণ করার জন্য বার কম। - GomoX
@ewwhite আপনি যখন ব্যক্তিগত উৎপাদনশীলতার জন্য চান তখন স্বয়ংক্রিয় করুন। আপনি অটোমেটিক করে শিখেন, আপনি মুনাফিক কাজ করে শিখেন না। শেখার = উত্পাদনশীলতা বৃদ্ধি এবং পুনরাবৃত্তিমূলক উন্নতি। অটোমেশন আরও ইতিবাচক উত্পাদন এই সঙ্গে একত্রিত করে। এটি একটি নেতিবাচক এক পরিবর্তে একটি ইতিবাচক তুষারপাত। প্রযুক্তিগত অগ্রগতি বনাম প্রযুক্তিগত ঋণ। - Derek Litz
@ এ-বি-বি নং, এটি উল্লিখিত নয়। আমি এমনকি শেল স্ক্রিপ্ট উল্লেখ না, আমি একটি সাধারণ অভ্যাস হিসাবে অটোমেশন উল্লেখ। আপনি শেল স্ক্রিপ্টগুলি দিয়ে জিনিসগুলি স্বয়ংক্রিয়ভাবে চালাতে পারেন এবং জিনিসগুলি নিজে নিজে করার পরিবর্তে স্ক্রিপ্টিং বিমূর্ততা শিখতে পারেন যা আপনাকে সেই কাজটিকে আবার কাজ করার সময় সংরক্ষণ করবে না, এটি ভুলগুলি প্রতিরোধ করবে। এছাড়াও, শেষ প্রান্তে আপনার পরবর্তী স্ক্রিপ্টটিকে আরও ভালোভাবে লেখতে সক্ষম হওয়া উচিত। একটি ইতিবাচক তুষার বল ... যাইহোক, যদি আপনি স্ক্রিপ্ট লেখার একজন বিশেষজ্ঞ হন এবং আপনি কোনও স্ক্রিপ্টিং করেন না যা আপনি আবার চালাতে পারবেন তবে এটি আপনাকে কোনও সময় শিখতে বা সংরক্ষণ করতে সহায়তা করে না। - Derek Litz


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

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

Cobbled একসঙ্গে শেল স্ক্রিপ্ট তাদের জায়গা আছে, কিন্তু তারা না DevOps আন্দোলনের প্রসঙ্গে স্কেলেবল। পাঠযোগ্যতা যে অংশ।


23
2018-05-01 10:40



শেল স্ক্রিপ্ট কোনোভাবে কম formalized হয়? কাজের বিজ্ঞাপন উদ্ধৃত করে একটি যুক্তি convincing করা? এবং একটি devops একটি লজ্জা, কারণ তিনি একটি বিকাশকারী হিসাবে underexploited হয়। লিঙ্কটি মাপকাঠি সম্পর্কে সত্যিই কিছুই বলে না। শেল স্ক্রিপ্ট স্কেলেবল হয় না দাবি? আমি Puppet আকর্ষণীয় মনে হয়, কিন্তু উত্তর কারণ জন্য অপরিহার্য নয়। - A-B-B
কাজের বিজ্ঞাপন নির্দিষ্ট দক্ষতা জন্য বাস্তব বাজার প্রতিফলিত। হ্যাঁ, কনফিগারেশন পরিচালনার উদ্দেশ্যে এটির উদ্দেশ্যে আরও শুল্কযোগ্য, আরও শক্তিশালী এবং শেল স্ক্রিপ্টের চেয়ে নথির জন্য সহজ। আমি অনেক পরিবেশে আছি, এবং যেসব স্ক্রিপ্ট আমি দেখি তা এমনভাবে তৈরি করা হয় না যে কেউ "উত্পাদন গুণমান" এবং ব্যতিক্রমগুলি পরিচালনা করতে সংগঠিত হবে। কেন বোঝার জন্য গৃহীত উত্তর দেখুন। - ewwhite
"এবং একটি devops একটি লজ্জা, কারণ তিনি একটি বিকাশকারী হিসাবে underexploited হয়।" এই সহজভাবে সত্য নয়। DevOps একটি ডেভেলপমেন্ট বিশেষজ্ঞ, ওয়েব ডেভেলপমেন্টের মত। সফ্টওয়্যার উন্নয়ন নিদর্শন এবং অনুশীলন এখনও প্রযোজ্য। আপনি DevOps সম্পর্কে পড়া উচিত। - Chaim Eliyah


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

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

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

মূল টুকরা:

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

13
2018-05-03 19:11



অজ্ঞতা এসএস সঙ্গে খুব কমই অসম্ভব। নির্ভরতা Yum / apt দ্বারা ভাল পরিচালিত হয়, ইত্যাদি গ্রহণ গ্রহণ অপ্রাসঙ্গিক। কমিউনিটি জ্ঞান ss জন্য বিদ্যমান। তবে, আমি স্বীকার করি যে স্ক্রিপ্টগুলির একটি গুচ্ছের অনুলিপি করা এবং কেন্দ্রীয়ভাবে কনফিগারেশনগুলিও উভয়ই কার্যকর নয়। আমি পুতুল একটি ক্লায়েন্ট-পার্শ্ব এজেন্ট প্রয়োজন শুনতে। - A-B-B


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

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

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


10
2018-05-20 02:19



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


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

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

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

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

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


9
2018-05-01 22:32





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

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


1
2017-12-25 01:15