- به منظور نصب Ansible میتوان از مخازن رسمی توزیع استفاده نمود. همچنین از آنجایی که Ansible به صورت Agentless میباشد، نیازی به نصب برنامهای خاص بر روی خادمها نمیباشد.
- جهت اتصال به خادمهای تحت مدیریت از پروتکل SSH استفاده میشود، لذا لازم است سرویس SSH بر روی این خادمها نصب و طوری تنظیم شده باشد که برای اتصال از خادم مرکزی، نیازی به وارد کردن کلمه عبور نباشد.
- یعنی اصطلاحا اتصال به خادمهای تحت مدیریت به صورت بدون کلمه عبور، صورت گیرد.
- برای این منظور ابتدا سرویس SSH را بر روی هر یک از خادمهای تحت مدیریت نصب کنید.
- برای نصب بر روی سیستم عامل Debian و Ubuntu به صورت زیر عمل کنید :
# apt install openssh-server
- برای نصب بر روی سیستم عامل CentOS به صورت زیر عمل کنید :
# yum install openssh-server
- در نهایت پرونده تنظیمات سرویس SSH را از مسیر زیر باز کنید :
/etc/ssh/sshd_config
- به دنبال عبارت PermitRootLogin بگردید و مقدار آن را برابر با no قرار دهید.
PermitRootLogin no
- در نهایت در آخر پرونده، متون زیر را اضافه کنید :
# permit root login Match Address 192.168.10.10 PermitRootLogin yes
- نکته: در صورتی که از آدرس دامنه استفاده میکنید، میتوانید به شکل زیر عمل کنید :
# permit root login Match Host central.lab.local PermitRootLogin yes
- لطفا توجه فرمایید که آدرس 192.168.10.10 و central.lab.local فرضی بوده و باید تغییر یابند.
- تنظیمات بالا باعث میشود تا اتصال از طریق کاربر root تنها از خادم مرکزی امکان پذیر باشد.
- در نهایت کافیست یک بار سرویس SSH در هر یک از خادمهای تحت مدیریت، راهاندازی مجدد شود. برای این منظور :
# systemctl restart ssh
- برای بررسی تنظیمات انجام شده، از داخل خادم مرکزی به هر یک از خادمهای تحت مدیریت از طریق کاربر root متصل شوید.
- تا به این مرحله تنظیمات مربوط به سرویس SSH در خادمهای تحت مدیریت گفته شد.
- حال برای اتصال به خادمهای تحت مدیریت بدون وارد کردن کلمه عبور مراحل زیر را دنبال کنید :
- ابتدا وارد خادم مرکزی شده بر روی آن دستور زیر را وارد کنید :
# ssh-keygen
- سوالات را به دقت پاسخ دهید. (نیازی به استفاده از passphrase نمیباشد.)
- با استفاده از دستور بالا، کلید عمومی و خصوصی مربوط به خادم مرکزی ساخته میشود.
- حال کافیست کلید عمومی خادم مرکزی به خادمهای تحت مدیریت انتقال پیدا کند. برای این منظور :
# ssh-copy-id root@192.168.1.200
- لطفا توجه داشته باشید که آدرس 192.168.1.200 فرضی بوده و باید تغییر یابد.
- لطفا توجه داشته باشید که دستور بالا متناسب و به ازای هر یک از خادمهای تحت مدیریت باید اجرا شود.
- با استفاده از تنظیمات بالا، اتصال خادم مرکزی به هر یک از خادمهای تحت مدیریت، بدون کلمه عبور صورت خواهد گرفت.
- برای بررسی تنظیمات صورت گرفته، به هر یک از خادمهای تحت مدیریت متصل شوید.
- نکته: ممکن است پورت پیشفرض اتصال به پروتکل SSH در هر یک از خادمهای تحت مدیریت متفاوت باشد. به عنوان مثال ممکن است در یکی از خادمها از پورت 22 و در دیگری از پورت 2233 و در دیگری از 1234 استفاده شده باشد.
- در این حالت نیاز است مشخص شود که اتصال به هر یک از خادمهای تحت مدیریت با چه پورتی صورت گیرد.
- برای این منظور کافیست ابتدا پروندهی زیر را ایجاد سپس با یک ویرایشگر باز کنید :
# touch ~/.ssh/config
- سپس خطوط زیر را داخل آن وارد کنید :
host 192.168.1.1 port 22 host 192.168.1.2 port 2222 host 192.168.1.3 port 1234
- نکته: آدرس های IP گفته شده در کد بالا مثال بوده و باید متناسب با خادمهای تحت مدیریت جایگزین شوند.
- نکته: شماره پورتهای گفته شده در کد بالا مثال بوده و باید متناسب با خادمهای تحت مدیریت جایگزین شوند.
- نکته: با اعمال تغییرات بالا، دیگر نیازی به درج شماره پورت در زمان اتصال به هر یک از خادمها نیست.
- به عنوان مثال به خادم با آدرس 192.168.1.3 و پورت 1234 به صورت زیر میتوان متصل شد :
# ssh root@192.168.1.3
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04