Ansible SSH configuration


  • به منظور نصب 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

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

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