سنت او اسسیستم عامل لینوکسمقالات وب
چگونه Puppet Master را بر روی سنت او اس 7 نصب و راه اندازی کنیم؟

همانطور که می دانید Puppet یکی از ابزارهای مدیریت پیکربندی متن باز و فریم ورک اتوماسیون سرور است. این گزینه را می توان بر روی سیستم عامل های شبیه یونیکس و نیز ویندوز نصب کرد. Puppet به شما اجازه می دهد وظایف مدیریتی را انجام دهید و پیکربندی های صدها سیستم را از طریق یک سرور به راحتی دنبال نمایید. در این مقاله قصد داریم Puppet را بر روی سنت او اس 7 نصب کنیم. پس همراه وب ایده باشید.
پیش نیازها:
- 2 عدد سرور سنت او اس 7
- دسترسی روت
چه کاری در این مقاله انجام خواهیم داد؟
- پیش نصب Puppet
- نصب و پیکربندی سرور Puppet
- نصب و پیکربندی Puppet Agent
- تایید پیکربندی Puppet Agent
- ایجاد اولین Puppet Manifest
گام اول: پیش نصب Puppet
در این مرحله کارهایی همچون نصب و پیکربندی دو سرور puppet master و puppet agent را با هم انجام خواهیم داد.
در ادامه فایل های هاست را پیکربندی خواهیم کرد، زمان را به کمک NTP تنظیم خواهیم کرد، SELinux را غیر فعال خواهیم کرد و مخزن puppet را به سیستم اضافه خواهیم کرد.
پیکربندی هاست ها:
به کمک کاربر روت به puppet master و agent وصل شوید:
ssh root@10.0.15.10 ssh root@10.0.15.11
حالا هاست را به کمک ویرایشگر vim ویرایش نمایید:
vim /etc/hosts
پیکربندی های زیر را به انتهای فایل اضافه کنید:
10.0.15.10 master.hakase.io 10.0.15.11 agent.hakase.io
فایل را ذخیره کنید و ببندید. حالا به کمک دستور پینگ آن را تست کنید:
ping master.hakase.io ping agent.hakase.io
اطمینان حاصل نمایید که آی پی آدرس سرور را دریافت می کنید.
پیکربندی سرور NTP:
باید زمان بین سرور Matser و Agent را همگام سازید. به همین خاطر پکیج های NTP را به کمک دستور زیر بر روی هر دو سرور نصب خواهیم کرد:
yum -y install ntp ntpdate
بعد از اینکه فرآیند نصب کامل شد، NTP pool ای که می خواهید را به کمک دستور زیر انتخاب کنید:
sudo ntpdate 0.centos.pool.ntp.org
حالا سرویس NTP را استارت کنید و آن را در بوت سیستم اجرا نمایید:
sudo systemctl start ntpd sudo systemctl enable ntpd
خوب فرایند نصب و پیکربندی NTP تکمیل شده است.
غیر فعال کردن SELinux:
فایل پیکربندی SELinux را به کمک vim ویرایش کنید:
vim /etc/sysconfig/selinux
مقدار SELinux را به disabled تغییر دهید:
SELINUX=disabled
فایل را ذخیره کنید و ببندید.
اضافه کردن مخزن puppet:
حالا باید مخزن puppet را به کمک دستور زیر به سیستم خود اضافه نمایید:
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
زمانی که کارتان تمام شد هر دو سرور را ریبوت کنید.
reboot
گام دوم: نصب و پیکربندی سرور puppet
در این مرحله سرور puppet را بر روی سیستم خود نصب خواهیم کرد. برای اینکار از دستور زیر استفاده کنید:
sudo yum -y install puppetserver
بعد از اینکه فرآیند نصب کامل شد، باید حافظه تخصیص داده شده به سرور را پیکربندی نماییم. حداکثر حافظه برای این سرور را بر روی 1 گیگابایت تنظیم می کنیم.
پیکربندی سرور puppet را به کمک vim ویرایش کنید:
vim /etc/sysconfig/puppetserver
حالا خط نشان داده شده را همانند زیر تغییر دهید:
JAVA_ARGS="-Xms1g -Xmx1g ...."
فایل را ذخیره کنید و ببنیند. به دایرکتوری پیکربندی puppet بروید و فایل ‘puppet.conf’ را ویرایش نمایید.
cd /etc/puppetlabs/puppet vim puppet.conf
پیکربندی های زیر را بدان اضافه کنید:
[master] dns_alt_names=master.hakase.io,puppet [main] certname = master.hakase.io server = master.hakase.io environment = production runinterval = 1h
فایل را ذخیره کنید و ببندید.
حالا puppetserver را استارت کنید و آن را در استارت آپ اجرا نمایید.
systemctl start puppetserver systemctl enable puppetserver
خوب نصب و پیکربندی puppetserver با موفقیت به اتمام رسید. اگر بر روی سیستم خود از firewalld استفاده می کنید، پورت puppetserver را به کمک دستور زیر اضافه کنید:
firewall-cmd --add-port=8140/tcp --permanent firewall-cmd --reload
گام سوم: نصب و پیکربندی Puppet Agent
ما Puppet Agent را بر روی سروری به نام ‘agent.hakase.io نصب خواهیم کرد. به کمک دستور زیر اینکار را انجام دهید:
yum install -y puppet-agent
بعد از اینکه نصب کامل شد، به دایرکتوری پیکربندی puppet بروید و فایل puppet.conf را ویرایش کنید.
cd /etc/puppetlabs/puppet vim puppet.conf
پیکربندی زیر را پیست کنید:
[main] certname = agent.hakase.io server = master.hakase.io environment = production runinterval = 1h
فایل را ذخیره کنید و ببندید. سپس puppet agent را در puppet master ثبت خواهیم کرد. دستور زیر را در شل puppet agent اجرا کنید:
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
حالا puppet agent بر روی سرور اجرا می شود و تلاش می کند خود را در puppet master ثبت کند. حالا به شل puppet master برگردید و دستور زیر را اجرا کنید:
/opt/puppetlabs/bin/puppet cert list
گواهینامه را به کمک دستور زیر امضا کنید:
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
خوب حالا puppet agent بر روی سیستم در حال اجراست.
گام چهارم:پیکربندی puppet agent را تایید کنید.
بعد از اینکه گواهینامه puppet master را برای agent امضا کردید دستور زیر را بر روی agent اجرا کنید تا پیکربندی را تایید نمایید:
/opt/puppetlabs/bin/puppet agent --test
گام پنجم: ایجاد اولین Manifest
خوب حاا فرایند نصب و پیکربندی دو سرور تکمیل شده است. در این مرحله یک Manifest ساده برای تست ایجاد خواهیم کرد. ما این Manifest را برای وب سرور آپاچی ایجاد می کنیم. در puppet master به دایرکتوری ‘/etc/puppetlabs/code/’ بروید و فایل جدیدی به نام ‘site.pp’ ایجاد کنید.
cd /etc/puppetlabs/code/ cd environments/production/manifests
فایل جدید را ایجاد کنید:
vim site.pp
پیکربندی های زیر را پیست کنید:
node 'agent.hakase.io' { package { 'httpd': ensure => "installed", } service { 'httpd': ensure => running, enable => true } }
فایل را ذخیره کنید و ببندید. دستور زیر را بر روی شل Agent اجرا کنید:
/opt/puppetlabs/bin/puppet agent --test
مرورگر خواهد را باز کنید و ای پی آدرس agent را بنویسید. باید وارد صفحه HTTP پیش فرض شوید.
الان سر حوصله مقالتون رو خوندم .
اول که ای کاش اشاره میکردید که برای مانیفست نوشتن از روبی استفاده میکنیم. این رو برای این میگم که اونایی که میخوان باهاش کار کنن برن فقط سینتکس روبی رو یاد بگیرن. میگم واره مقوله ماژولار نمیخواد بشن در حد سینتکس.
دوم پاپت خیلی کارا میکنه(میدونم وظیفه شما نیست که آموزش بدید) ولی ای کاش یه مثال پرکاربرد تر ارائه میدادید. مثلا چجوری میشه باهاش یه سری کانتینرسرویس بوت کرد یا غیره … ( اگه با وایگرانت مخلوطش کنید هیولا میشن مثلا)
من انتظار داشتم بهمون بگید که چجوری باهم صحبت میکنن. تقریبا هیچی از مفاهیم ارائه نشده و فقط یه دستورپخت(که خیلی هم خوبه)
سوم ایتکه وبلاگ شما خیلی قشنگه حسودی :grin:(سر زشت بودن وبلاگ و سرزنشهای یکی از دوستای قدیم از روت دایرکتوری برش داشتم!) ای کاش یه فرصتی میشد من چند تا چیز ازتون میپرسیدم.
منتظر مقاله های بهتر، بنیادی تر ازتون هستم
سلام. اولا که باعث خوشحالیه اینقدر مقالات رو با دقت مطالعه می کنید. هدف وب ایده ارائه آموزش های ساده برای همه افراد هست. در مقالات بعدی سعی می کنیم آموزش های پیشرفته تری ارائه بدیم تا دوستانی که بیشتر حرفه ای هستن هم از این مقالات استفاده کنن. موفق باشید.