نصب Ansible و نحوه کار با آن

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