Mit der PDSh arbeiten: Unterschied zwischen den Versionen

Aus Glaskugel
Zur Navigation springen Zur Suche springen
Zeile 16: Zeile 16:


;3. Manchmal ist auf Servern z.B. ein Dienst oder ein Script nicht so eingerichtet, dass es bei einem Reboot automatisch geladen wird. Das kann man nachholen.
;3. Manchmal ist auf Servern z.B. ein Dienst oder ein Script nicht so eingerichtet, dass es bei einem Reboot automatisch geladen wird. Das kann man nachholen.
:3.A. Auf einem CentOS6 Server würde man zum Beispiel den DrWeb Dienst mit folgenden '''zwei Befehlen''' zum "Autostart" hinzufügen.
:'''3.A.''' Auf einem CentOS6 Server würde man zum Beispiel den DrWeb Dienst mit folgenden '''zwei Befehlen''' zum "Autostart" hinzufügen.
::<code>pdsh -w www[1-69].estugo.de "chkconfig --add drwebd"</code>
::<code>pdsh -w www[1-69].estugo.de "chkconfig --add drwebd"</code>
::und darauf folgend
::und darauf folgend
Zeile 22: Zeile 22:




:3.B. Auf einem CentOS7 Server sähe das ganze etwas anders aus:
:'''3.B.''' Auf einem CentOS7 Server sähe das ganze etwas anders aus:
::<code>pdsh -w www[70-97].estugo.de "systemctl enable drwebd"</code>
::<code>pdsh -w www[70-97].estugo.de "systemctl enable drwebd"</code>



Version vom 14. Juni 2019, 17:18 Uhr

Allgemeines

PDSh = Parallel Distributed Shell

"Pdsh ist ein effizienter, Multithreaded Remote-Shell-Client, der Befehle auf mehreren entfernten Hosts parallel ausführt."

einige sinnvolle PDSH-Befehle

1. Speicherplatz aller www´s auslesen
pdsh -w www[1-97].estugo.de "df -h | grep ploop"
2. Speicherplatz aller www´s + Mädchenserver auslesen.
pdsh -w www[1-97].estugo.de "df -h | grep ploop" && pdsh -w 37.218.252.[113,114,160,199,207,208,209] "df -h | grep ploop"


3. Manchmal ist auf Servern z.B. ein Dienst oder ein Script nicht so eingerichtet, dass es bei einem Reboot automatisch geladen wird. Das kann man nachholen.
3.A. Auf einem CentOS6 Server würde man zum Beispiel den DrWeb Dienst mit folgenden zwei Befehlen zum "Autostart" hinzufügen.
pdsh -w www[1-69].estugo.de "chkconfig --add drwebd"
und darauf folgend
pdsh -w www[1-69].estugo.de "chkconfig drwebd on"


3.B. Auf einem CentOS7 Server sähe das ganze etwas anders aus:
pdsh -w www[70-97].estugo.de "systemctl enable drwebd"

Einsatz von Host-Listen um die PDSH-Befehle zu vereinfachen

Gerade bei unseren Managed Maschinen ist der PDSH-Befehl sehr lang und aufgrund der vielen unterschiedlichen IP-Adressen inzwischen sehr unübersichtlich.
Die PDSH kann daher auch so angepasst werden, dass man Host-Listen verwendet.

4. Der Befehl zum Auslesen der Speicherbelegung aller Shared Server (www+Mädchenserver aus Punkt 2.) ist dann wesentlich überschaubarer wie folgt
pdsh -w ^/root/PDSH/hosts "df -h | grep ploop"

Möglichkeit eigener Listen für z.B. ausschließlich CentOS6 Server

5. Möchte ich beispielsweise nur CentOS6 Server bearbeiten, so kann ich für diese Server eine eigene Liste anfertigen und diese im Befehl verwenden
pdsh -w ^/root/PDSH/centos6 "df -h | grep ploop"

Einsatz der Host-Listen: Auf der PDSH für unsere Managed Server

Der PDSH-Befehl für die Managed schaut derzeit so aus
pdsh -w 128.127.67.[13,37,44,46-50,52,54,55,59-63,65,67-69,83,110-114,116-122,124,126,149,160,188],93.90.188.[15,16,27,29],195.110.43.[16,18-20,46,49,81,89,122,204,240],192.162.85.[97,146,204],192.162.84.[5,6,23,38,114,172],195.34.83.[120,123,160,216,218,223],89.22.104.[106,108,149,153,243,198],89.22.105.[61,149,129],89.22.106.8,89.22.107.[91,144,168,177,218,224,251],89.22.120.[128,138],89.22.121.[43,87] "date"
SCHLIMM!
6. Der gleiche Befehl bei Verwendung der Host-Liste sieht wie folgt aus
pdsh -w ^/etc/pdsh/hosts "date"

Pflege der Host-Listen

Damit nicht versehentlich in der falschen Liste gearbeitet wird, habe ich die Host-Listen auf der Shared PDSh, sowie auf der Managed PDSh in verschiedenen Verzeichnissen angelegt.
Innerhalb dieser Verzeichnisse können weitere individuelle Listen erstellt werden, welche dann im entsprechenden Befehl verwendet werden können.

Host-Liste für die Managed PDSh

mcedit /etc/pdsh/hosts
Bitte achtet darauf, dass Ihr keine Leerzeile nach der letzten Zeile einbaut. Die PDSh würde versuchen diese zu lesen und dann einen Fehler verursachen.
Bei Löschungen von Managed Servern, diesen auch aus der Host-Liste löschen!

Host-Liste für die Shared PDSh

alle shared Maschinen mcedit /root/PDSH/hosts
nur CentOS6 Maschinen mcedit /root/PDSH/centos6
beispielsweise bei cURL Updates