Како покретати команде на више Линук хостова користећи ПССХ

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

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

Сигуран сам да сте срели барем једног или два члана клуба за оркестрацију. Поред Ансибле, ту су Терраформ, Цхеф, Лутка и други. Али постоје и алати нижег нивоа који раде као додаци основним Линук алатима попут ССХ. Иако, видећи како ће се изворно покретати на Виндовс-у и, наравно, мацОС-у, нисам сигуран да је сасвим исправно ССХ више називати „Линук“ алатом.

Један од тих ССХ додатака је скуп алата зван пссх - што значи Параллел ССХ. О томе ћемо учити у овом чланку - који је издвојен из мог новог курса Плуралсигхт, Линук Систем Оптимизатион.

За сада ћу вам рећи нешто о лабораторији коју користим како бисте је могли лакше репродуковати и пратити код куће. Имам три покренута Убунту ЛКСД контејнера. База за све наше операције биће она са ИП адресом 10.0.3.140, док ће два чвора хоста која ћемо даљински обезбедити користити 10.0.3.93 и 10.0.3.43.

Све што ћемо предузети претпоставља да имамо ССХ приступ без лозинке из мог основног контејнера до сваког од два чвора. Ако нисте сигурни како то да урадите, можете да погледате ССХ модул мог протокола Дееп Диве: ССХ и Телнет курс на Плуралсигхт. Ако журите, овај водич за Ред Хат одвешће вас на исто место.

Инсталирање пссх на Убунту је једноставна и брза: sudo apt install pssh. На ЦентОС-у није ништа теже.

Направио сам једноставну датотеку инвентара хоста названу ссххостс.ткт која не садржи ништа више од ИП адреса моја два чвора:

$ less sshhosts.txt 10.0.3.93 10.0.3.43 

Сада ћу покренути пссх паралелну-ссх наредбу да извршим једну команду на мојим хостовима.

$ parallel-ssh -i -h sshhosts.txt df -ht ext4 

-и кажем програму да се покреће као интерактиван - иначе нам се не би приказивао никакав излаз из наредбе. -х показује на датотеку домаћина коју сам назвао ссххостс.ткт. А сама наредба ће бити стари Уник услужни програм дф. То ће вратити листу погона прикључених на систем, заједно са тачкама монтирања и информацијама о употреби. Овде ће -х приказати простор на диску у човеку читљивим јединицама, а т ће ограничити приступ само погонима форматираним као ект4.

Зашто ме брига за тај ект4 посао? Будући да Убунту користи менаџер снап пакета и сваки снап креира свој сопствени виртуелни уређај. Па шта? Па, не желим да морам да прочешљам десетак виртуелних уређаја који пријављују 0 слободног простора само да бих дошао до стварних дискова који пријављују стварну употребу.

$ parallel-ssh -i -h sshhosts.txt df -ht ext4 [1] 22:02:00 [SUCCESS] 10.0.3.43 Filesystem Size Used Avail Use% Mounted on /dev/sda2 457G 131G 304G 30% / [2] 22:02:00 [SUCCESS] 10.0.3.93 Filesystem Size Used Avail Use% Mounted on /dev/sda2 457G 131G 304G 30% / 

И ето ти! Пуна информација о простору на диску о оба моја чвора. Сигуран сам да сте приметили да су подаци идентични. То је зато што су ово оба контејнера која раде на мојој радној станици, па колико знају, обојица имају пуни приступ мом сопственом погону.

За следећи трик, сакупићу датотеке / етц / гроуп са сваког од својих чворова. Ово је врста операције која би могла бити корисна за брзо надгледање сигурносног статуса ваших чворова. Можете додати скрипту која рашчлањује долазне податке и упозорава вас ако постоје неке аномалије.

Пре него што започнем, креираћу директоријум локално назван хост-филес. Тада ћу користити parallel-slurpкоманду - чије име предивно описује њену функцију. Опет, -х показује на датотеку домаћина. Поставља -Lдиректоријум датотека хостова као циљно место за писање података које ћемо генерисати, /etc/groupудаљена је датотека коју желимо да повежемо и groupиме је које желимо да доделимо локално.

mkdir host-files parallel-slurp -h sshhosts.txt -L host-files/ /etc/group group 

По завршетку, директоријум датотека хостова садржи поддиректоријуме назване по ИП адреси сваког од ваших чворова. Као што видите, постоји датотека под називом „гроуп“ која садржи податке / етц / гроуп из сваког чвора.

$ tree host-files/ host-files/ ├── 10.0.3.43 │   └── group └── 10.0.3.93 └── group 

Да ли пссх долази са неким другим посластицама? Аха. А трчање aproposвам даје целу листу.

$ apropos parallel parallel-nuke (1) - parallel process kill program parallel-rsync (1) - parallel process kill program parallel-scp (1) - parallel process kill program parallel-slurp (1) - parallel process kill program parallel-ssh (1) - parallel ssh program 

Овај чланак се заснива на садржају на мом курсу Плуралсигхт, „Оптимизација система Линук“. Много је више административне доброте у облику књига, курсева и чланака доступних на боотстрап-ит.цом.