উত্তরীয় কীভাবে ভ্যাগ্রান্টে প্রভিশিং ব্যাশ শেল চালানো থেকে আলাদা?


39

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

শেল স্ক্রিপ্ট লিখতে চালিয়ে যাওয়ার জন্য উত্তর বনাম ব্যবহার শুরু করার জন্য কি যথেষ্ট পার্থক্য এবং ভাল কারণ রয়েছে?

উত্তর:


29

আমি কখনই উত্তরযোগ্য ব্যবহার করিনি তবে কয়েক সপ্তাহ থেকে আমি শেল স্ক্রিপের সাথে তুলনায় তুলনামূলকভাবে উত্তম কী হতে পারে তা জানার চেষ্টা করি – যা প্রমাণ করে, কমপক্ষে আমার ক্ষেত্রে, তারা চালিত বিজ্ঞাপন-প্রচারগুলি কার্যকর! অনেকগুলি ব্যর্থ চেষ্টার পরে - যা প্রমাণ করে যে কীভাবে তাদের ডকুমেন্টেশনগুলির মধ্যে একটির সবচেয়ে সুস্পষ্ট প্রশ্নের উত্তর দিতে ব্যর্থ হয়েছিল – আমি মনে করি অবশেষে এটি পেয়েছি:

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

আমার উপসংহারটি হ'ল শেল স্ক্রিপ্টিংয়ের উপরে, জবাবদিহিতভাবে মূলত 1. প্রস্তাবিত হয় যে কোনও সিস্টেম একটি কাঙ্ক্ষিত রাষ্ট্রের সাথে একমত হয়েছে কিনা তা পরীক্ষা করে নেওয়ার সম্ভাবনা, ২. আনসিবল টাওয়ারের সাথে সংহত করার ক্ষমতা, যা একটি অর্থ প্রদানের ব্যবস্থা যা মনিটরিং সক্ষমতা অন্তর্ভুক্ত বলে মনে হয়। কিছু গুরুত্বপূর্ণ ক্ষেত্রে যেমন অপরিবর্তনীয় সার্ভার প্যাটার্নটি প্রয়োগ করার সময়, পয়েন্ট 1 সম্ভবত খুব কার্যকর নয়, সুতরাং তালিকাটি বরং পাতলা।

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

তবে এটি কেবলমাত্র প্রমাণ করে যে ভূমিকা উপকরণ কতটা খারাপ!

দ্রুত শুরু হওয়া ভিডিও:

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

1. উত্তর সহজ:

1.1 মানব পাঠযোগ্য অটোমেশন - নির্দিষ্টকরণগুলি প্রযুক্তিগত নথি, কীভাবে পারে

  name: upgrade all packages
  yum:
    name: '*'
    state: latest

শেল-স্ক্রিপ্টে পাওয়া সংশ্লিষ্ট ইয়ম অনুরোধের চেয়ে পড়া সহজ ? অধিকন্তু, অ্যাপলস্ক্রিপ্টের সাথে যোগাযোগ করা যে কেউ "মানব পাঠযোগ্য অটোমেশন" পড়লে হাসতে হাসতে মারা যায় dies

১.২ কোনও বিশেষ কোডিং দক্ষতার প্রয়োজন নেই - আনুষ্ঠানিক স্পেসিফিকেশন না লিখলে কোডিং কী? তাদের শর্তসাপেক্ষ, ভেরিয়েবল রয়েছে তাই, এটি কোডিং নয় কীভাবে? এবং কেন আমি এমন কিছু কেন দরকার যা আমি প্রোগ্রাম করতে পারি না, এটি এতক্ষণে জটিল নয়? উক্তিটি সুখে ভুল!

1.3 কার্য সম্পাদনে কার্যকর - ভাল, সম্ভবত কিছু কোডগল্ফ আফিকিয়ানাডো এমন ভাষা সম্পর্কে অবগত আছেন যা ডিসঅর্ডারে কাজগুলি সম্পাদন করে, তবে কার্যকরভাবে কার্য সম্পাদন করা ব্যতিক্রমী বলে মনে হয়।

1.4 দ্রুত উত্পাদনশীল হন - দক্ষ শেল প্রোগ্রামারগুলি এখন উত্পাদনশীল। এই পাল্টা-যুক্তিটি প্রাথমিক যুক্তির মতো গুরুতর।

2. উত্তরযোগ্য শক্তিশালী

নিদর্শনগুলি বিক্রয় করার জন্য একটি জনপ্রিয় বিক্রয়কৌশল কৌশল হ'ল মানুষকে বিশ্বাস করতে বোকা বানাতে হবে যে তারা এই নিদর্শনগুলির "শক্তি" অর্জন করবে। গাড়ি বা আইসোটোনিক পানীয়ের বিজ্ঞাপনের ইতিহাসের উদাহরণগুলির একটি বিশ্বাসযোগ্য তালিকা সরবরাহ করা উচিত।

এখানে জবাবদিহি "অ্যাপ ডিপ্লোয়মেন্ট" করতে পারে - তবে শেল স্ক্রিপ্ট অবশ্যই "কনফিগারেশন ম্যানেজমেন্ট" করতে পারে তবে এটি সরঞ্জামটির উদ্দেশ্যটির একটি বিবৃতি মাত্র কোনও বৈশিষ্ট্য নয়, এবং "ওয়ার্কফ্লো অর্কেস্ট্রেশন" যা কিছুটা দৃষ্টিনন্দন দেখাচ্ছে তবে এর উদাহরণ নেই goes GNU সমান্তরাল যা করতে পারে তার বাইরে ।

৩.আজিবল হ'ল এজেন্টলেস

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

ভিডিওটির বাকি অংশ

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

এলোমেলো ডকুমেন্টেশন পদক্ষেপ 1: ইসি 2 এর সাথে সংহতকরণ

ইসি 2 হ'ল আমাজন থেকে কম্পিউটিং পরিষেবা, এটির সাথে ইন্টারঅ্যাক্ট করার জন্য কিছু উত্তরযোগ্য মডিউল সমর্থন করে । (অন্যান্য জনপ্রিয় ক্লাউড কম্পিউটিং সরবরাহকারীও সরবরাহ করা হয়েছে):

# demo_setup.yml

- hosts: localhost
  connection: local
  gather_facts: False

  tasks:

    - name: Provision a set of instances
      ec2:
         key_name: my_key
         group: test
         instance_type: t2.micro
         image: "{{ ami_id }}"
         wait: true
         exact_count: 5
         count_tag:
            Name: Demo
         instance_tags:
            Name: Demo
      register: ec2

সংশ্লিষ্ট শেল-লিপিটি JSON দ্বারা প্রতিস্থাপিত YAML এর সাথে মূলত অভিন্ন হবে:

provision_a_set_of_instances()
{
  aws --output=text ec2 run-instances --image-id …   
}

বা JSON সংস্করণ

provision_a_set_of_instances()
{
  aws --output=text ec2 run-instances --cli-input-json "$(provision_a_set_of_instances__json)"  
}

provision_a_set_of_instances__json()
{
  cat <<EOF
{
    "ImageId": … 
}
EOF
}

উভয় সংস্করণই মূলত অভিন্ন, পে-লোডের বেশিরভাগ অংশই হ'ল একটি ওয়াইএএমএল বা জেএসএন কাঠামোর সূচনা মানকে গণনা করা।

এলোমেলো ডকুমেন্টেশন পদক্ষেপ 2: অবিচ্ছিন্ন ডেলিভারি এবং রোলিং আপগ্রেডগুলি

