আইটি ইনফ্রাস্ট্রাকচার অটোমেশনের জন্য পুতুল মডিউলগুলি কীভাবে ব্যবহার করবেন?



একটি হাতের পুতুল টিউটোরিয়াল যা একটি পুতুল মডিউল লেখার বিষয়ে এবং কোনও সংস্থার আইটি অবকাঠামো স্বয়ংক্রিয় করতে এবং বজায় রাখার জন্য ম্যানিফেস্ট ব্যবহার করার বিষয়ে কথা বলে।

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

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





এই ব্লগটি নিম্নলিখিত বিষয়গুলি কভার করবে:

পুতুল প্রোগ্রামিং এর ভূমিকা

পুতুল কনফিগারেশন পরিচালনার জন্য বহুল ব্যবহৃত ডিভোপস সরঞ্জামগুলির মধ্যে একটি জনপ্রিয় used এটি আনতে ব্যবহৃত হয় ধারাবাহিকতা অবকাঠামোতে। পুতুল পরিকাঠামোকে কোড হিসাবে সংজ্ঞায়িত করতে পারে, একাধিক সার্ভার পরিচালনা করতে পারে এবং সিস্টেম কনফিগারেশন প্রয়োগ করতে পারে, ফলে পরিকাঠামো পরিচালনার প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে সহায়তা করতে পারে।



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

ডেমোটি চালিয়ে যাওয়ার আগে আসুন পুতুল প্রোগ্রামিংয়ের কয়েকটি মূল দিকটি দেখি।

r প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহারকারী সংস্থাগুলি

পুতুল প্রোগ্রামিং এর মূল শর্তাদি

উদ্ভাসিত

একটি পুতুল প্রোগ্রাম বলা হয় প্রকাশ এবং একটি ফাইলের নাম আছে .pp এক্সটেনশন। পুতুলের ডিফল্ট প্রধান ম্যানিফেস্ট /etc/puppet/manifests/site.pp । (এটি সংজ্ঞায়িত করেবিশ্বব্যাপী সিস্টেম কনফিগারেশন, যেমন এলডিএপি কনফিগারেশন, ডিএনএস সার্ভার বা অন্যান্য কনফিগারেশন যা প্রতিটি নোডে প্রযোজ্য)।



ক্লাস

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

রিসোর্স

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

পুতুল মডিউল

মূল বাদেsite.ppপ্রকাশ,এটি উদ্ভাসিত স্টোরভিতরে মডিউল

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

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

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

পুতুল প্রোগ্রাম কর্মপ্রবাহ

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

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

প্রদর্শন: অ্যাপাচি ও মাইএসকিউএল ইনস্টলেশন স্বয়ংক্রিয়করণ

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

শুরুতে, নিশ্চিত করুন যে আপনার কাছে একটি পুতুল অবকাঠামো প্রস্তুত রয়েছে যা একটি পুতুল মাস্টার সার্ভার এবং 2 পুতুল এজেন্টকে অন্তর্ভুক্ত করবে।

  • পুতুল মাস্টার: উবুন্টু 18.04
  • এজেন্ট 1: উবুন্টু 18.04
  • এজেন্ট 2:CentOS7

আমরা এই হ্যান্ড-অনে কী অর্জন করব তার একটি রূপরেখা এখানে দেওয়া হয়েছে:


সুতরাং আসুন শুরু করা যাক হাত দিয়ে:

স্ক্র্যাচ থেকে একটি মডিউল তৈরি করা হচ্ছে

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

  • পুতুল মাস্টার থেকে, পুতুলের মডিউল ডিরেক্টরিতে নেভিগেট করুন এবং অ্যাপাচি ডিরেক্টরিটি তৈরি করুন:
    সিডি / ইত্যাদি / পুতুল / মডিউলগুলি sudo mkdir অ্যাপাচি
  • অ্যাপাচি ডিরেক্টরিটির ভিতরে থেকে সাব-ডাইরেক্টরিগুলি তৈরি করুন: প্রকাশ করে, টেম্পলেটগুলি, ফাইলগুলি এবং উদাহরণগুলি।
    সিডি অ্যাপাচি সুডো এমকেডির {প্রকাশ করে, টেম্পলেটগুলি, ফাইলগুলি, উদাহরণগুলি}
  • ম্যানিফেস্ট ডিরেক্টরিতে নেভিগেট করুন:
    সিডি প্রকাশ
  • এখান থেকে, আমরা কোডের সেই ধারাটির লক্ষ্যগুলির ভিত্তিতে মডিউলটিকে ক্লাসে পৃথক করব।

init.pp -> অ্যাপাচি প্যাকেজটি ডাউনলোড করতে

params.pp -> যে কোনও ভেরিয়েবল এবং পরামিতি সংজ্ঞায়িত করতে

config.pp -> অ্যাপাচি পরিষেবার জন্য কোনও কনফিগারেশন ফাইল পরিচালনা করতে।

vhosts.pp -> ভার্চুয়াল হোস্ট সংজ্ঞায়িত করতে।

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

পদক্ষেপ 1: অ্যাপাচি প্যাকেজ ডাউনলোড করা

Init.pp ক্লাস তৈরি করুন

এখন আমরা একটি তৈরি করবinit.ppঅ্যাপাচি প্যাকেজ ধরে রাখার জন্য ম্যানিফেস্ট ডিরেক্টরিতে ফাইল file
যেহেতু আমাদের কাছে 2 টি আলাদা ওএস (উবুন্টু এবং সেন্টোস 7) রয়েছে যা অ্যাপাচি-র জন্য বিভিন্ন প্যাকেজের নাম ব্যবহার করে, আমাদের একটি ভেরিয়েবল ব্যবহার করতে হবে$ অপচেনাম


শ্রেণি অ্যাপাচি {প্যাকেজ {'অ্যাপাচি': নাম => $ অ্যাপাচেনাম, নিশ্চিত করুন>> উপস্থিত,}}

প্যাকেজ সংস্থান একটি প্যাকেজ পরিচালনার জন্য অনুমতি দেয়। এটি প্যাকেজ উপস্থিত রয়েছে তা যোগ করতে, অপসারণ করতে বা নিশ্চিত করতে ব্যবহৃত হয়।

বেশিরভাগ ক্ষেত্রে, নাম সংস্থানঅ্যাপাচি, উপরে) প্যাকেজ পরিচালিত হওয়ার নাম হওয়া উচিত। বিভিন্ন নামকরণের সম্মেলনের কারণে,আমরা প্যাকেজের আসল নাম কল করিসাথে নাম রেফারেন্স তাই নাম , এখনও-অপরিবর্তিত ভেরিয়েবলের জন্য কল করে$ অপচেনাম

নিশ্চিত করা রেফারেন্স নিশ্চিত করে যে প্যাকেজটিউপস্থিত

Params.pp ফাইল তৈরি করুন

দ্যparams.ppফাইল প্রয়োজনীয় ভেরিয়েবলগুলি সংজ্ঞায়িত করবে। যদিও আমরা এই ভেরিয়েবলগুলি এর মধ্যে সংজ্ঞায়িত করতে পারিinit.ppফাইল, যেহেতু আরও ভেরিয়েবলগুলি রিসোর্স টাইপের বাইরে নিজেই ব্যবহার করতে হবে, এ ব্যবহার করেparams.ppফাইলটি ভেরিয়েবলগুলিকে সংজ্ঞায়িত করার অনুমতি দেয়যদিবিবৃতি এবং একাধিক ক্লাস জুড়ে ব্যবহৃত।

একটা তৈরি করparams.ppফাইল এবং নিম্নলিখিত কোড।

শ্রেণি অ্যাপাচি :: প্যারামস {if $ :: fফ্যামিলি == 'রেডহ্যাট' {$ অ্যাপাচেনাম = 'httpd'} এলসিফ $ :: ওসফামিলি == 'দেবিয়ান' $ $ অ্যাপাচেনাম = 'অ্যাপাচি 2'} অন্য {ব্যর্থ ('এটি নয় একটি সমর্থিত ডিস্ট্রো। ')}

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

অবশেষে সংজ্ঞায়িত পরামিতিগুলির সাথে, আমাদের কল করতে হবে params.pp ফাইল এবং পরামিতি মধ্যেinit.pp। এটি করার জন্য, আমাদের ক্লাসের নামের পরে প্যারামিটারগুলি যুক্ত করা দরকার, তবে কোঁকড়া বন্ধনী খোলার আগে({)।

তাহলেinit.ppযা আমরা আগে তৈরি করেছি এর কিছু দেখতে হবে:

শ্রেণি অ্যাপাচি ($ অ্যাপাচেনাম = $ :: অ্যাপাচি :: প্যারামস: অ্যাপাচেনাম,) উত্তরাধিকারসূত্রে :: অ্যাপাচি :: প্যারামস {প্যাকেজ {'অ্যাপাচি': নাম => $ অ্যাপাচেনাম, নিশ্চিত => উপস্থিত,}}

মান স্ট্রিং $ :: অ্যাপাচি :: প্যারামস :: মান পুতুলকে মান থেকে টানতে বলে অ্যাপাচি মডিউল, প্যারাম ক্লাস, প্যারামিটারের নাম অনুসারে। খণ্ড উত্তরাধিকার সূত্রে :: অ্যাপাচি :: প্যারাম জন্য করতে পারবেনinit.ppএই মান উত্তরাধিকারী।

পদক্ষেপ 2: কনফিগারেশন ফাইল পরিচালনা করুন

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

আপনি এই ডেমোটির শেষে নীচের নির্ভরতা ফাইলগুলি সন্ধান করতে পারেন:httpd.conf(লাল টুপি),apache2.conf(দেবিয়ান)

  • এর সামগ্রীটি অনুলিপি করুন httpd.conf এবংapache2.confপৃথক ফাইল এবং সেভ করুন নথি পত্র ডিরেক্টরিat / ইত্যাদি / পুতুলতা / কোড / পরিবেশ / উত্পাদন / মডিউল / অ্যাপাচি / ফাইল
  • ফাইল দুটি সম্পাদনা করুন অক্ষম জিবন্ত রাখ. আপনার লাইন যুক্ত করতে হবে কীপলাইভ বন্ধ মধ্যেhttpd.confফাইল। আপনি যদি এই সেটিংটি পরিবর্তন করতে না চান তবে আমাদের প্রত্যেকের শীর্ষে একটি মন্তব্য যুক্ত করা উচিতফাইল:
# এই ফাইলটি পুতুল দ্বারা পরিচালিত হয়

এই ফাইলগুলিতে যুক্ত করুনinit.ppফাইল, সুতরাং পুতুল এই ফাইলগুলির মাস্টার সার্ভার এবং এজেন্ট নোড উভয়ই জানতে পারবে। এটি করার জন্য, আমরা এটি ব্যবহার করি ফাইল সংস্থান

ফাইল configuration 'কনফিগারেশন-ফাইল': পথ => $ কনফিল করুন, নিশ্চিত করুন>> ফাইল, উত্স => s কনফ্রাস্ট,}

আমাদের দুটি পৃথক স্থানে কনফিগারেশন ফাইল থাকার কারণে, আমরা উত্সটিকে জেনেরিক নাম দিই কনফিগারেশন ফাইল ফাইল সহ পথ একটি পরামিতি হিসাবে সংজ্ঞায়িতপথগুণ

নিশ্চিত করা নিশ্চিত করে যে এটি একটি ফাইল।

উৎস উপরের ফাইলগুলির পুতুল মাস্টারের অবস্থান সরবরাহ করে।

খোলাparams.ppফাইল।

আমরা সংজ্ঞায়িত ff কনফিল এবং s গোপনীয়তামধ্যে পরিবর্তনশীলযদিবিবৃতি:

