داستان از زمانی شروع میشه که مدیران سیستم و برنامه نویسان به شدت دنبال راهی بودند تا بتونن سرورها و سیستمهای خودشون رو به صورت موثر و کارآمد مدیریت کنن. تصور کن یه سرآشپز داری که باید هر روز برای یه لشکر بزرگ غذا بپزه. حالا اگه این سرآشپز مجبور باشه هر غذا رو یکی یکی درست کنه، خیلی طول میکشه و کلی هم انرژی ازش میگیره. ولی اگه بتونه با یه دستورالعمل جامع، همه ی غذاها رو با هم آماده کنه، هم سریعتر میشه هم کارش خیلی راحتتر میشه.
مدیران سیستم هم با مشکلات مشابهی روبرو بودن. اونها باید به سرورهاشون دستور بدن، تنظیمات رو تغییر بدن و نرم افزارها رو نصب کنن. ولی اگه بخوان همه ی این کارها رو دستی انجام بدن، خیلی زمان بر و پر از خطاست. پس به دنبال یه راه حل جامع میگشتن که بتونه همه این کارها رو خودکار کنه. اینجاست که Ansible وارد داستان میشه!
بذار با یه مثال ساده برات توضیح بدم. فرض کن داری یه لگو بزرگ میسازی. هر قطعه ی لگو یه سروره که باید به درستی کنار هم قرار بگیره تا ساختمان نهایی شکل بگیره. Ansible مثل یه نقشه کامل و هوشمند برای این لگوها عمل میکنه که بهت میگه هر قطعه رو کجا بذاری و چطوری به هم وصل کنی.
Ansible یه ابزار خودکارسازی (automation) متن باز و رایگانه که برای مدیریت پیکربندی (configuration management)، استقرار (deployment) نرم افزار، و کارهای خودکارسازی شبکه (network automation) استفاده میشه. با استفاده از Ansible، میتونی به راحتی دستورالعملها و تنظیمات مورد نیاز رو به سرورها و دستگاههای مختلف بفرستی و همه ی کارها رو به صورت خودکار انجام بدی.

حالا بیا با هم نگاهی بندازیم به ده تا از کاربردهای برتر Ansible و ببینیم چطور میتونه زندگی ما رو راحتتر کنه:
حالا بیا نگاهی به ویژگیهای جذاب Ansible بندازیم که باعث میشه این ابزار خیلی محبوب بشه.


معماری و نحوه کار Ansible به صورت زیر خلاصه میشه:
وقتی میخوای ابزارهای مدیریت پیکربندی مثل Ansible، Puppet و Chef رو مقایسه کنی، اول باید بدونی که هر کدوم چه ویژگیها و مزایایی دارن. بیا با هم به تفاوتها و شباهتهای این ابزارها نگاهی بندازیم:
بنابراین، اگه دنبال یه ابزار ساده و کارآمد برای مدیریت پیکربندی سرورها هستی، Ansible گزینه ی خیلی خوبی میتونه باشه. ولی اگه محیطت خیلی بزرگ و پیچیده ست و دنبال یه ابزار انعطاف پذیرتر میگردی، Puppet یا Chef رو هم در نظر بگیر.
چند مورد از شرکتهای معروفی که از این ابزار استفاده میکنن:
نصب Ansible خیلی راحته و با چند تا دستور ساده میتونی این کار رو انجام بدی. بیا با هم مراحل نصب Ansible رو مرور کنیم:
sudo apt updatesudo apt install ansibleansible --versionاین دستور باید نسخه Ansible نصب شده رو بهت نشون بده.
حالا که Ansible نصب شده، میتونی استفاده ازش برای مدیریت زیرساخت هات رو شروع کنی. بیا با هم یه مثال ساده از ایجاد و اجرای یه Playbook رو ببینیم:
---
- hosts: all
tasks:
- name: Say hello
command: echo "Hello, world!"این Playbook دستور echo "Hello, world!" رو روی همه نودهایی که Ansible مدیریت میکنه، اجرا میکنه.
ansible-playbook my_playbook.ymlاین دستور Playbook رو اجرا میکنه و تغییرات مشخص شده رو اعمال میکنه.
Playbookهای Ansible میتونن خیلی ساده یا خیلی پیچیده باشن. میتونی از Ansible برای مدیریت تمام جنبههای زیرساختت استفاده کنی، از سرورها گرفته تا شبکهها و اپلیکیشن ها.
برای نوشتن Playbookهای پیچیده تر، میتونی از منابع زیر استفاده کنی:
حالا بیا یه مثال پیچیدهتر از Playbook رو ببینیم که چطور میتونی سرور Apache رو نصب و راه اندازی کنی:
---
- hosts: webservers
tasks:
- name: Install the Apache web server package
apt:
name: apache2
state: present
- name: Start the Apache web server
service:
name: apache2
state: started
- name: Copy the web server configuration file
copy:
src: /etc/apache2/sites-available/default
dest: /etc/apache2/sites-enabled/default
- name: Restart the Apache web server
service:
name: apache2
state: restartedاین Playbook پکیج سرور Apache رو نصب میکنه، سرور رو استارت میکنه، فایل پیکربندی سرور رو کپی میکنه و در نهایت سرور Apache رو ری استارت میکنه.

Ansible یه ابزار خودکارسازی برای مدیریت پیکربندی و استقرار نرم افزارهاست که به زبان Python نوشته شده و از طریق SSH ارتباط برقرار میکنه.
بله، Ansible یه ابزار متن باز و رایگانه که توسط Red Hat توسعه داده شده.
برای نصب Ansible فقط کافیه از مدیر بسته ی سیستم عاملت استفاده کنی. مثلا توی Ubuntu میتونی از دستور sudo apt install ansible استفاده کنی.
نه، Ansible میتونه برای خودکارسازی تنظیمات شبکه، دستگاههای IoT، و حتی کانتینرها هم استفاده بشه.
Playbook فایلهای YAML هستن که دستورالعملها و وظایف (tasks) مورد نیاز برای انجام خودکارسازی رو تعریف میکنن.
نه، یکی از مزایای بزرگ Ansible اینه که نیازی به نصب هیچ عاملی روی سرورها نداره و از طریق SSH به سرورها متصل میشه.
بله، ولی ممکنه نیاز به تنظیمات و بهینه سازیهای خاصی داشته باشه تا بهترین عملکرد رو ارائه بده.
Ansible Tower یه نسخه تجاری و پیشرفته از Ansible هست که امکاناتی مثل رابط کاربری گرافیکی، گزارش گیری و مدیریت پیشرفته رو فراهم میکنه.
بله، Ansible از اکثر سیستم عاملهای محبوب مثل Linux، Windows و macOS پشتیبانی میکنه.
نه، Ansible یکی از سادهترین ابزارهای خودکارسازی برای یادگیریه، به خصوص به خاطر استفاده از YAML که زبان ساده و خواناییه.
Ansible یکی از قدرتمندترین و سادهترین ابزارهای خودکارسازی در دنیاست که بهت کمک میکنه سرورها و سیستمهای خودت رو به صورت موثر مدیریت کنی. با استفاده از Ansible میتونی زمان و انرژی خودت رو ذخیره کنی و احتمال خطاها رو به حداقل برسونی. حالا که با این ابزار آشنا شدی، وقتشه که شروع کنی و از امکانات بی نظیرش بهره ببری. آماده ای؟ پس دست به کار شو و دنیای خودت رو با Ansible متحول کن!
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: