نصب پاپت
بهتر است براي آزمايش پاپت، آن را از طريق مخازن رسمي دريافت كنيم. بسياري از توزيعهاي لينوكسي تحت پشتيباني آن قرار دارد.براي نصب نسخه فعلي پاپت در CentOS 6 كافي است دستور زير را اجرا كنيم:
rpm -ivh http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-6.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 8140 قرار دارد. براي فعالكردن آن در CentOS دستور زير را بنويسيد:
iptables -I INPUT -p TCP --dport 8140 -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 nodeserver2
را تايپ كنيد. nodeserver2 نام گرهي است كه قرار است درخواستهايش از اين به بعد معتبر بوده و اتصال بهصورت خودكار انجام شود.
مانيفست پاپت
نام فايلهاي پيكربندي پاپت، مانيفست است. اين فايلها شامل دستوراتي ميشود كه پاپت ميتواند از طريق آنها، نود را به حالت ايدهآل خود برساند. مانيفستها بعد از كامپايل به كاتالوگ تبديل ميشود. روند كامپايل باعث ميشود پكيجهاي وابسته مشخص و عمليات نصب به ترتيب صحيح چيده شود. براي مثال اگر بخواهيم پكيج httpd را روي سرور نصب كنيم و اين الزام را بگذاريم كه بسته php بايد حضور داشته باشد، پاپت پيش از نصب httpd، ابتدا php را نصب و كاركرد آن را تست ميكند و بعد نصب httpd را انجام ميدهد.وقتي يك گره به سرور وصل ميشود، كاتالوگ را دريافت كرده و آن را بهصورت محلي اجرا ميكند. اجراي كاتالوگ بايد در همخواني با سرور باشد. از اين رو گرههاي فرزند بهطور پيشفرض هر 30دقيقه يك بار به سرور متصل ميشود تا پيكربندي خود را با سرور همخوان كند. فعاليت پاپت از طريق مسير زير قابل بررسي است:
/var/log/messages
مانيفستها در دايركتوري /etc/puppet/manifests قرار ميگيرند و پسوند آنها pp است. وقتي ميخواهيم فايلي را با نام something.pp باز کنيم ميتوانيم پسوند آن را ناديده بگيريم.فايل site.pp مانيفست اصلي است كه پاپت آن را بهطور پيشفرض بارگذاري ميكند. براي شروع با يك مثال ساده، بياييد يك پيكربندي ساده انجام دهيم:
node 'server2' { }
node 'server3' {
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 را تغيير داد تا پاپت تغييرات را تشخيص داده و دستورات لازم را صادر كند. براي كسب اطلاع بيشتر در مورد فايلهاي مانيفست و نحوه پيكربندي آن به نشاني زير برويد:
گزارشگيري
پاپت از سيستم گزارش گيري نيز بهره ميبرد. بعد از پيكربندي، گرههاي فرزند ميتواند در مورد تغييرات و عملياتي كه با موفقيت اجرا شده است به سرور گزارش بدهد. براي فعالسازي گزارشگيري بايد در گرههاي فرزند فايل /etc/puppet/puppet.conf را ويرايش و در بخش [agent] خط جديدي با عنوان report = true ايجاد كنيم. در سرور نيز بايد همين فايل را ويرايش و اين بار در بخش [master] دو خط اضافه كنيم:
Reportdir = /etc/puppet/reports
Reports = store
گزارشهاي پاپت به فرمت yaml، بسيار جزئي و گوياست. هر گزارشي با نام فايل مانيفست آغاز ميشود. تغييرات مانيفستها در اين محل قرار گرفته و بعد عمليات انجام شده در ادامه آورده ميشود.
.: Weblog Themes By Pichak :.