داستان از زمانی شروع میشه که مدیران سیستم و برنامهنویسان به شدت دنبال راهی بودند تا بتونن سرورها و سیستمهای خودشون رو به صورت موثر و کارآمد مدیریت کنن. تصور کن یه سرآشپز داری که باید هر روز برای یه لشکر بزرگ غذا بپزه. حالا اگه این سرآشپز مجبور باشه هر غذا رو یکی یکی درست کنه، خیلی طول میکشه و کلی هم انرژی ازش میگیره. ولی اگه بتونه با یه دستورالعمل جامع، همهی غذاها رو با هم آماده کنه، هم سریعتر میشه هم کارش خیلی راحتتر میشه.
مدیران سیستم هم با مشکلات مشابهی روبرو بودن. اونها باید به سرورهاشون دستور بدن، تنظیمات رو تغییر بدن و نرمافزارها رو نصب کنن. ولی اگه بخوان همهی این کارها رو دستی انجام بدن، خیلی زمانبر و پر از خطاست. پس به دنبال یه راهحل جامع میگشتن که بتونه همه این کارها رو خودکار کنه. اینجاست که Ansible وارد داستان میشه!
بذار با یه مثال ساده برات توضیح بدم. فرض کن داری یه لگو بزرگ میسازی. هر قطعهی لگو یه سروره که باید به درستی کنار هم قرار بگیره تا ساختمان نهایی شکل بگیره. Ansible مثل یه نقشه کامل و هوشمند برای این لگوها عمل میکنه که بهت میگه هر قطعه رو کجا بذاری و چطوری به هم وصل کنی.
Ansible یه ابزار خودکارسازی (automation) متنباز و رایگانه که برای مدیریت پیکربندی (configuration management)، استقرار (deployment) نرمافزار، و کارهای خودکارسازی شبکه (network automation) استفاده میشه. با استفاده از Ansible، میتونی به راحتی دستورالعملها و تنظیمات مورد نیاز رو به سرورها و دستگاههای مختلف بفرستی و همهی کارها رو به صورت خودکار انجام بدی.
حالا بیا با هم نگاهی بندازیم به ده تا از کاربردهای برتر Ansible و ببینیم چطور میتونه زندگی ما رو راحتتر کنه:
حالا بیا نگاهی به ویژگیهای جذاب Ansible بندازیم که باعث میشه این ابزار خیلی محبوب بشه.
معماری و نحوه کار Ansible به صورت زیر خلاصه میشه:
وقتی میخوای ابزارهای مدیریت پیکربندی مثل Ansible، Puppet و Chef رو مقایسه کنی، اول باید بدونی که هر کدوم چه ویژگیها و مزایایی دارن. بیا با هم به تفاوتها و شباهتهای این ابزارها نگاهی بندازیم:
بنابراین، اگه دنبال یه ابزار ساده و کارآمد برای مدیریت پیکربندی سرورها هستی، Ansible گزینهی خیلی خوبی میتونه باشه. ولی اگه محیطت خیلی بزرگ و پیچیدهست و دنبال یه ابزار انعطافپذیرتر میگردی، Puppet یا Chef رو هم در نظر بگیر.
چند مورد از شرکتهای معروفی که از این ابزار استفاده میکنن:
نصب Ansible خیلی راحته و با چند تا دستور ساده میتونی این کار رو انجام بدی. بیا با هم مراحل نصب Ansible رو مرور کنیم:
sudo apt update
sudo apt install ansible
ansible --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 متحول کن!
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: