Извршење истодобне наредбе ПДСХ-а на више Линук сервера

У овом чланку ћу вам рећи како управљати великом флотом Линук сервера са конзоле једног сервера, даљинским извршавањем команди на другим серверима и добити њихове резултате, проверавати статус сервера и обављати сличне радове паралелно користећи услужни програм пдсх. Разумећемо како да га инсталирамо, конфигуришемо и покрећемо наредбе на неколико сервера паралелно.

ПДСХ (паралелно дистрибуирана шкољка) - услужни програм високих перформанси за паралелно покретање команди на великом броју Линук сервера путем ссх-а. Подразумевано, пдсх вам омогућава да подржите 32 истовремене везе са управљаним серверима. Постоји неколико корисних модула за проширење пдсх-а о којима ћемо такође говорити у овом чланку..

Са пдсх-ом можете:

  • Ажурирање софтвера на серверима;
  • Инсталирајте потребне модуле или услужне програме;
  • Покрените неку басх скрипту;
  • Проверите да ли постоје исправке и још много тога.

Садржај:

  • Инсталирајте ПДСХ и допунске модуле
  • Конфигурација сервера за управљање пдсх-ом и управљаних Линук серверима.
  • Примери коришћења пдсх-а за покретање наредби на више сервера

Инсталирајте ПДСХ и допунске модуле

Прво морате инсталирати услужни програм пдсх и потребне модуле. У ЦентОС-у се инсталација врши преко иум пакета за управљање:

сад инсталирате епел-релеасе -и - повежите складиште Епел

иум инсталирати пдсх пдсх-мод-сполови -и - инсталирајте пдсх и полни модул за то.

Уопштено, ништа друго није потребно за конфигурацију пдсх-а. Инсталирали смо сам пдсх, а такође инсталирали и додатни модул пдсх-мод-сполови, о чему ћу говорити касније, када пређемо на покретање команди на удаљеним серверима.

Конфигурација сервера за управљање пдсх-ом и управљаних Линук серверима.

Да не уносимо лозинке за повезивање са удаљеним серверима сваки пут, генерисаћемо ссх тастер на управљачком серверу са инсталираним пдсх-ом и додаћемо га на управљане сервере.

ссх-кеиген -к

Унесите датотеку у коју желите да сачувате кључ (/роот/.ссх/ид_рса): Унесите лозинку (празна за нема лозинку): поново унесите исту лозинку: 

Извођење наредбе ссх-кеиген -к за сва питања само притисните Ентер. Кључ је спреман, остаје нам да га копирате на управљане Линук сервере. Као пример узео сам 2 сервера са Линук ЦентОС-ом.

На управљаним серверима направите директоријум за ссх тастер (ако га нема):

мкдир /роот/.ссх/

Копирајте кључ у овај директориј, ја то радим кроз одјек:

ехо -е "ваш кључ из датотеке /роот/.ссх/ид_рса.пуб" >> /роот/.ссх/аутхоризед_кеис

Кључ је додан, морате да проверите да ли веза са пдсх сервера пролази:

ссх сервер1

У реду је.

Примери коришћења пдсх-а за покретање наредби на више сервера

Пошто се број сервера може разликовати у називу хоста, направио сам за себе такву схему конфигурације ПДСХ. У датотеку хост на послужитељу за управљање с пдсх-ом додајем сваки управљани сервер и додијелим му име које је мени прикладно, на примјер:

мачка / итд / домаћини

127.0.0.1 лоцалхост лоцалхост.лоцалдомаин лоцалхост4 лоцалхост4.лоцалдомаин4 :: 1 лоцалхост лоцалхост.лоцалдомаин лоцалхост6 лоцалхост6.лоцалдомаин6 *. *. *. * Сервер1 *. *. *. * Сервер2 

Где уместо звездица треба да одредите ИП одредишне сервере.

Тако да се пдсх може повезати са датим именима сервера, у датотеци / роот / ссх / кновн_хостс на кључ сваког управљаног сервера, одвојен зарезом, додајте жељено име сервера које смо навели у / етц / хостс. На пример:

Након тога, моћи ћете да се повежете користећи име хоста које сте изабрали ради практичности, биће нам корисно ако имамо 100500 сервера, који су различито именовани.

За покретање наредбе на удаљеном серверу путем пдсх-а, користи се сљедећа конструкција:

пдсх -в сервер1 'команда' - Увек вам саветујем да наводите трчање команди, јер ако користите посебне знакове, басх на серверу са пдсх ће извршити наредбу након специјалног знака локално.

На пример, да бисте сазнали време на удаљеним серверима, можете покренути наредбу за сваки од њих.

пдсх -в сервер1 'датум'

сервер1: суб руј 14 12:27:16 +06 2019

пдсх -в сервер2 'датум'

сервер2: суб руј 14 12:27:21 +06 2019

Или одмах извршите једну наредбу за листу сервера:

пдсх -в сервер1, сервер2 'датум'

сервер1: Суб Сеп 14 12:36:20 +06 2019 сервер2: Суб Сеп 14 12:36:20 +06 2019

Ако требате да извршите наредбу на 10 сервера, добићете прилично дугу команду у којој су наведени сви сервери, што је непријатно. Јер поставили смо своје име хоста за сервере, а пдсх то разуме, када позивате пдсх, можете да одредите одређене сервере или низ сервера у углатим заградама:

пдсх -в сервер [1-2] 'датум' - домет сервера у мом случају је 2 сервера. Може бити од 1 до 20, изгледаће овако: пдсх -в сервер [1-20] 'датум'

пдсх -в сервер [1,2] 'датум' - специфичних сервера 1 и 2, можете одабрати на пример 3-4 сервера и наредба ће изгледати овако: пдсх -в сервер [1,2,7,9] 'датум'

За погодније форматирање, излаз командних резултата са удаљених сервера може се користити при конструкцији:

пдсх -в сервер [1-20] 'продужење рада' | сортирати -н

Размотрите претходно инсталирани модул пдсх-мод-гендорс. Да бисте га користили, креирајте саму датотеку:

тоуцх / етц / сполови

Зашто је то потребно? Гендерс је изворна синтакса датотека за опис пдсх улога. Како се може применити у раду? На пример:

  1. Имате 10 сервера са Убунту-ом. Комбиноваћемо их у једну Убунту групу, нека њихова имена домаћина буду убунту1-10.
    У датотеку / етц / сполове пишемо следеће редове:

    убунту [1-10] убунту
  2. Имате 10 сервера са Центос-ом и сличним именима хостова - центос1-10:
    центос [1-10] центос
  3. Такође постоји група сервера за програмере - веб1-10:
    веб [1-10] веб
  4. Ако постоји група сервера са различитим именима, на пример сис [1-5] и адм [4-8]:
    сис [1-5] наш адм [4-8] наш 

И.е. у датотеци / етц / рондерс можете да креирате различите групе Линук сервера. Да би пдсх приликом покретања могао да прочита податке из родне датотеке, морате да наведете уместо прекидача -в .

У мом случају још увек постоје два сервера, али то не мења ништа:

[роот @ сервер итд.] # пдсх -г центос 'дате'

сервер1: Суб Сеп 14 12:49:59 +06 2019 сервер2: Суб Сеп 14 12:50:00 +06 2019 

Ово је много згодније и наредба се извршава на свим серверима у групи..
Подразумевано, пдсх вам омогућава да покренете до 32 истодобне сесије на различитим серверима. Број истовремено извршених наредби приказује се помоћу тастера . На пример, када -ф 1 док се наредба не изврши на првом серверу, неће прећи на други.

Користећи наш тим као пример, изгледа овако:

пдсх -г убунту 'датум' -ф 1

Такође можете да примените тастере и :

  • - подесите временско ограничење везе у секунди;
  • - подесите временско ограничење за даљинско извршавање наредби.

И на крају, хтео бих да дам неколико примера како можете да користите пдсх за управљање Линук сервер групама.

Следећа наредба на свим наведеним серверима ће отићи у директориј који смо одредили и преузети Центос 7 исо слику у њу:

пдсх -в сервер [1,2] 'цд / роот && вгет хттп://миррор.иандек.ру/центос/7.7.1908/исос/к86_64/ЦентОС-7-к86_64-Минимал-1908.исо'

Желите брзо да проверите која су спремишта инсталирана на управљаним серверима?

пдсх -в сервер [1,2] 'иум реполист'

сервер2: Учитани додаци: фастестмиррор сервер2: Учитавање брзина огледала са кешираног серверфиле сервер2: * база: репо.центос.ру сервер2: * додаци: репо.центос.ру сервер2: * Ажурирања: репо.центос.ру сервер2: Репо ид Репо име статус сервер2: база / 7 / к86_64 ЦентОС-7 - база 10,019 сервер2: додаци / 7 / к86_64 ЦентОС-7 - додаци 435 сервер2: исправке / 7 / к86_64 ЦентОС-7 - ажурирања 2.500 сервер2: реполист: 12.954 сервер1: учитани додаци: фасттестмиррор сервер1: Учитавање брзина огледала са кешираног сервера хостфиле1: * база: репо.центос.ру сервер1: * додаци: репо.центос.ру сервер1: * исправке: репо.центос.ру сервер1: репо ид статус репо име статуса сервер1: база / 7 / к86_64 ЦентОС-7 - База 10,019 сервер1: додаци / 7 / к86_64 ЦентОС-7 - Додаци 435 сервер1: исправке / 7 / к86_64 ЦентОС-7 - Ажурирања 2.500 сервер1: реполист: 12,954

пдсх -в сервер [1,2] 'иум инсталл хттпд -и' - инсталирање апацхе на оба сервера

И проверите да ли је заиста инсталиран:

То јест, било коју наредбу можете извршити одједном на више удаљених сервера. Ако желите покренути неку врсту басх скрипте, савјетујем вам да је додате у неку датотеку и копирате на потребне сервере, а затим је покренете.

Можда је то све, надам се да ће вам ове информације бити корисне и олакшаће рутинске задатке управљања више Линук сервера.