اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

استفاده از DSH یا Distributed Shell برای اجرا کرد دستورات لینوکسی در چندین ماشین

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    استفاده از DSH یا Distributed Shell برای اجرا کرد دستورات لینوکسی در چندین ماشین

    تمامی ادمین های سیستم از اهمیت مانیتور و مدیریت ماشین های زیاد در مدت زمان کوتاه مطلع هستند و این عملیات ترجیحا و تا حد ممکن باید با کوتاه ترین پروسه اجرایی انجام شود. خواه یک محیط ابری کوچک باشد یا یک سرور کلاستر بزرگ در هر حال امکان مدیریت متمرکز سیستم ها ضروریست.
    دستور dsh در لینوکس



    ابزار DSH به کاربر این امکان را میدهد که دستورات را روی چندین سرور اجرا کند.


    همچنین توصیه میشود مطالعه کنید :

    دستور pssh برای اجرا کردن دستورات روی چندین سرور ریموت لینوکسی با استفاده تنها از یک ترمینال

    نصب و راه اندازی Puppet در لینوکس برای اتوماتیک کردن تسک های مدیریتی IT

    نحوه نصب و راه اندازی Ansible در لینوکس - بخش اول



    DSH چیست؟

    DSH در حقیقت مخفف “Distributed Shell” یا “Dancer’s Shell” میباشد که به صورت رایگان روی اکثر توزیع های اصلی لینوکس در دسترس است و در صورتی که توزیع شما ریپازیتوری این پکیج را ارائه نداده باشد به آسانی از طریق سورس قابل نصب میباشد. شما میتوانید سورس آن را از لینک زیر دریافت کنید :



    نصب DSH در Linux :

    در اینجا محیط تستی ما Debian/Ubuntu میباشد اگر شما از توزیع دیگری استفاده میکنید لطفا کامندهای مناسب برای سیستم تان را جایگزین کنید.

    روی Debian/Ubuntu :
    ابتدا پکیج را با استفاده از apt نصب میکنیم :
    کد:
    $ sudo apt-get install dsh

    روی RHEL/CentOS/Fedora :
    این روش برای آن دسته از کسانی که از دبیان استفاده نمیکنند و میخواهند سورس tar balls آن را کامپایل کنند. ابتدا باید “libdshconfig” را کامپایل و نصب کنیم :
    کد:
    # wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
    # tar xfz libdshconfig*.tar.gz
    # cd libdshconfig-*
    # ./configure ; make
    # make install
    سپس dsh را کامپایل و نصب کنید :
    کد:
    # wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz
    # tar xfz dsh-0.22.0.tar.gz
    # cd dsh-*
    # ./configure ; make
    # make install
    فایل اصلی همه تنظیمات روی سیستم دبیان در مسیر “/etc/dsh/dsh.conf” و روی سیستم ردهت در مسیر “/usr/local/etc/dsh.conf” میباشد اما از آنجایی که rsh یک پروتکل encrypt نشده میباشد ما از ssh به عنوان remote shell استفاده میکنیم. با استفاده از ادیتور مورد نظرتان در فایل تنظیمات DSH دنبال خط زیر بگردید :
    کد:
    remoteshell =rsh
    و آن را همانند زیر تغییر دهید :
    کد:
    remoteshell =ssh
    آپشن های دیگری هستند که شما در اینجا میتوانید پاس دهید که میتوانید آنها را از صفحه man دستور dsh پیدا کنید. در اینجا ما تنظیمات پیش فرض را قبول داریم و به فایل بعدی که روی سیستم عامل دبیان در مسیر /etc/dsh/machines.list قرار دارد نگاهی میاندازیم.

    در سیستم های ردهت بیس شما باید فایلی با نام “machines.list” در مسیر “/usr/local/etc/” بسازید.

    ساختار آن نسبتا ساده است همه آن چیزی که باید انجام دهید وارد کردن جزییات یک ماشین (Hostname, IP Address, FQDN) هرکدام در یک خط میباشد.

    توجه : هنگامی که به بیشتر از یک ماشین به صورت همزمان دسترسی میابیم باید روی تمامی ماشین ها key-based password-less SSH را تنظیم کنیم. نه تنها دسترسی را آسان میکند بلکه از لحاظ امنیتی ماشین شما را سخت تر میکند.

    روی سیستم من فایل “/etc/dsh/machines.list” یا “/usr/local/etc/machines.list” به شرح زیر میباشد :
    کد:
    172.16.25.125
    172.16.25.126
    بعد از اینکه جزییات ماشین هایی که میخواهید به آنها دسترسی داشته باشید را وارد کردید دستور ساده ای مانند uptime را برای تمامی ماشین ها اجرا کنید :
    کد:
    $ dsh –aM –c uptime
    نمونه خروجی :
    کد:
    172.16.25.125: 05:11:58 up 40 days, 51 min, 0 users, load average: 0.00, 0.01, 0.05
    172.16.25.126: 05:11:47 up 13 days, 38 min, 0 users, load average: 0.00, 0.01, 0.05

    این کامند چه کاری انجام میدهد؟

    بسیار ساده است. ابتدا ما دستور dsh را اجرا کردیم و آپشن -a را به آن پاس دادیم که این آپشن میگوید دستور uptime به همه “ALL” ماشین های لیست شده در فایل “/etc/dsh/machines.list“ ارسال شود.

    سپس ما آپشن “–M” مشخص کردیم که نام ماشین “machine name” (نامی که در فایل “/etc/dsh/machines.list“ مشخص شده است) را به همراه خروجی دستور uptime برمیگرداند. (این آپشن بسیار مفید است خصوصا در مواردی که یک دستور روی تعداد زیادی ماشین اجرا میشود)

    آپشن “–c” به معنای انتخاب دستوری که برای اجرا روی ماشین هاست میباشد که در مثال بالا دستور uptime را با استفاده از این آپشن مشخص کردیم. (“command to be executed”)

    ابزار DSH همچنین میتواند با گروهی از ماشین ها که در فایل “/etc/dsh/groups/” مشخص شده اند تنظیم شود که این فایل شامل لیستی از ماشین هاست که به فرمت یکسانی همانند فایل “/etc/dsh/machines.list” میباشد. زمانی که dsh را روی گروه اجرا میکنیم باید با استفاده از آپشن “-g” نام گروه (groupname) را مشخص کنیم.

    در سیستم های ردهت بیس شما باید فولدری با نام “groups” در مسیر “/usr/local/etc/” ایجاد کنید. در دایرکتوری “groups” باید فایل با نام “cluster“ بسازید.

    برای مثال برای اجرا کردن دستور “w” روی همه ماشین های لیست شده در گروه “cluster” در فایل “/etc/dsh/groups/cluster” یا “/usr/local/etc/groups/cluster“ باید از دستور زیر استفاده کنید :
    کد:
    $ dsh –M –g cluster –c w

    دستور DSH انعطافات بیشتری را شامل میشود و این پست تنها موارد سطحی را مورد پوشش قرار داده علاوه بر دستورات اجرایی همچنین میتواند برای انتقال فایل ها نصب نرم افزار افزودن route ها و موارد زیاد دیگری مورد استفاده قرار گیرد. و برای ادمین یک سیستم که مسئولیت یک شبکه بزرگ را به عهده دارد میتواند ابزار ارزشمندی به حساب بیاید.


    موفق باشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-26-2021, 12:03 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X