Ansible connection test


  • به منظور بررسی و آزمایش اتصال میان خادم مرکزی و خادم‌های تحت مدیریت مراحل زیر را دنبال کنید.
  • ابتدا یک پرونده با نام hosts.list یا هر نام دلخواه دیگر ایجاد کنید. برای این منظور :
# touch hosts.list
  • سپس پرونده‌ی ساخته شده را با یک ویرایشگر باز کنید. برای این منظور :
# nano hosts.list
  • در نهایت آدرس خادم‌های تحت مدیریت را به شکل زیر وارد کنید :
[centos-servers]
172.16.0.245

[ubuntu-servers]
172.16.0.248

[debian-servers]
172.16.0.247
  • نکته: می‌توان به جای آدرس IP از نام دامنه استفاده نمود.
  • نکته: نام‌های centos-servers و ubuntu-servers و debian-servers مثال بوده و باید تغییر یابند.
  • نکته: در زیر نام هر گروه، آدرس IP یا دامنه‌ی خادم‌های تحت مدیریت نوشته می‌شود.
  • در مرحله بعد برای بررسی و آزمایش فهرست ایجاد شده به صورت زیر عمل کنید :
# ansible -i hosts.list all --list-hosts
  • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
  hosts (3):
    172.16.0.245
    172.16.0.248
    172.16.0.247
  • نکته: کلمه‌ی all اشاره به تمام گروه‌ها و خادم‌های تحت مدیریت دارد.
  • در نهایت برای آزمایش و بررسی اتصال میان خادم مرکزی و خادم‌های تحت مدیریت به صورت زیر عمل کنید :
# ansible -i hosts.list all -m ping
  • ممکن است خطایی مشابه خطای زیر را دریافت کنید :
172.16.0.247 | FAILED! => {
    "changed": false,
    "module_stderr": "Shared connection to 172.16.0.247 closed.\r\n",
    "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n",
    "msg": "MODULE FAILURE",
    "rc": 127
}
  • همان طور که در متن خطا اشاره شده است، پرونده Python در مسیر usr/bin/ موجود نمی‌باشد.
  • اصولا این پرونده و پرونده‌ی Python3 از جنس Symbolic Link می‌باشند.
  • عدم یافت پرونده‌ی Python نشان از آن دارد که در سیستم مقصد، بسته‌ی Python نسخه ۲ نصب نمی‌باشد.
  • برای حل این موضوع می‌توان از سه روش زیر استفاده کرد :
    • روش اول) نصب بسته‌ی Python نسخه ۲ بر روی سیستم مقصد به صورت دستی
    • روش دوم) ساخت یک Symbolic Link با نام Python از روی پرونده‌ی اجرایی Python نسخه ۳ (پیشنهادی)
    • روش سوم) استفاده از متغیر محلی ansible_python_interpreter به صورت زیر :
# ansible -i hosts.list all -m ping -e ansible_python_interpreter=/usr/bin/python3
  • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
172.16.0.245 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
  • همان طور که در خروجی بالا مشخص است، عبارت SUCCESS به معنی اجرای موفقیت آمیز ماژول چاپ شده است.
  • همچنین عبارت changed بیان‌گر این می‌باشد که آیا تغییراتی بر روی سیستم مقصد صورت گرفته است یا خیر

  • آزمایش شده بر روی Ansible نسخه‌ی 2.5.1
  • آزمایش شده بر روی سیستم عامل Ubuntu 18.04

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

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