if $ :: fফ্যামিলি == 'রেডহ্যাট' {... ile কনফিলে = '/etc/httpd/conf/httpd.conf' ource কনফেসোর্স = 'পুতুল: ///modules/apache/httpd.conf' ls এলসিফ $: : ওসফ্যামিলি == 'দেবিয়ান' {... ff কনফিল = '/etc/apache2/apache2.conf' $ কনফারসোর্স = 'পুতুল: ///modmodules/apache/apache2.conf'} অন্য {...

আমাদের শুরুতে প্যারামিটার যুক্ত করতে হবেঅ্যাপাচিক্লাস ঘোষণাinit.ppপূর্ববর্তী উদাহরণের মতো ফাইল।

যখন কনফিগারেশন ফাইল পরিবর্তন হয়, অ্যাপাচি পুনরায় আরম্ভ করা প্রয়োজন। এটি স্বয়ংক্রিয় করতে, আমরা পরিষেবা সংস্থান ব্যবহার করতে পারিসঙ্গে মিশ্রিত জ্ঞাপন করা বৈশিষ্ট্য, যা যখনই কনফিগারেশন ফাইল পরিবর্তন করা হয় তখন চালানো সংস্থানটিকে কল করবে:

ফাইল {'কনফিগারেশন-ফাইল': পথ => $ কনফিল করুন, নিশ্চিত করুন => ফাইল, উত্স => s কনফ্রাস্ট, নোটিফ করুন => পরিষেবা ['অ্যাপাচি-পরিষেবা'],} পরিষেবা {'অ্যাপাচি-পরিষেবা': নাম => apachename, hasrestart => সত্য,

পরিষেবা রিসোর্স ইতিমধ্যে তৈরি পরামিতি ব্যবহার করে যা রেড হ্যাট এবং ডেবিয়ান সিস্টেমে অ্যাপাচি নামটি সংজ্ঞায়িত করে।
hasrestart অ্যাট্রিবিউটটি সংজ্ঞায়িত পরিষেবাটি পুনরায় আরম্ভ করার জন্য ব্যবহৃত হয়।

বাইনারি কে জাভায় দশমিক রূপান্তর করা

পদক্ষেপ 3: ভার্চুয়াল হোস্ট ফাইলগুলি তৈরি করুন

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

  • মধ্যে থেকেঅ্যাপাচি / প্রকাশ /ডিরেক্টরি, তৈরি এবং খুলুনvhosts.ppফাইল। এর কঙ্কাল যুক্ত করুনযদিবিবৃতি:

শ্রেণি অ্যাপাচি :: vhosts {if $ :: osfamily == 'রেডহ্যাট' {ls এলসিফ $ :: ওসফ্যামিলি == 'দেবিয়ান' {} অন্য {}}

আমাদের CentOS 7 সার্ভারে ভার্চুয়াল হোস্ট ফাইলটির অবস্থান/etc/httpd/conf.d/vhost.conf আপনার পুতুল মাস্টারে টেমপ্লেট হিসাবে ফাইলটি তৈরি করতে হবে। উবুন্টু ভার্চুয়াল হোস্ট ফাইলের জন্য একই করুন, যা এখানে অবস্থিত/etc/apache2/sites- উপলব্ধ /example.com.conf, প্রতিস্থাপনউদাহরণ.কমসার্ভারের FQDN সহ।

  • নেভিগেট করুন টেম্পলেট মধ্যে ফাইল অ্যাপাচি মডিউল এবং তারপরে আপনার ভার্চুয়াল হোস্টগুলির জন্য দুটি ফাইল তৈরি করুন:

রেড হ্যাট সিস্টেমের জন্য:

সার্ভারএডমিন সার্ভারনাম সার্ভারআলিয়াস www। ডকুমেন্টরুট / ভার / www // পাবলিক_এইচটিএমএল / ত্রুটিলগ /var/www//logs/error.log কাস্টমলগ /var/www//logs/access.log একত্রিত

দেবিয়ান সিস্টেমগুলির জন্য:
/etc/puppet/modules/apache/templates/vhosts-deb.conf.erb

সার্ভারএডমিন সার্ভারনাম সার্ভারআলিয়াস www। ডকুমেন্টআরট / ভার / www / এইচটিএমএল // পাবলিক_এইচটিএমএল / ত্রুটিলগ /var/www/html//logs/error.log কাস্টমলগ /var/www/html//logs/access.log মিলিতসমস্ত অনুমোদিত হয়

আমরা এই ফাইলগুলিতে মাত্র দুটি ভেরিয়েবল ব্যবহার করি: অ্যাডমিনমেল এবং সার্ভার নাম । আমরা এগুলি নোড-বাই-নোড ভিত্তিতে, এর মধ্যে সংজ্ঞায়িত করবsite.ppফাইল।

  • ফিরে যানvhosts.ppফাইল। তৈরি টেমপ্লেটগুলি এখন কোডে উল্লেখ করা যেতে পারে:

শ্রেণি অ্যাপাচি :: vhosts {if $ :: osfamily == 'RedHat' {ফাইল {'/etc/httpd/conf.d/vhost.conf': নিশ্চিত => ফাইল, সামগ্রী => টেমপ্লেট ('অ্যাপাচি / vhosts-rh .conf.erb '),} ls এলসিফ $ :: fফ্যামিলি ==' দেবিয়ান '{ফাইল {' /etc/apache2/sites- উপলভ্য /$servername.conf ': নিশ্চিত => ফাইল, সামগ্রী => টেম্পলেট (' অ্যাপাচি /vhosts-deb.conf.erb '),}} অন্য {ব্যর্থ (' এটি কোনও সমর্থিত ডিস্ট্রো নয় '')}

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

  • উভয় ভার্চুয়াল হোস্ট ফাইল দুটি ডিরেক্টরি রেফারেন্স। এগুলি ডিফল্টরূপে সিস্টেমে নেই। আমরা এটি ব্যবহারের মাধ্যমে তৈরি করতে পারিফাইলউত্স, প্রতিটি মধ্যেযদিবিবৃতি। সম্পূর্ণvhosts.confফাইল সাদৃশ্য করা উচিত:

শ্রেণি অ্যাপাচি :: vhosts {if $ :: osfamily == 'RedHat' {ফাইল {'/etc/httpd/conf.d/vhost.conf': নিশ্চিত => ফাইল, সামগ্রী => টেমপ্লেট ('অ্যাপাচি / vhosts-rh .conf.erb '),} ফাইল {[' / var / www / $ সারওয়ারনেম ',' / var / www / $ সারওয়ারনেম / পাবলিক_এইচটিএমএল ',' / var / www / $ সারওয়ারনেম / লগ ',]: নিশ্চিত => ডিরেক্টরি,}} এলসিফ $ :: ওসফ্যামিলি == 'দেবিয়ান' {ফাইল {'/etc/apache2/sites- উপলভ্য/$servername.conf': নিশ্চিত করুন => ফাইল, সামগ্রী => টেম্পলেট ('অ্যাপাচি / ভিহোস্ট-দেব। conf.erb '),} ফাইল {[' / var / www / $ সার্ভারনেম ',' / var / www / $ সারওয়ারনেম / পাবলিক_এইচটিএমএল ',' / var / www / $ সারওয়ারনেম / লগস ',]: নিশ্চিত => ডিরেক্টরি ,}} অন্য {ব্যর্থ ('এটি কোনও সমর্থিত ডিস্ট্রো নয়' ')}

পদক্ষেপ 4: মডিউলটি পরীক্ষা করুন

  • নেভিগেট করুনঅ্যাপাচি / প্রকাশ /ডিরেক্টরি, চালান পুতুল পার্সার পুতুল কোডিংটি ত্রুটি ছাড়াই রয়েছে তা নিশ্চিত করতে সমস্ত ফাইলগুলিতে:

sudo / opt / puppetlabs / bin / পুতুল পার্সার বৈধ করা init.pp params.pp vhosts.pp

এটি কোনও সমস্যা ছাড়াই খালি ফিরে আসবে।

  • নেভিগেট করুন উদাহরণ ডিরেক্টরি মধ্যেঅ্যাপাচিমডিউল তৈরি একটিinit.ppফাইল তৈরি এবং তৈরি ক্লাস অন্তর্ভুক্ত। এর জন্য মানগুলি প্রতিস্থাপন করুনvern সারওয়ারনেমএবং$ অ্যাডমিনমেইলআপনার নিজের সাথে:

servremail = 'webmaster@example.com' $ servername = 'puppet.example.com' এ অ্যাপাচি অন্তর্ভুক্ত রয়েছে অ্যাপাচি :: vhosts
  • চালিয়ে মডিউল পরীক্ষা করুন পুতুল প্রয়োগ সাথে -নুপ ট্যাগ:
    sudo / opt / puppetlabs / bin / পুতুল প্রয়োগ করুন --noop init.pp

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

  • মূল পুতুল ডিরেক্টরিতে আবার নেভিগেট করুনউদ্ভাসিতফোল্ডার (নাঅ্যাপাচি মডিউলে উপস্থিত একটি)।

সিডি / ইত্যাদি / পুতুলতা / কোড / পরিবেশ / উত্পাদন / উদ্ভাসিত

সি ++ ধরণের রূপান্তর

একটা তৈরি করsite.ppফাইল,এবং প্রতিটি এজেন্ট নোডের জন্য অ্যাপাচি মডিউল অন্তর্ভুক্ত করুন। এছাড়াও জন্য ভেরিয়েবল ইনপুটঅ্যাডমিনমেল এবং সার্ভার নামপরামিতি। তোমারsite.ppনিম্নলিখিত অনুরূপ করা উচিত:

নোড 'পুতুল-agent-ubuntu.example.com' {$ অ্যাডমিনেল = 'ওয়েবমাস্টার@example.com' $ সার্ভারনেম = 'পুতুল.এক্সামেল.কম' আপাচে অন্তর্ভুক্ত রয়েছে অ্যাপাচি :: vhosts} নোড 'পুতুল-এজেন্ট-Centos.example .com '{$ অ্যাডমিনমেইল =' ওয়েবমাস্টার@example.com '$ সার্ভারনেম =' পুতুল.এক্সামেল.কম 'অ্যাপাচে অন্তর্ভুক্ত অ্যাপাচি :: vhosts}

ডিফল্টরূপে, আপনার পরিচালিত নোডগুলিতে পুতুল এজেন্ট পরিষেবা প্রতি 30 মিনিটে স্বয়ংক্রিয়ভাবে মাস্টারের সাথে চেক করবে এবং মাস্টার থেকে কোনও নতুন কনফিগারেশন প্রয়োগ করবে। আপনি পুতুল এজেন্ট প্রক্রিয়াটি ম্যানুয়ালি স্বয়ংক্রিয় এজেন্টের রানের মধ্যেও আবেদন করতে পারেন। আপনার এজেন্ট নোডগুলিতে ম্যানুয়ালি নতুন মডিউল চালানোর জন্য নোডগুলিতে লগ ইন করুন এবং চালান:

sudo / opt / puppetlabs / বিন / পুতুল এজেন্ট -t

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

পুপেটফর্স থেকে একটি মডিউল ব্যবহার করুন

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

আপনি নিশ্চিত যে / ইত্যাদি / পুতুলতা / কোড / পরিবেশ / উত্পাদন / মডিউল ডিরেক্টরি এবং ইনস্টল করুন পুতুল ফোরজের মাইএসকিউএল মডিউল পুপেটল্যাবস দ্বারা। এটি কোনও পূর্বশর্ত মডিউলও ইনস্টল করবে।

সিডি / ইত্যাদি / পুতুলতা / কোড / পরিবেশ / উত্পাদন / মডিউল

sudo / opt / puppetlabs / bin / পুতুল মডিউল ইনস্টল পুতুল-ম্যাসকিএল

ডেটাবেস তৈরি করতে হায়েরা ব্যবহার করুন

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

  • নেভিগেট করুন/ ইত্যাদি / পুতুলএবং হায়রার কনফিগারেশন ফাইলটি তৈরি করুনhiera.yamlমূলতপুতুলডিরেক্টরি আপনি হায়রার ডিফল্ট মানগুলি ব্যবহার করবেন:

/etc/puppetlabs/code/en পরিবেশ / প্রডাকশন / হাইরা.আইএমএল

--- সংস্করণ: 5 শ্রেণিবিন্যাস: - নাম: সাধারণ পথ: সাধারণ.আইএমএল ডিফল্ট: ডেটা_হ্যাশ: ইয়ামল_ডাটা ডাটাডির: ডেটা
  • ফাইল তৈরি করুনসাধারণ.আইএমএল। এটি ডিফল্ট সংজ্ঞায়িত করবে রুট মাইএসকিউএল এর জন্য পাসওয়ার্ড:

/etc/puppetlabs/code/en পরিবেশ / প্রডাকশন / কমন.আইএমএল

mysql :: সার্ভার :: রুট_প্যাসওয়ার্ড: 'পাসওয়ার্ড'

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

  • মাইএসকিউএল মডিউলটির ডিফল্ট ব্যবহার করতে আপনি একটি যুক্ত করতে পারেন ‘:: মাইএসকিএল :: সার্ভার’ অন্তর্ভুক্ত করুন লাইনsite.ppফাইল। তবে এই উদাহরণে, আপনি আপনার প্রতিটি নোডের জন্য একটি ডেটাবেস তৈরি করতে মডিউলটির কিছু ডিফল্টকে ওভাররাইড করবেন।

সম্পাদনা করুনsite.ppনিম্নলিখিত মান সহ ফাইল:

নোড 'পপেটেজেন্ট- বুন্টু.এইজমিন ডটকম' {$ অ্যাডমিনেল = 'ওয়েবমাস্টার@example.com' $ সার্ভারনেম = 'হোস্টনেম.এক্স্পেল.কম.'-এ অ্যাপাচি অন্তর্ভুক্ত রয়েছে :: ভিহোস্টগুলি মাইএসকিএল :: সার্ভার মাইএসকিএল :: ডিবি my' মাইডিবি_ $ q fqdn} ': ব্যবহারকারীর =>' মাইউজার ', পাসওয়ার্ড =>' মাইপাস ', ডিবি নাম =>' মাইডিবি ', হোস্ট => f :: fqdn, অনুদান => [' নির্বাচন ',' আপডেট '], ট্যাগ = > $ ডোমেন,}} নোড 'পাপেটেজেন্টসেন্টস.এক্স্পেল.কম' {$ অ্যাডমিনমেইল = 'ওয়েবমাস্টার@example.com' $ সার্ভারনেম = 'হোস্টনেম.এক্সামেল.কম' আপাচে অন্তর্ভুক্ত রয়েছে অ্যাপাচি :: vhosts টি মাইএসকিএল :: সার্ভার মাইএসকিএল অন্তর্ভুক্ত :: db {'mydb _ $ {fqdn}': ব্যবহারকারী => 'মাইউজার', পাসওয়ার্ড => 'মাইপাস', ডিবি নাম => 'মাইডিবি', হোস্ট => $ :: fqdn, অনুদান => ['নির্বাচন', ' আপডেট '], ট্যাগ => $ ডোমেন,}

পুতুল এজেন্ট থেকে পুতুল এজেন্ট থেকে পুতুল মডিউলগুলির ইনস্টলেশন স্বয়ংক্রিয় ting

  • আপনি প্রতিটি নোডে এসএসএইচিং দ্বারা এবং নিম্নলিখিত আদেশটি জারি করে প্রতিটি আপডেটে ম্যানুয়ালি এই আপডেটগুলি চালাতে পারেন:

sudo / opt / puppetlabs / বিন / পুতুল এজেন্ট -t

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

উবুন্টু এজেন্টে ক্যাটালগ সফলভাবে প্রয়োগ করা হয়েছে

ক্যাটালগ CentOS এজেন্টের উপর সফলভাবে প্রয়োগ করা হয়েছে

সুতরাং, সম্পূর্ণ ইনস্টলেশন পায় স্বয়ংক্রিয় এজেন্টের নোডে কেবল ক্যাটালগ প্রয়োগ করে।এই ডেমোটির জন্য ব্যবহৃত কোড ফাইল এবং নির্ভরতা পাওয়া যাবে এখানে

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

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