یکی از ابزارهایی که در زمینه ی Automation tool وجود دارد، Ansible می باشد. Ansible با زبان پایتون نوشته شده است و به صورت آزاد، رایگان و Open Source منتشر می شود. یکی از مزیت های خوب Ansible نسبت به سایر Automation tool های دیگر مانند Chef یا Puppet این می باشد که نیاز به نصب Agent بر روی Node ها ندارد و تنها با SSH با Node ها ارتباط برقرار می کند.
با استفاده از Ansible می توان نصب بسته های نرم افزاری، پیکربندی سرویس ها و سیستم عامل، بروزرسانی بسته های نرم افزاری و سایر کارها را به صورت خودکار انجام داد.در ادامه ی این مطلب قصد داریم تا Ansible را نصب کنیم و چند مثال از نحوه ی کار با آن را آموزش دهیم.
نصب Ansible بر روی فدورا :
برای نصب Asible بر روی فدورا کافیست تا دستور زیر را اجرا کنید :
# dnf install ansible
نصب Ansible بر روی CentOS :
برای نصب Ansible بر روی CentOS ایتدا مخازن EPEL را نصب کنید :
# yum install epel-release
پس از اضافه کردن مخزن کافیست تا دستور زیر را اجرا کنید :
# yum install ansible
جهت بررسی نسخه ی Ansible کاقیست تا دستور زیر را اجرا کنید :
# ansible --version
کار با Ansible :
همانطور که گفته شد، Ansible از طریق SSH با Node ها ارتباط برقرار می کند. از این رو نیاز هست تا سرویس SSH بر روی Node هایی که قصد دارید آنها را با Ansible کنترل و مدیریت کنید، نصب و فعال باشد. اکنون برای ارتباط Ansible Server با سایر Node ها نیاز هست تا ssh-key بر روی Ansible Server ایجاد کنید (اگر از قبل وجود دارد نیاز نیست) و Public key را بر روی Node ها کپی کنید.برای ساخت ssh-key باید دستور زیر را اجرا کنید :
# ssh-keygen
اکنون برای کپی کردن Public key بر روی Node ها کافیست تا دستور زیر را اجرا کنید :
# ssh-copy-id [email protected]
IP نوشته شده در دستور بالا، آدرس یکی از Node هایی می باشد که قصد داریم تا با Ansible آن را مدیریت کنیم.برای سایر Node ها همین فرایند کپی کردن Public key باید تکرار شود.
گام بعدی معرفی Node ها به Ansible می باشد که برای این کار Ansible یک فایل inventory دارد که به صورت پیش فرض آن را فراخوانی می کند. برای اضافه کردن Node ها کافیست فایل inventory را باز کنید :
# vi /etc/ansible/hosts
سپس آدرس Node های خود را درون فایل بنویسید :
192.168.10.60
یا اینکه می توانید Node ها را گروه بندی کنید :
[test-servers]
192.168.10.61
192.168.10.62
اکنون برای اجرای دستورات بر روی Node ها از طریق Ansible Server می توان از روش های زیر استفاده کرد.به عنوان نمونه برای ping کردن همه ی Node ها :
# ansible -m ping all
برای ping کردن گروهی از Node ها که نام گروه انها test-servers می باشد می توان از دستور زیر استفاده کرد :
# ansible -m ping 'test-servers'
برای بررسی نسخه Kernel که بر روی Node هایی که در گروه test-servers قرار دارند می توان از دستور زیر استفاده کرد :
# ansible -m command -a "uname -r" 'test-servers'
برای ذخیره ی خروجی یک دستور می توان به شکل زیر عمل کرد :
# ansible -m command -a "df -Th" 'test-servers' > /tmp/command-output.txt
امید است تا از این مطلب استفاده ی لازم را برده باشید.