Ansible ابزاری جهت تولید دستورات نوشتاری به منظور خودکارسازی اقدامات متخصصان IT در تمام زیرساخت های سیستم می باشد. این ابزار به صورت ویژه برای متخصصان IT طراحی شده است و کمک می کند که به عنوان یک مدیر سیستم بتوانند از انسیبل برای استقرار برنامه، مدیریت پیکربندی، ارکستراسیون درون سرویس و سایر امور روزانه و هفتگی خود استفاده نمایند.
نصب Ansible آسان است زیرا به هیچ نرمافزار agent یا زیرساخت امنیتی دیگری نیاز ندارد. انسیبل در حوزه اتوماسیون، مدیریت سیستم و فناوری DevOps پیشگام است و همچنین به عنوان یک ابزار ارزشمند برای توسعهدهندگان در امور روزانه، کاربرد دارد. Ansible به شما امکان میدهد نه تنها یک دستگاه بلکه یک شبکه کامل از دستگاهها را به صورت همزمان و بدون نیاز به دانش برنامه نویسی پیکربندی کنید.
انسیبل چگونه کار میکند؟
تصویر(1)
انسیبل به Node (گره) های شبکه (مانند کلاینت ها، سرورها و...) متصل میگردد و سپس یک برنامه کوچک که ماژول Ansible نامیده می شود برای هر Node شبکه ارسال میکند. سپس این ماژولها را از طریق SSH اجرا نموده و پس از اتمام، آنها را حذف می نماید.
برای برقراری تعامل، Control node انسیبل (ماشینی که Ansible CLI tools روی آن اجرا شده است) باید دسترسی ورود به managed node ها (دستگاهی که قصد مدیریت آنها با Ansible دارید - به آنها host نیز گفته می شود) را داشته باشد. متداول ترین روش احراز هویت از طریق کلیدهای SSH است اما می توانید از متدهای جایگزین نیز استفاده نمایید.
معماری انسیبل
در ادامه به معماری انسیبل و نحوه مدیریت عملیات آن پرداخته می شود.
افزونههای انسیبل
پلاگین یا افزونه ها، قطعه کدهای مکملی هستند که موجب بهبود عملکرد برنامه می شوند. احتمالاً در ابزارها و پلتفرمهای دیگر از پلاگین ها استفاده نموده اید. شما میتوانید از افزونه های پیشفرض Ansible استفاده نمایید یا پلاگین های اختصاصی خودتان را ایجاد کنید.
برخی از پلاگین های Ansible عبارتند از:
- پلاگین های Action
- پلاگین های Become
- پلاگین های Cache
- پلاگین های Callback
- پلاگین های Cliconf
- پلاگین های Connection
- پلاگین های HTTP API
- پلاگین های Inventory
- پلاگین های Lookup
- پلاگین های Netconf
ماژولهای انسیبل
ماژولها برنامههای کوچکی هستند که انسیبل از ورک استیشن کنترل مرکزی آنها را بین تمام node ها یا هاست های ریموت توزیع میکند. این ماژولها می توانند مواردی همچون سرویسها و پکیج ها را کنترل نموده و از طریق playbook ها اجرا شوند. انسیبل، ماژولهای مورد نیاز برای نصب آپدیت ها یا انجام هر گونه عملیاتی را اجرا می کند و پس از انجام، آنها را حذف می نماید.
فهرست های (Inventory) انسیبل
Ansible با استفاده از یک فایل فهرست (inventory file)، لیستی از هاست های موجود در زیرساخت شما را نگهداری نموده و از اطلاعات این لیست برای اتصال به host ها و اجرای دستورات و پلی بوکها استفاده می کند.
انسیبل به صورت موازی با سیستمهای مختلف در زیرساخت شما کار میکند و این کار را با انتخاب روشهای موجود در فایل inventory که به طور پیش فرض در host ذخیره می شوند، انجام می دهد. پس از ثبت inventory، جهت اختصاص متغیرها به هر یک از host ها، شما میتوانید از یک فایل متنی ساده استفاده کنید و inventory را از منابع مختلف بازیابی نمایید.
تصویر(2)
پلی بوک (Playbook)
متخصصین IT میتوانند از playbook های انسیبل جهت برنامهنویسی اپلیکیشن ها، سرویسها، node های سرور و سایر دستگاهها استفاده کنند بدون اینکه نیاز به شروع از صفر باشد. playbook های انسیبل همراه با شرط ها، متغیرها و وظایفی که در آنها وجود دارد، قابل ذخیره سازی، به اشتراک گذاری و استفاده مجدد می باشند.
playbook های انسیبل مشابه manual (کتابچه راهنما) می باشند و در واقع فایلهای YAML سادهای هستند. YAML یک زبان سریال سازی داده ها و قابل خواندن برای انسان می باشد. پلیبوکها عامل اصلی محبوبیت انسیبل هستند. آنها وظایفی را تعریف میکنند که به راحتی قابل انجام می باشند و کاربر نیازی به دانستن syntax (قواعد نوشتاری در یک زبان برنامه نویسی) خاصی ندارند.
مزایای استفاده از انسیبل
استفاده از Ansible بسیار آسان و سریع است زیرا تمام عملیات خود را از طریق SSH اجرا میکند و نیازی به نصب هیچ برنامه agent ای ندارد. Ansible ابزاری رایگان و متنباز است و راهاندازی و کار با آن بسیار آسان می باشد. پلی بوکهای انسیبل نیاز به هیچ دانش برنامهنویسی خاصی ندارند.
از انسیبل میتوان برای امور ساده ای مانند اطمینان حاصل کردن از عملکرد یک سرویس یا ریبوت از طریق خط فرمان استفاده نمود بدون اینکه به فایلهای پیکربندی نیاز باشد. انسیبل در سیستمهای گسترده تر بسیار کارآمد و مناسب می باشد. این ابزار مجموعهای از ماژولها را جهت مدیریت متدها و زیرساختهای ابری مختلف ارائه می دهد.
چرا Ansible به این اندازه مهم است؟
نوین سازی و تحول دیجیتال نیازمند اتوماسیون می باشد که امری ضروری و هدفمند است. در محیطهای پویا و پرتغییر امروزی، به یک راهحل مدیریتی جدید نیاز است تا سرعت، مقیاسپذیری و پایداری زیرساخت فناوری اطلاعات بهبود یابد.
فناوری یک ابزار قدرتمند برای بهبود محصولات محسوب می شود. در گذشته، دستیابی به این هدف منوط به هماهنگی های پیچیده و کارهای دستی بسیار زیاد بود اما امروزه، انسیبل وجود دارد. یک موتور اتوماسیون ساده اما قدرتمند در حوزه فناوری اطلاعات که توسط شرکتهای زیادی جهت سادهسازی تنظیمات و افزایش سرعت عملیات DevOps استفاده میشود.
نتیجهگیری
Ansible یک ابزار قدرتمند برای مدیریت پیکربندی و اتوماسیون سیستمها می باشد. سادگی، کارایی بالا و هماهنگی با محیطهای مختلف، از ویژگیهای برجسته Ansible به شمار می رود. در این مقاله، انسیبل، مزایا، نحوه کار و قابلیتها، معماری، پلاگینها، playbook، Inventory و... مورد بررسی قرار گرفت.