شنبه, ۴ اسفند, ۱۴۰۳ / 22 February, 2025
دستورالعملی برای خیمه شب بازی

نرمافزار Puppet قابلیت مدیریت پیکربندی تمام میزبانهای تحت شبکه را در اختیار کاربر میگذارد. این نرمافزار علاوه بر سادهکردن عملیات تکراری ، شرایط و پیکربندی انواع میزبانهای وب را یکپارچه و مدیریت میکند. در واقع Puppet بهعنوان Master عمل میکند و از طریق آن میتوان پیکربندی نرمافزاری گرههای شبکه را انجام داد.
پاپت دو نسخه سازمانی و منبعباز دارد. زبان قدرتمند پیکربندی شیءگرای آن از وراثت و استفاده مجدد، از کد پشتیبانی میکند. پاپت همچنین میتواند با انواع گستردهای از سیستمهای عامل کار کند: لینوکس، FreeBSD، Solaris و حتی ویندوز. بنابراین در محیطهای ترکیبی سرورها که چند توزیع لینوکسی و حتی چند سیستم عامل وجود دارد،گزینه مناسبی است.
پاپت میتواند مانیفستی ایجاد کند که پیکربندی دلخواه سیستمها در آن قرار میگیرد، سپس نزدیکترین حالت ممکن به آن مانیفست را در سرورها پیاده میکند. مثلا اگر بخواهیم بسته httpd را روی یک سرور خاص نصب کنیم، نیازی نیست به پاپت بگوییم دستور yum را در سرور خاصی اجرا کند. در حقیقت، کافی است در فایل پیکربندی پاپت اعلام کنیم که پکیج httpd لازم است و خود پاپت بهترین روش برای نصب آن را در سرور پیدا میکند.
● نصب پاپت
بهتر است برای آزمایش پاپت، آن را از طریق مخازن رسمی دریافت کنیم. بسیاری از توزیعهای لینوکسی تحت پشتیبانی آن قرار دارد.
برای نصب نسخه فعلی پاپت در CentOS ۶ کافی است دستور زیر را اجرا کنیم:
rpm -ivh http://yum.puppetlabs.com/el/۶/products/i۳۸۶/puppetlabs-release-۶-۶.noarch.rpm
پس از این که مخازن پاپت را به توزیع اضافه کردیم با اجرای این دستور میتوان پاپت را در گرههای فرزند نصب کرد:
yum -y install puppet
برای نصب آن در سرور اصلی نیز باید از دستور زیر استفاده کرد:
yum -y install puppet puppet-server
این دو دستور، علاوه بر پکیج پاپت، وابستههای آن را نیز نصب میکند که میتوان به زبان برنامهنویسی Ruby اشاره کرد (که پاپت بر آن مبنا نوشته شده است). درک روبی میتواند به طراحی پیکربندیهای پیچیده از طریق الگوهای ERB کمک کند ، اما روبی لایه زیرین است و نیازی نیست برای کار با پاپت به آن مسلط باشیم.
Facter یکی دیگر از پکیجهای وابسته و ابزاری Cross-platform است که میتواند اطلاعاتی از جمله سیستم عامل میزبان، توزیع، معماری و رابطهای شبکه آن را استخراج کند. این اطلاعات که از Facter به دست میآید هم از طریق دسترسی محلی و هم در بخش سرور در دسترس خواهد بود. با توجه به اطلاعاتی که پاپت بهدست میآورد، حالت پیشفرض هر سرور را متوجه میشود.
برای اجرای خودکار پاپت در CentOS، باید دستور زیر را در سرورهای فرزند اجرا کنیم:
Chkconfig puppet on
و در سرور دستور زیر را اجرا کنیم:
Chkconfig puppet on
checkconfig puppetmaster on
اگر برای فایروال از iptables استفاده میکنیم، باید قابلیت دسترسی به گرههای فرزند ایجاد کرد تا بتواند سرور مادر را ببینند. سرویس پاپت در پورت TCP ۸۱۴۰ قرار دارد. برای فعالکردن آن در CentOS دستور زیر را بنویسید:
iptables -I INPUT -p TCP --dport ۸۱۴۰ -j ACCEPT
service iptables save
● راهاندازی اولیه پاپت
پیش از راهاندازی پاپت، بهتر است به پیکربندی آن بپردازیم. نخست باید مطمئن شویم گرههای فرزند به سرور متصل است. بهطور پیشفرض این گرهها از طریق نام دامنه puppet به دنبال سرور میگردند. میتوان FQDN دیگری برای سرور تعریف کرد. برای این کار باید فایل /etc/puppet/puppet.conf را در هر گره باز کرد و دستور زیر را در بخش مناسب قرار داد:
server=somehost.example.org
البته میتوان فایل /etc/hosts هر گره را دستکاری کرد و آیپی آدرس puppetرا برابر با آدرس آیپی سرور قرار داد. سند SSL موجود در سرور باید با FQDN همخوانی داشته باشد.
اگر نام puppet باقی بماند، کافی است در انتهای فایل /etc/puppet/puppet.conf، خط certname=puppet را اضافه یا تغییر داد.
حالا گرهها میتوانند سرور را پیدا کنند و یک اتصال معتبر و امن بینشان ایجاد کنند. تنها کافی است سرویس پاپت را یک بار اجرا کنیم. در سیستم سرور، دستور
Puppetmaster start && service puppet start
و در گرههای فرزند دستور
Service puppet start
برای اجرای سرویسهای پاپت بهکار میروند.
وقتی سرویس پاپت در گرهها به اجرا درآید، تلاش برای اتصال به سرور مادر آغاز میشود، اما خودکار نیست. برای این کار باید اتصال بین آن دو مطمئن و مورد اعتماد باشد.
برای نمایش درخواستهای ورود در سرور، دستور
Puppet cert list
را تایپ کنید.
برای امضای تائید درخواستها، کافی است دستور
Puppet cert sign nodeserver۲
را تایپ کنید. nodeserver۲ نام گرهی است که قرار است درخواستهایش از این به بعد معتبر بوده و اتصال بهصورت خودکار انجام شود.
● مانیفست پاپت
نام فایلهای پیکربندی پاپت، مانیفست است. این فایلها شامل دستوراتی میشود که پاپت میتواند از طریق آنها، نود را به حالت ایدهآل خود برساند. مانیفستها بعد از کامپایل به کاتالوگ تبدیل میشود. روند کامپایل باعث میشود پکیجهای وابسته مشخص و عملیات نصب به ترتیب صحیح چیده شود. برای مثال اگر بخواهیم پکیج httpd را روی سرور نصب کنیم و این الزام را بگذاریم که بسته php باید حضور داشته باشد، پاپت پیش از نصب httpd، ابتدا php را نصب و کارکرد آن را تست میکند و بعد نصب httpd را انجام میدهد.
وقتی یک گره به سرور وصل میشود، کاتالوگ را دریافت کرده و آن را بهصورت محلی اجرا میکند. اجرای کاتالوگ باید در همخوانی با سرور باشد. از این رو گرههای فرزند بهطور پیشفرض هر ۳۰دقیقه یک بار به سرور متصل میشود تا پیکربندی خود را با سرور همخوان کند. فعالیت پاپت از طریق مسیر زیر قابل بررسی است:
/var/log/messages
مانیفستها در دایرکتوری /etc/puppet/manifests قرار میگیرند و پسوند آنها pp است. وقتی میخواهیم فایلی را با نام something.pp باز کنیم میتوانیم پسوند آن را نادیده بگیریم.
فایل site.pp مانیفست اصلی است که پاپت آن را بهطور پیشفرض بارگذاری میکند. برای شروع با یک مثال ساده، بیایید یک پیکربندی ساده انجام دهیم:
node ۰۳۹;server۲۰۳۹; { }
node ۰۳۹;server۳۰۳۹; {
include postfix }
import "postfix"
همانطور که مشخص است، پیکربندی از طریق FQDN انجام میشود و درون آن میتوان دستورات را وارد کرد. برای مدیریت بهینه فایل پیکربندی بهتر است قطــــــعههای کوچک کد را در فایلهای مختلف قرار دهید و از طریق import از آنها استفاده کنیم. این فایلهای کوچک با نام کلاسهای پاپت شناخته میشود. در مثال بالا، فایل postfix.pp به صورت زیر خواهد بود:
class postfix {
package { "postfix":
ensure =» installed, }
service { "postfix":
ensure =» running,
enable =» true, }}
در این فایل به پاپت گفته میشود بسته postfix باید نصب شود (ensure =» installed)، همچنین باید راهاندازی و فعالبودن سرویس آن نیز انجام شود. وقتی تغییراتی را در فایل site.pp انجام میدهیم، پاپت بهطور خودکار آن را تشخیص داده و گرههای فرزند را وادار میکند تغییرات را انجام دهد. اگر تغییرات در فایلهای ایمپورت شده باشد، باید زمان ذخیره site.pp را تغییر داد تا پاپت تغییرات را تشخیص داده و دستورات لازم را صادر کند. برای کسب اطلاع بیشتر در مورد فایلهای مانیفست و نحوه پیکربندی آن به نشانی زیر بروید:
http://docs.puppetlabs.com/learning/manifests.html
● گزارشگیری
پاپت از سیستم گزارش گیری نیز بهره میبرد. بعد از پیکربندی، گرههای فرزند میتواند در مورد تغییرات و عملیاتی که با موفقیت اجرا شده است به سرور گزارش بدهد. برای فعالسازی گزارشگیری باید در گرههای فرزند فایل /etc/puppet/puppet.conf را ویرایش و در بخش [agent] خط جدیدی با عنوان report = true ایجاد کنیم. در سرور نیز باید همین فایل را ویرایش و این بار در بخش [master] دو خط اضافه کنیم:
Reportdir = /etc/puppet/reports
Reports = store
گزارشهای پاپت به فرمت yaml، بسیار جزئی و گویاست. هر گزارشی با نام فایل مانیفست آغاز میشود. تغییرات مانیفستها در این محل قرار گرفته و بعد عملیات انجام شده در ادامه آورده میشود.
محمدرضا قربانی
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست