Sunt sigur că ați auzit că toți copiii drăguți se joacă cu automatizarea orchestrației în aceste zile. Dar știi de ce? În primul rând, resursele consumate de sarcinile de lucru moderne ale microserviciilor devin mult mai complexe și se implementează în mai multe instanțe decât oricând. Și, în al doilea rând, din ce în ce mai multe resurse sunt mai degrabă virtuale decât fizice – așa că multe dintre ele vor exista doar minute sau chiar secunde.
Toate acestea înseamnă că, chiar dacă ați dori să vă întoarceți să vă conectați la fiecare dintre serverele dvs., pur și simplu nu ar avea sens. De fapt, în majoritatea cazurilor, nici măcar nu ar fi posibil. În schimb, veți rula o mulțime de scripturi inteligente. Și instrumentele pe care le folosiți pentru a rula aceste tipuri de scripturi sunt în general numite orchestratori.
Sunt sigur că ați întâlnit cel puțin unul sau doi membri ai clubului de orchestrație. Pe lângă Ansible, există Terraform, Chef, Puppet și altele. Dar există și instrumente de nivel inferior care funcționează ca suplimente pentru instrumentele Linux de bază, cum ar fi SSH. Deși, văzând cum va rula nativ pe Windows și, bineînțeles, pe MacOS, nu sunt sigur că este destul de corect să mai numim SSH un instrument „Linux”.
Unul dintre aceste suplimente SSH este un set de instrumente numit pssh – care înseamnă Paralel SSH. Despre asta vom învăța în acest articol – care este extras din noul meu Curs Pluralsight, optimizarea sistemului Linux.
Deocamdată, însă, vă voi povesti puțin despre laboratorul pe care îl folosesc, astfel încât să îl puteți reproduce mai ușor și să îl urmăriți acasă. Am trei containere Ubuntu LXD care rulează. Baza pentru toate operațiunile noastre va fi cea cu adresa IP de 10.0.3.140, în timp ce cele două noduri gazdă pe care le vom provoca de la distanță vor folosi 10.0.3.93 și 10.0.3.43.
Tot ceea ce vom face presupune că avem acces SSH fără parolă din containerul meu de bază la fiecare dintre cele două noduri. Dacă nu sunteți sigur cum să faceți acest lucru, puteți vizualiza modulul SSH al meu Protocol Deep Dive: curs SSH și Telnet pe Pluralsight. Dacă te grăbești, acest tutorial Red Hat te va duce în același loc.
Instalarea pssh pe Ubuntu este simplă și rapidă: sudo apt install pssh
. Nu devine mai greu pe CentOS.
Am creat un fișier simplu de inventar al gazdei numit sshhosts.txt care nu conține nimic mai mult decât adresele IP ale celor două noduri ale mele:
$ less sshhosts.txt
10.0.3.93
10.0.3.43
Acum voi rula comanda pssh parallel-ssh pentru a executa o singură comandă pe gazdele mele.
$ parallel-ssh -i -h sshhosts.txt df -ht ext4
-i spune programului să ruleze ca interactiv – altfel nu ni se va afișa nicio ieșire de comandă. -h indică fișierul hosts pe care l-am numit sshhosts.txt. Și comanda în sine va fi vechiul utilitar Unix df. Aceasta va returna o listă de unități atașate la sistem, împreună cu punctele de montare și informații de utilizare. -H aici va afișa spațiu pe disc în unități care pot fi citite de om și t va restricționa accesul doar la unitățile formatate ca ext4.
De ce îmi pasă de afacerea asta ext4? Deoarece Ubuntu folosește managerul de pachete snap și fiecare snap își creează propriul dispozitiv virtual. Și ce dacă? Ei bine, nu vreau să trebuiască să mă pieptăn cu o duzină de dispozitive virtuale care raportează 0 spațiu liber doar pentru a ajunge la unitățile reale care raportează utilizarea reală.
$ 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% /
Și iată-te! Informații complete de spațiu pe disc despre ambele noduri ale mele. Sunt sigur că ați observat că informațiile sunt identice. Asta pentru că acestea sunt ambele containere care rulează pe stația mea de lucru, astfel încât, din câte știu, ambele au acces complet la propriul meu drive.
Pentru următorul meu truc, voi colecta fișierele / etc / group din fiecare dintre nodurile mele. Acesta este tipul de operație care ar putea fi utilă pentru a monitoriza rapid starea de securitate a nodurilor dvs. Puteți adăuga un script care analizează datele primite și vă avertizează dacă există vreo anomalie.
Înainte de a începe, voi crea un director numit local fișiere gazdă. Apoi voi folosi parallel-slurp
comanda – al cărei nume descrie minunat funcția sa. Din nou, -h indică fișierul gazdelor. -L
setează directorul fișierelor gazdă ca locație țintă pentru scrierea datelor pe care le vom genera, /etc/group
este fișierul de la distanță pe care dorim să-l aruncăm și group
este numele pe care am dori să-l atribuim local.
mkdir host-files
parallel-slurp -h sshhosts.txt -L host-files/ /etc/group group
Când se termină, directorul fișierelor gazdă va conține subdirectoare numite după adresa IP a fiecărui nod. După cum puteți vedea, există un fișier numit „grup” care conține datele / etc / group din fiecare nod.
$ tree host-files/
host-files/
├── 10.0.3.43
│ └── group
└── 10.0.3.93
└── group
Pssh vine cu alte delicatese? Da. Și alergând apropos
vă oferă întreaga listă.
$ 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
Acest articol se bazează pe conținutul din Curs Pluralsight, „Optimizarea sistemului Linux”. Există mult mai multă bunătate administrativă sub formă de cărți, cursuri și articole disponibile la bootstrap-it.com.
#Cum #execută #comenzi #mai #multe #gazde #Linux #folosind #PSSH
Cum se execută comenzi pe mai multe gazde Linux folosind PSSH