এই গাইডের বৃহত্তম অংশটি কোনও আকর্ষণীয় বৈশিষ্ট্য প্রদর্শন করে না: এটি ভেরিয়েবলগুলি প্রবর্তন করে (আইআইআরসি, শেল স্ক্রিপ্টগুলিতেও ভেরিয়েবল রয়েছে) !, এবং একটি উত্তরীয় মডিউল মাইএসকিএল হ্যান্ডেল করে, যাতে অনুসন্ধানের পরিবর্তে যদি "আমি কীভাবে একটি mysql ব্যবহারকারী তৈরি করব? এক্সওয়াই-তে সুবিধাগুলি সহ "এবং এরকম কিছু দিয়ে শেষ

# Create Application DB User
mysql --host "${mysql_host}" --user "${mysql_user}" --password "${mysql_password}" "${mysql_table}" <<EOF
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
EOF

আপনি অনুসন্ধান করুন "আমি কীভাবে উত্তরদায় এক্সওয়াইয়ের উপর সুবিধাগুলি সহ একটি মাইএসকিএল ব্যবহারকারী তৈরি করব " এবং এর সাথে শেষ হবে

- name: Create Application DB User
  mysql_user: name={{ dbuser }} password={{ upassword }}
              priv=*.*:ALL host='%' state=present

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

{% for host in groups['monitoring'] %}
-A INPUT -p tcp -s {{ hostvars[host].ansible_default_ipv4.address }} --dport 5666 -j ACCEPT
{% endfor %}

আমি যখন এটি দেখি, তখন সত্যিই আমার আরামের অঞ্চলে থাকি। ঘোষিত ভাষার জন্য এই জাতীয় সরল মেটা-প্রোগ্রামিং হ'ল বিএসডি মেকফিলসের মতো একই তাত্ত্বিক দৃষ্টান্ত! যা আমি ব্যাপকভাবে প্রোগ্রাম করেছিলাম বলে এই সংক্ষিপ্তসারটি আমাদের দেখায় যে ওয়াইএএমএল ফাইলের সাথে কাজ করার প্রতিশ্রুতি ভঙ্গ হয়েছে (সুতরাং আমি আমার প্লেবুকগুলি কোনও ওয়াইএএমএল পার্সারের মাধ্যমে চালাতে পারি না, যেমন )। এটি আমাদের দেখায় যে উত্তরীয়কে অবশ্যই মূল্যায়নের ক্রমের সূক্ষ্ম শিল্প নিয়ে আলোচনা করতে হবে: আমাদের সিদ্ধান্ত নিতে হবে ভেরিয়েবলগুলি ভাষার "ঘোষণামূলক অংশ" বা ভাষার "অপরিহার্য" মেটা অংশে প্রসারিত করা হবে কিনা। এখানে শেল প্রোগ্রামিং সহজ, স্পষ্ট eval বা বাহ্যিক-স্ক্রিপ্ট সোর্সিং বাদে কোনও মেটা-প্রোগ্রামিং নেই । কল্পিত সমতুল্য শেল সংক্ষিপ্তসার হবে

enumerate_group 'monitoring' | {
  while read host; do
    …
  done
}

উত্তরীয় বৈকল্পিকের তুলনায় যার জটিলতা সম্ভবত সহনীয়: এটি কেবল ভাষা থেকে সরল, নিয়মিত, বিরক্তিকর নির্মাণগুলি ব্যবহার করে।

এলোমেলো ডকুমেন্টেশন পদক্ষেপ 3: টেস্টিং কৌশল

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

  1. উপলভ্য মডিউলগুলি দ্বারা সহজেই প্রয়োগ করা কয়েকটি মুঠো স্ট্যান্ডার্ড পরিস্থিতি বাদে, আমি নিজে পরীক্ষাটি প্রয়োগকারী বিটগুলি খাওয়াতে হবে, যা সম্ভবত কিছু শেল কমান্ড জড়িত থাকবে।

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

উদ্বেগহীন উদ্বেগ: রক্ষণাবেক্ষণযোগ্যতা

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

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

