نحوه نصب و راه اندازی Ansible برروی Ubuntu 18 و CentOS 7- بخش 1

برای نصب نیاز به یکی از سیستم عامل های :

  • CentOS
  • Free BSD
  • Ubuntu
  • MAC OS
  • Debian

نصب Ansible روی هر دو سرور Ubuntu و CentOS نمایش داده شده ولی مابقی مراحل روی سرور CentOS انجام می گردد.

نصب برروی CentOS

قمد اول نصب repository است :

sudo yum install epel-release
sudo yum install ansible

بعد از این مرحله دستور زیر رو اجرا کنید که از ورژن نصب شده مطمئن بشین

ansible --version

نصب برروی Ubuntu 18

sudo apt-get install software-properties-common

sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt-get install ansible

ansible –version

مفهوم Control Node : هر دستگاهی که روی آن Ansible نصب شده باشه یک Control Node ه ولی ویندوز نمیتونه یک Control Node باشه.

اما به سروری که مدیریت می شود Managed Host می گویند، و تمامی آنها در یک فایلی به نام Host Inventory روی Control Node تنظیم و نگهداری می گردد.

Syntax کامند ها

به طور کلی کامندهای Ansible به شکل زیر است

Ansible -m command -a “uptime” dev

در بالا با m- ماژول رو انتخاب می کنیم که در اینجا نام ماژول Command است ( انسیبل داری 1375 ماژول است)

همچنین uptime کامندی است که باید روی سرور اجرا شوأ

و در نهایت dev که گروهی از سرورهاست

مثلا، اگر بخواهیم یک کامند روی تعدای از دیتابیس سرورهامون اجرا بشه، مراحل کار به این صورته که :

  • در ابتدا یک فایل Inventory شامل گروه های سرورها ساخته می شود، که همان Managed Host ها هستند. آدرس این فایل درون /etc/ansible/hosts هست .
  • همانطور که در تصویر زیر اومده وب سرورها در یک گروه و دیتابیس سرور ها هم در گروهی دیگر آمده است

اما بهتره همیشه یه گروهی داشته باشیم که کل سرورهامون اونجاست بخاطر همین من یه گروه linuxgroup هم اضافه میکنم به گروه ها

اگر خواستیم لیست سرورهای هر گروه رو ببینیم با این کامند این کار رو انجام میدیم

ansible --list-hosts [name of group]

همچنین داخل این فایل می توانیم، مشخصات هاست، پورت مربوطه، نام کاربری که Ansible می خواهد با ان متصل شود را در مقابل هر Host قرار دهیم.

اگر خواستیم که یک رنج از ای پی را در Host Inventory ثبت کنیم بدین صورت این کار انجام می شود

مثلا برای اینکه تمام ای پی های بین رنج 192.168.4.0 تا 192.168.7.255 اعمال شود بدین صورت وارد می شود

192.168.[4:7].[0:2455]

یا همینطور برای نام سرورها مثلا برای سرورهای بین 10 تا 20 :

vm-[10:20].vmehrabi.com

نکاتی در فایل تنظیمات Ansible روی سرور

این تنظیمات رو روی سرور CentOS فعلا انجام نمی دهیم ولی برای اطلاعات خوب است بدانیم:

  • به صورت پیش فرض فایل کانفیگ در /etc/ansible/ansible.cfg موجود است
  • اگر خواستیم یوزری وصل می شود با مجوز یوزر root متصل شود در فایل تنظیمات قسمت [privilege_escalation] یک ورودی با نام become=True قرار می دهیم.
  • برای اینکه اپشن قبلی انجام شود یک کامند لازم است که با ورودی become_method = sudo به ان معرفی میکنیم.
  • سپس یوزری که باید با آن به مجوز روت برسد را معرفی میکنیم become_user =root
  • اگر خواستیم که پسورد را در هنگام گرفتن این مجوز بپرسد این ورودی را وارد می کنیم become_ask_pass= True

تنظیمات روی سرور Ansible

سپس روی این سرور یک یوزر با نام ansuser می سازیم

نکته : اسم سرور رو به ansible-srv-1 تغییر دادم تا کنسول ها بهتر شناسایی بشه

تنظیمات روی Managed Host ها

  • معمولا روی Managed هاست ها اگرلازم باشه با ماژول های مختلفی کار کنیم باید Python رو روی اونها هم نصب کنیم
  • اول از هر چیزی باید یک یوزر روی Managed Host ها ساخته بشه که در اینجا من نام یوزر رو ansuser میزارم
  • بعد از ساخته شدن این فرمان passwd ansuser رو میزنم تا یک پسورد براش تعریف کنم.
  • بعد از این مرحله یک فولدر داخل Homefolder یوزری که ساختم درست میکنم برای اینکار اول از هر چیزی با اون یوزر وارد میشم . منظور از هوم فولدر /home/ansuser است.
su - ansuser
  • و سپس مطابق شکل یک فولدر میسازم و بهش دسترسی می دم
mkdir /home/ansuser/.ssh
chmod 700 /home/ansuser/.ssh/

روی تمامی کلاینت هایی که قراره Ansible اونهارو مدیریت کنه این عملیان رو انجام میدم.

تنظیمات روی سرور

  • سپس با دستور زیر کلید عمومی و خصوصی را برای این یوزر روی سرور اینجاد می کنیم.
ssh-keygen

سپس به پوشه .ssh رفته

cd /home/ansuser/.ssh

حال publickey روی سرور رو روی تمامی کلاینت ها کپی میکنیم

scp -p id_rsa.pub db.vmehrabi.com:/home/ansuser/.ssh/authorized_keys
scp -p id_rsa.pub web.vmehrabi.com:/home/ansuser/.ssh/authorized_keys

برای سرور db هم به همین ترتیب:

اجرای چند کامند آزمایشی

برای اینکه از درستی تنظیمات مطمئن شویم این دستور را روی سرور اجرا میکنیم تا کامند uptime را روی سرورها اجرا کند

ansible -m command -a "uptime" hosts

همانطور که در شکل بالا می بینیم کامند برای این گروه ها اجرا شده است این گروه ها همان هایی هستند که در قسمت قبل در فایل /etc/ansible/hosts که فایل پیش فرض Host Inventory بود ذخیر شده بودند.

همچنین برای اینکه یک کامند روی تمامی سرورها اجرا شود می توان از گروه linuxgroup استفاده کرد:

ansible -m command -a "cat /etc/redhat-release" linuxgroup


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *