اولین باری که با vagrant آشنا شدم زمانی بود که تصمیم داشتم openstack رو نصب کنم . در ابتدای فایل راهنمای نصبش نوشته بود اگر قصد دارید openstack رو روی ماشین مجازی (vm) نصب کنید ابتدا vagrant رو نصب کنید . خب اون زمان من چون openstack رو روی خود میزبان نصب کردم نیاز به vagrant پیدا نکردم و از کنارش گذشتم .
اما الان که بیشتر وارد دنیای مدیریت سرور ها شدم با این نرم افزارهای متن باز مدیریتی بیشتر برخوردم نرم افزارهایی مثل : Ansible ، Chef ، Puppet ، Vagrant و …
خب حالا این نرم افزارها چه مشکلاتی از ما رو حل می کنند ؟
هر کدام از این نرم افزارها ، برای انجام یه کار خاصی موفق تر عمل کردند ؛ اکثر این نرم افزارها الگوی مشابهی استفاده می کنند : اجازه تعیین وضعیت ماشین به کاربر داده می شود و با توجه به فایل های پیکربندی ، نرم افزارها نصب می شوند ، کاربران ، گروه ها و انواع مختلف منابع تعیین می شوند و …
vagrant ماشین های مجازی رو به صورت خودکار ایجاد و مدیریت می کند . این مدیریت می تواند روی ماشین های مجازی محلی اتفاق بیفتد یا روی پلت فرم های ابری .
chef برای نصب و پیکربندی سیستم عامل ها روی ماشین های مجازی استفاده می شود . یک پلت فرم اتوماسیون است که زیرساخت رو به کد تبدیل می کند .
Ansible یکی از ساده ترین و آسان ترین نرم افزارهای مدیریتی است چراکه فقط از ssh استفاده می کند . Ansible برای اتصال به سرورها و اجرای وظایفش روی آنها فقط از ssh استفاده می کند . یکی دیگر از دلایل محبوبیت Ansible این است که به سادگی می توانید اسکریپت های bashای که برای مدیریت برنامه ها نوشته اید را به تسک های Ansible تبدیل کنید .
Puppet برای مدیریت پیکربندی سیستم های شبه یونیکس و ویندوز طراحی شده . کاربر منابع سیستم و موقعیت خود را با زبان اعلانی Puppet تعریف می کند (Ruby DSL) . اطلاعات در فایل هایی که Puppet manifest نامیده می شوند ذخیره می شوند . Puppet اطلاعات سیستم را از طریق یک ابزار به نام Factor پیدا می کند و manifest ها را کامپایل می کند و ادامه مراحل …
اکثر این نرم افزارهای مدیریتی این قابلیت را برای شما فراهم می آورند که بتوانید تغییرات اعمال شده را به ماشین خاصی پوش کنید . نرم افزارهای مدیریتی فراوانی وجود دارند اما این ۴ تا به نظر من کاربردی تر هستند و از طرفی می توان در مدیریت نصب پلت فرم های ابری نیز از اینها استفاده کرد ؛ خصوصا زمانی که تعداد میزبان های ابری زیاد باشد .
نام نرم افزار | زبان | لایسنس | پلت فرم هایی که پشتیبانی می کند |
Ansible | Python | GPL | Windows , Solaris , Mac OS , Linux |
Chef | Ruby | Apache | Windows , Solaris , Mac OS , Linux |
Puppet | Ruby | Apache | Windows , Solaris , Linux |
Vagrant | Ruby | MIT | Mac OS , Linux , Windows |