কনফিগারেশন পদক্ষেপের আদর্শ

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


এটি একটি ম্যানুয়াল মত মনে হচ্ছে ... চিত্তাকর্ষক!
Pierre.Vriens

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

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

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

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

22

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

যদি দলটি শেল দিয়ে উত্তরযোগ্য অফারগুলি অর্জন করতে পারে:

  1. ঘোষিত, আদর্শবানী কনফিগারেশন পরিচালনা ent
  2. শিল্প জনপ্রিয় পরিষেবার জন্য পুনরায় ব্যবহারযোগ্য স্নিপেটগুলিতে অ্যাক্সেস (অর্থাত্ প্লেবুক)।
  3. পুনরায় চেষ্টা, রোলিং যুক্তি ইত্যাদির সাহায্যে দূরবর্তী বাস্তবায়নের নির্ভরযোগ্য ব্যবস্থাপনা management

তারপরে তারা সম্ভবত যা জানে তার সাথে থাকতে পারে।

সর্বোপরি, আপনি বাসে "প্রহরী" প্রয়োগ করতে পারেন। বিভিন্ন সার্ভার কনফিগারেশন টাস্কগুলি সমাধান করার জন্য আপনি সেখানে প্রচুর BASH বিদ্যমান কাজ খুঁজে পেতে পারেন (মূলত কোনও ডকফেরফিলের মধ্যে 90% বাশ ইনস্টলেশন কোড রয়েছে)। সেই সমস্ত সরঞ্জামগুলিতে আপনার সম্পূর্ণ বিদ্যমান সমাধানটি পোর্ট না করেই আপনি জবাবদিহী / সল্ট / শেফ-জিরো আপনাকে যা সরবরাহ করেন তার খুব কাছে যেতে পারেন।

এটি এনআইএইচ (এখানে উদ্ভাবিত নয়) প্রবণতাগুলির মধ্যে একটি ভারসাম্যপূর্ণ কাজ এবং আরও দৃust় সমাধানের পক্ষে ভাল, প্রতিষ্ঠিত স্ক্রিপ্টগুলি ছুঁড়ে দেওয়া।

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


4
আপনার উত্তর পছন্দ হয়েছে; আমি আরও উল্লেখ করব যে, যদি বাশ টিম আদর্শিক শক্তি, কার্যকরকরণ পরিচালন এবং পুনরায় ব্যবহারের জন্য চলেছে, মূলত তাদের নিজস্ব কনফিগারেশন পরিচালনার কাঠামো লিখছে, এতে একটি ব্যয় জড়িত রয়েছে, এবং আমরা সবাই জানি যে গৃহ-প্রকল্পের জন্য সত্যই বাজে হতে পারে ।
ᴳᵁᴵᴰᴼ

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

13

উপরের উত্তরটি এর একটি অংশকে কভার করে তবে একটি গুরুত্বপূর্ণ উপাদানকে মিস করে: কনভারজেন্ট ডিজাইন। আমি এই সম্পর্কে কিছুক্ষণ আগে https://coderanger.net/thinking/ এ শেফের প্রসঙ্গে কিছু শব্দ লিখেছিলাম তবে সংক্ষিপ্ত সংস্করণটি হ'ল বাশ স্ক্রিপ্টটি নির্দেশের একটি সেট, যখন একটি উত্তরীয় প্লেবুক (বা শেফ রেসিপি, লবণ) রাজ্য, ইত্যাদি) কাঙ্ক্ষিত রাষ্ট্রের বর্ণনা। সেখানে যাওয়ার জন্য আপনি যে পদক্ষেপ নিতে চান তার চেয়ে আপনি যে রাষ্ট্রটি চান তা নথিভুক্ত করে আপনি আরও অনেক শুরুর রাজ্যগুলির সাথে লড়াই করতে পারেন। এটি অনেক আগে সিএফইঙ্গিনে বর্ণিত প্রতিশ্রুতি তত্ত্বের কেন্দ্রস্থল ছিল এবং আমরা (কনফিগারেশন পরিচালনার সরঞ্জামগুলি) যে নকশাটি করেছি তার সবকটিই অনুলিপি করা হচ্ছে।

