آنچه در این مقاله میخوانید
انسیبل (Ansible) چیست؟
۲۴ فروردین ۱۴۰۱
انسیبل (Ansible) یک ابزار متنباز است و شما بهعنوان یک سیستمادمین یا توسعهدهنده میتوانید از این ابزار برای خودکارسازی فرایندهایی مانند استقرار برنامه، نصب یک نرمافزار، provision کردن زیرساخت و بسیاری دیگر از فرایندهای مشابه استفاده کنید تا درنهایت اکثر کارهای روزمرهی شما بهصورت خودکار انجام شود. همچنین شما میتوانید اتوماسیونهای ایجاد شده را با دیگر اعضای سازمان و یا تیم خود بهاشتراک بگذارید. در این مطلب میخواهیم بیشتر راجعبه این ابزار بپردازیم و با کاربردهای و مزایای آن آشنا شویم، همراه ما باشید:)
آنچه در این مقاله میخوانید:
- انسیبل (Ansible) چیست؟
- Ansible چگونه کار میکند؟
- Ansible playbook چیست؟
- شروع کار با Ansible
- کاربرد انسیبل چیست؟
- کامپوننتهای انسیبل کدامند؟

انسیبل (Ansible) چیست؟
Ansible یک ابزار Automation و Configuration Management متنباز است که توسط Red Hat توسعه و پشتیبانی میشود. این ابزار به شما اجازه میدهد تا فرآیندهای استقرار (Deployment)، پیکربندی سیستمها (Configuration)، و ارکستریشن (Orchestration) زیرساخت را بهصورت کد، مدیریت کنید.
Ansible چگونه کار میکند؟
Ansible بهکمک ماژولهای موجود به مقصد نهایی (endpoint) و مورد نظر شما متصل میشود و دستورات را اجرا میکند. ارتباط شکل گرفته بین Ansible و مقصد نهایی بهصورت پیشفرض با استفاده از SSH انجام میشود و دستورات نیز از همین طریق اجرا میشوند.
بهاین شکل هیچ نیازی به سرورهای اضافی، daemonها و یا دیتابیسها برای استفاده از Ansible و خودکارسازی فرایندها وجود ندارد.
آموزش راهاندازی Docker Compose از طریق Ansible در اوبونتو را در مقاله زیر بخوانید.
راهاندازی Docker Compose با Ansible
Ansible playbook چیست؟
انسیبل پلیبوک (Ansible playbook) را میتوان طرحی از اقدامات لازم برای پیادهسازی یک فرایند خودکار دانست که بدون نیاز به مشارکت انسانی، اجرا میشود. این اقدامات در یک فایل با فرمت YAML نوشته میشوند و درنهایت Ansible playbook نهایی شکل میگیرد که میتوان آن را بر روی مجموعهای از هاستها که یک Ansible inventory را تشکیل میدهند، اجرا کرد.
شروع کار با Ansible
خودکارسازی فرایندها با استفاده از ابزار Ansible بسیار ساده است و هرکسی با هر میزان تجربه میتواند از این ابزار استفاده کند. شما میتوانید با نصب این ابزار کار خود را شروع کنید و در ادامه، ماژولهای مختلف را بشناسید و به نحوهی نوشتن Ansible playbook مسلط شوید. درنهایت میتوانید از این ابزار برای استقرار برنامه، نصب یک نرمافزار، provision کردن زیرساخت و بسیاری دیگر از فرایندهای مشابه استفاده کنید.
کاربرد انسیبل چیست؟
Ansible برای خودکارسازی (Automation) عملیاتهای IT طراحی شده و کاربردهای اصلیاش شامل موارد زیر است:
- پیکربندی سیستمها (Configuration Management)
- استقرار نرمافزار
- آمادهسازی یک cluster دیتابیس
- ساخت VM در AWS، Azure یا GCP
- ثبت دقیق و repeatable تنظیمات زیرساخت
- آمادهسازی منابع برای Kubernetes یا Docker
- بالا آوردن چند کانتینر یا VM به ترتیب خاص
کامپوننتهای انسیبل کدامند؟
Ansible از اجزای کلیدی زیر تشکیل شده است که هر کدام نقش مهمی در خودکارسازی و مدیریت سیستمها ایفا میکنند.
Inventory:
این بخش فهرستی از سیستمها و دستگاههایی است که Ansible باید روی آنها عملیات انجام دهد. این سیستمها که به عنوان هاست شناخته میشوند، میتوانند به صورت استاتیک (تعریف دستی در فایلهایی مانند /etc/ansible/hosts
) یا داینامیک (با استفاده از اسکریپتهایی که از منابع ابری مثل AWS یا GCP لیستها را میگیرند) تعریف شوند.
Modules:
ماژولها واحدهای کاری Ansible هستند که وظایف مختلفی مانند نصب نرمافزار، مدیریت فایلها یا سرویسها را انجام میدهند. این ماژولها میتوانند به صورت محلی یا روی سرورهای مقصد اجرا شوند و به زبانهایی مثل Python، Bash یا Ruby نوشته شدهاند. Ansible بیش از ۷۰۰ ماژول رسمی دارد، مانند ماژول yum
برای مدیریت بستهها در سیستمهای مبتنی بر RPM.
Variables:
متغیرها به شما امکان میدهند تا رفتار playbookها را سفارشی و انعطافپذیر کنید. این متغیرها میتوانند در فایلها، نقشها، خط فرمان یا به صورت سطح هاست تعریف شوند.
Facts:
این بخش شامل اطلاعات سیستم مقصد است که هنگام اجرای playbookها به طور خودکار جمعآوری میشود، مانند نوع سیستمعامل، آدرس IP، مشخصات CPU و میزان حافظه.
Playbooks و Plays:
Playbookها فایلهایی به زبان YAML هستند که شامل مجموعهای از دستورالعملها و وظایف (tasks) برای اجرا روی گروهی از هاستها هستند. هر Play، گروه مشخصی از هاستها را هدف قرار داده و وظایف را به ترتیب اجرا میکند. Playbookها هسته اصلی فرآیند خودکارسازی در Ansible محسوب میشوند.
جمعبندی
پیادهسازی سیستمهای خودکارسازی اغلب با چالشهایی همراه است و بسیاری از سازمانها در این مسیر دچار مشکل میشوند. Ansible بهعنوان یک ابزار قدرتمند و کلیدی، این چالشها را برطرف کرده و فرآیند اتوماسیون را ساده و موثر میسازد. این تکنولوژی بهخصوص برای شرکتهای IT و ارائهدهندگان زیرساخت، نقش حیاتی در مدیریت و خودکارسازی عملیات دارد. در این مطلب از وبلاگ لیارا، با مفهوم Ansible، کاربردهای اصلی آن، مزایا و معماری کلی آن آشنا شدیم.
سوالات متداول
هدف از ایجاد انسیبل چیست؟
خودکارسازی و سادهسازی مدیریت زیرساختها و عملیات IT است تا با کاهش دخالت انسانی، فرایندهای استقرار، پیکربندی و ارکستریشن سیستمها سریعتر انجام شود.
افزونه انسیبل چیست؟
افزونه انسیبل (Ansible Plugin) یک قطعه کد یا ماژول توسعهپذیر است که عملکردهای خاصی را در جریان اجرای انسیبل اضافه یا تغییر میدهد.
آیا انسیبل رایگان است؟
بله، انسیبل (Ansible) نسخه متنباز و رایگان دارد که همه میتوانند بهصورت آزاد از آن استفاده کنند.
آیا برای انسیبل باید Agent نصب کنیم؟
خیر، انسیبل نیازی به نصب Agent روی سرورها ندارد.
منبع: https://www.redhat.com/en/technologies/management/ansible/what-is-ansible