Ansible چیست ؟
Ansible یک ابزار اتوماسیون IT متنباز و بدون نیاز به عامل است که زیرساخت به عنوان کد (IaC) و مدیریت پیکربندی را فراهم میکند. این ابزار به صورت ساده، قدرتمند و قابل مقیاس طراحی شده است و به همین دلیل یک انتخاب محبوب برای مدیریت محیطهای IT پیچیده است.
ویژگیها و مزایای کلیدی Ansible:
- معماری بدون عامل: Ansible نیاز به نصب هیچ نرمافزاری روی سیستمهای هدف ندارد. این ابزار از SSH یا Windows Remote Management (WinRM) برای ارتباط با گرههای مدیریت شده استفاده میکند که آن را سبک و آسان برای استقرار میکند.
- زبان اظهاری: Ansible از یک زبان اظهاری استفاده میکند که وضعیت مطلوب سیستم را توصیف میکند نه مراحل دستیابی به آن. این موضوع باعث خوانا و قابل نگهداری بودن پیکربندی میشود.
- دفترچههای بازی: واحد اجرای اصلی Ansible “دفترچه بازی” است که یک فایل مبتنی بر YAML است که وظایف انجام شده روی سیستمهای مدیریت شده را تعریف میکند. دفترچههای بازی به راحتی قابل کنترل نسخه و اشتراکگذاری میان تیمها هستند.
- ماژولها: Ansible دارای کتابخانه گستردهای از “ماژولهای” از پیش ساختهشده است که وظایف مختلفی مانند مدیریت بسته، کنترل سرویس، دستکاری فایل و مدیریت زیرساخت ابری را انجام میدهند. توسعهدهندگان همچنین میتوانند ماژولهای سفارشی ایجاد کنند تا قابلیتهای Ansible را گسترش دهند.
- یکپارچگی: وظایف Ansible به گونهای طراحی شدهاند که ایدمپوتنت هستند، به این معنی که اجرای مجدد همان وظیفه چندین بار، وضعیت مطلوب سیستم را تغییر نخواهد داد. این موضوع باعث یکپارچگی و قابل پیشبینی بودن زیرساخت میشود.
- اجرای موازی: Ansible میتواند وظایف را به صورت موازی در میان چندین میزبان اجرا کند، که آن را برای مدیریت محیطهای بزرگ مقیاس کارآمد میسازد.
- مدیریت انبار: Ansible از یک فایل “انبار” برای تعریف میزبانهای مدیریت شده، جزئیات اتصال آنها و گروهبندی آنها برای مدیریت آسانتر استفاده میکند.
- معماری مبتنی بر نقش: Ansible از معماری مبتنی بر نقش پشتیبانی میکند که به شما امکان میدهد وظایف، متغیرها و وابستگیهای مرتبط را در قالب اجزای قابل استفاده مجدد کپسوله کنید.
- اجرای شرطی: Ansible انواع گزارههای شرطی، حلقهها و سایر ساختارهای کنترلی را برای مدیریت منطق پیچیده در دفترچههای بازی ارائه میدهد.
- قابلیت گسترش: Ansible را میتوان با ماژولهای سفارشی، پلاگینها و اسکریپتهای انبار پویا گسترش داد و باعث افزایش انعطافپذیری و سازگاری آن با انواع موارد استفاده مختلف میشود.
Ansible به طور گستردهای برای انواع مختلف وظایف اتوماسیون IT استفاده میشود، مانند:
- مدیریت پیکربندی: اطمینان از پیکربندی یکپارچه و قابل تکرار در میان چندین سیستم.
- استقرار برنامهها: اتوماسیون استقرار برنامهها و سرویسها.
- ارکسترشن: هماهنگی سیستمها و جریانهای کاری چند لایه پیچیده.
- تأمین: تأمین خودکار و مدیریت زیرساخت، از جمله منابع ابری.
- امنیت و انطباق: اعمال خطمشیهای امنیتی و اطمینان از انطباق در سراسر زیرساخت.
سادگی، انعطافپذیری و توانایی Ansible در کار با طیف گستردهای از سیستمعاملها و پلتفرمهای ابری، آن را به انتخاب محبوبی برای سازمانهای کوچک و بزرگ جهت بهینهسازی عملیات IT و بهبود مدیریت زیرساخت تبدیل کرده است.
اموزش نصب Ansible در لینوکس
- نصب Python: Ansible نیاز به نصب Python در گره کنترل (ماشینی که Ansible در آن نصب خواهد شد) دارد. بیشتر توزیعهای لینوکس با Python پیشنصب شدهاند، اما میتوانید نسخه آن را با اجرای دستور زیر بررسی کنید:
python --version
اگر Python نصب نشده باشد یا نسخه آن قدیمیتر از ۲.۷ باشد، باید آن را نصب یا ارتقا دهید.
- نصب Ansible: روش نصب Ansible بستگی به توزیع لینوکس شما دارد. اینجا مراحل برای برخی از توزیعهای محبوب آورده شده است:
Ubuntu/Debian:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
CentOS/RHEL:
sudo yum install epel-release
sudo yum install ansible
Fedora:
sudo dnf install ansible
Arch Linux:
sudo pacman -S ansible
- بررسی نصب: پس از اتمام نصب، میتوانید صحت نصب Ansible را با اجرای دستور زیر بررسی کنید:
ansible --version
این دستور نسخه نصب شده Ansible را نمایش میدهد.
- پیکربندی Ansible: فایل پیکربندی Ansible در مسیر
/etc/ansible/ansible.cfg
قرار دارد. میتوانید این فایل را ایجاد یا ویرایش کنید تا رفتار Ansible را سفارشیسازی کنید، مانند تنظیم فایل انبار پیشفرض، کاربر راه دور یا گزینههای اتصال SSH. - ایجاد یک انبار: Ansible از یک فایل “انبار” برای تعریف میزبانها (سرورها، ماشینهای مجازی و غیره) استفاده میکند که میخواهید مدیریت کنید. بهطور پیشفرض، Ansible به دنبال فایل انبار در مسیر
/etc/ansible/hosts
میگردد. میتوانید این فایل را ایجاد یا ویرایش کنید تا جزئیات اتصال برای میزبانهای هدف خود را شامل شود.
اینجا یک مثال از فایل انبار آورده شده است:
[webservers]
web01 ansible_host=192.168.1.101
web02 ansible_host=192.168.1.102
[databases]
db01 ansible_host=192.168.1.103
db02 ansible_host=192.168.1.104
- آزمون اتصال: پس از تنظیم فایل انبار، میتوانید اتصال به میزبانهای مدیریت شده را با اجرای دستور زیر آزمایش کنید:
ansible all -m ping
این دستور تلاش میکند به تمام میزبانهای در فایل انبار متصل شود و تأیید کند که Ansible میتواند با آنها ارتباط برقرار کند.
این فرآیند پایهای برای نصب Ansible در یک سیستم لینوکس است. از اینجا میتوانید به استکشاف ویژگیهای Ansible مانند ایجاد دفترچههای بازی، استفاده از ماژولها و اتوماسیون وظایف مدیریت زیرساخت خود بپردازید.