tl; ডাঃ উত্তরযোগ্য কোডটি যা চায় তা বলে, বাশ কোড বলে যে কোনও জিনিস কীভাবে করা যায়।


2
আপনি যদি বই বা নিবন্ধগুলির মতো "প্রতিশ্রুতি তত্ত্ব" এর সাথে কিছু উল্লেখ করতে পারেন, বা অন্য কোনও মূল্যবান উপাদান যদি এটি সম্পর্কে জানতে চান তবে?
ইভজিনি

1
আমি যখন বলেছিলাম যে আপনি আদর্শবান্ধব বাশ কোড লিখতে পারেন (যা কোনও বিন্দুতে শুরু হতে পারে, একাধিকবার চালানো যায় এবং কাঙ্ক্ষিত স্থানে রূপান্তর করতে পারে) আমি আসলে এটিই নির্দেশ করেছিলাম। তবে আপনার উত্তর এটি আরও পরিষ্কার করে দিয়েছে।
আসফ লাভি

হ্যাঁ, আইডেম্পোটেন্সটি কনভার্জেন্ট সিস্টেমের একটি গুরুত্বপূর্ণ সম্পত্তি তবে দু'টি সবসময়ই সরাসরি যুক্ত থাকে না :) যেমন প্রতিশ্রুতি তত্ত্বের বিষয়বস্তু হিসাবে, মার্ক বার্গেসের (সিএফইঙ্গিনের স্রষ্টা) কয়েকটি বই রয়েছে, আমি লিঙ্কগুলি সন্ধান করতে পারি যখন আমি ফিরে এসেছি ল্যাপটপ।
কোডরেঞ্জার 6'17


3

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


এই অর্থে কী এসএসএসের চারপাশে জবাবদিহি করা যায় না?
ইভজেনি

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

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

1

এটি 2019 এবং আমি একটি উত্তরীয় শিখন বক্ররেখাতে কিছু দিন অতিবাহিত করেছি এবং এটিই পরম সত্য: উত্তরসূরি ঝামেলার উপযুক্ত নয়।

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

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

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

ডকার ব্যবহার করুন। যে কোনও কিছুর চেয়ে বেশি পছন্দ। ডকার বিস্ময়করভাবে সহজ এবং শক্তিশালী।

তবে কি যদি আপনার একেবারে প্রাক-বিদ্যমান টিনের উপর বিধান রাখা আবশ্যক? আসল বিকল্পগুলি কী কী?

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

ব্যাশ স্ক্রিপ্টটি এসসিপি করুন এবং নিজেকে ঝামেলা বাঁচান।


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

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

মেঘের পরিবেশের জন্য বিভিন্ন ধরণের বড় উদ্যোগের জন্য অন্যান্য পন্থা রয়েছে যা শিখনের বক্ররেখাটিকে ন্যায়সঙ্গত করতে পারে। জবাবদিহি কি করে তা আমি বুঝতে পারি। আমি শুধু এর কুলুঙ্গি দেখতে পাচ্ছি না।
রিচার্ড

কুলুঙ্গি একাধিক মেশিনের জন্য অটোমেশন কাঠামো ব্যবহার করা সহজ। লিনাক্সের মতো এটি উইন্ডোজের পক্ষে তত দুর্দান্ত নয়। এমএসডোস এবং নেটওয়্যারগুলির জন্যও এটি দুর্দান্ত নয়। এটি 2019, উইন্ডোজ সার্ভারগুলি এই দিনগুলিতে ক্ষুদ্র অপ্রয়োজনীয় কুলুঙ্গি।
dyasny
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.