اتوماتیک کردن مدیریت زیرساخت های IT با Puppet

امروزه با گسترش زیرساخت های فناوری اطلات بر روی پلتفروم های مختلف مثل Linux و Microsoft و همچنین وجود کلی نرم افزار و تنظیمات مرتبط با آنها،فرآیند نگهداری و پشتیبانی این زیرساخت ها توسط مدیران سیستم ها (System Administrators)بسیار وقتگیر و هزینه بر هست. نرم افزاری به نام Puppet مدتی هست که با هدف اتوماتیک کردن فرآیندهای نگهداری زیرساخت های IT  تولید شده است.

Puppet

Puppet در چه مواردی کاربرد دارد:

  • اگر تعداد زیادی سرور دارید که میخواهید همه آنها را  Config کنید و یا مثلا یک Application روی همه  آنها نصب کنید.
  • وقتی نیاز دارید تا زیر ساخت شما به صورت Dynamic تنظیم بشود.
  • قبل از اینکه تنظیمات به صورت دائمی در سرورهای شما اعمال شود، ابتدا آنها را شبیه سازی و تست کنید تا بتوانید تغییرات را در زیر ساخت خود مدیریت کنید(Change Management).
  • وقتی که نیاز دارید تا کلیه تنظیمات مربوط به زیرساخت شما در یک مکان مرکزی (Centralized) وجود داشته باشد.
  • و …

نکات جالب در مورد Puppet

  • Puppet به صورت دو نسخه OpenSource و Enterprise وجود دارد که نسخه Enterprise آن توسط PuppetLabs فروخته می شود که  البته تا ۱۰ عدد Node را میتوانید به صورت رایگان مدیریت کنید و در واقع شامل ۴۰ محصول OpenSource دیگر میشود که شامل پیشتیبانی شرکت PuppetLabs هم می باشد. در اینجا میتوانید مقایسه ای بین امکانات نسخه OpenSource و Enterprise این محصول داشته باشید.
  • Puppet همه چیز را به صورت Object میبیند، مثلا سرور شما یک Object هست که Value و Property دارد.
  • اسکریپت های Puppet به صورت Declarative هستند  و شبیه کدهایی هستند که با Ruby نوشته میشود.تنظیمات Puppet را Manifest می گویند.
  • شما میتوانید این کد ها را با مدیران سیستم دیگر هم به اشتراک بگذارید و یا از کدهای آماده دیگران استفاده کنید. در حال حاضر حدود ۲۰۰۰ تنظیم قابل دانلود از مسیر Puppet Forge قابل دریافت است.
  • مدل کارکرد Puppet معمولا به صورت Client/Server است. Client به صورت دوره ای با استفاده از Puppet Agent که بر روی Client نصب شده است به Server که  Pupper Master Server نامیده میشود درخواست یا Fact میفرستد که در واقع آخرین وضعیت خودش است، سپس Pupper Master Server یک Catalog را تولید میکند و آن را به Puppet Agent میفرستد که به Client میگوید به چه صورتی باید تنظیم شود. در نهایت Client یک Report تولید میکند که مشخص میکند که تنظیمات با موفقیت اعمال شده است.  عکس زیر مراحل کاری Puppet را نشان می دهد.
  • puppet-dataflow

چند وقت پیش خبری منتشر شد مبنی بر اینکه Puppet و Microsoft با هم همکاری بیشتری دارند و محصولات این دو شرکت یکپارچه تر شدند. در حال حاضر بیشتر تمرکز بر روی Windows Azure هست و همینطور Plugin برای Visualstudio نوشته شده که امکان ایجاد ماژول های Puppet رو با استفاده از این IDE قدرتمند برای شما فراهم میکند.

اتصال به سرورهای لینوکسی در ویندوز با PuTTy و Xming

فرض کنید در شرایطی هستید که یک سرور لینوکسی دارید و نیاز دارید تا با ابزارهایی که GUI  دارند یا اصطلاحا X Windows هستند وصل شوید. مثلا من در سرور لینوکسی خودم از ابزار Virtual Machine Manager برای ماشین های مجازی که با KVM ایجاد میکنم استفاده می کنم. خوب من اصلا تمایلی ندارم که مدیریت ماشین های مجازی خودم را از طریق Terminal انجام بدهم و استفاده از ابزار Virt-manager را ترجیح میدهم. اما چطور میتوانم زمانیکه که از PuTTY و از طریق SSH به سرور لینوکسی خودم وصل شده ام از این ابزار استفاده کنم؟

ابزارهای مورد نیاز:

۱- یک سرور لینوکسی

۲- نرم افزار PuTTY

3- نرم افزار Xming

1- ابتدا در نرم افزار PuTTY گرینه X11 Forwarding را فعال کنید.

xming-1

۲- پس از نصب نرم افزار Xming آن را اجرا کنید.

xming-3

۳- حالا به سرور خود SSH بزنید.

xming-2

۴- حالا کافی است تا دستور virt-manager را در ترمینال وارد کنید تا پنجره این نرم افزار به صورت گرافیکی در ویندوز شما نمایش داده شود.

xming-4

xming-5

به طور کلی از نرم افزار Xming در ویندوز برای باز کردن GUI بر روی سیستم های X Windows یا X11  استفاده می شود و درحقیقت یک پیاده سازی از X Windows Systemدر محیط MS Windows می باشد.

به طور دقیق تر با توجه به مدل Client-Server سیستم X Windows این ابزار یک X Windows Server در MS Windows محسوب میشود. مثلا میتوانید به جای مثال بالا عبارت Xclock را در ترمینال وارد کنید تا ساعت سرور لینوکسی شما به صورت گرافیکی و در محیط ویندوز نشان داده شود.

xming-6