PDA

Bekijk Volledige Versie : PSSH proleem met meerdere servers gelijktijdig updaten.



ccchosting
24/01/11, 22:23
Wij gebruiken pssh om meerdere servers gelijktijdig te updaten.
Hiervoor heb ik een bash scriptje gemaakt en de te uit voeren commando,s onder elkaar gezet, het scriptje laad de lijst met servers en voert de commando,s uit.

De scripts die bestanden kopieren naar de remote server om ze aldaar uit te pakken en eventueel vervolg commando,s moeten uitvoeren werken niet naar behoren.

Het lijkt erop dat pssh geen volgorde van de servers uit de server lijst hanteerd en probeert bestanden uit te pakken terwijl dit bestand nog niet is gekopieerd naar de remote server met als gevolg error can not find file..
Dit gebeurd met zo,n 10 severs uit een lijst van 50 servers, volledig random

Hierbij een voorbeeld van het script dat probeert de NL vertaling op alle DA servers te updaten:


#!/bin/bash
printf "Wil je alle servers gelijktijdig updaten met de NL DA vertaling? [Y,N]: "
while true;do
read yesno
case "$yesno" in
[Yy])
echo "Install/Upgrade NL vertaling Directadmin"
pssh -h /usr/local/updatescript/ip.txt rm -rf /usr/local/directadmin/data/skins/enhanced.bak
pssh -h /usr/local/updatescript/ip.txt mv /usr/local/directadmin/data/skins/enhanced /usr/local$
pscp -h /usr/local/updatescript/ip.txt /usr/local/updatescript/configfiles/enhanced.tar.gz /us$
pssh -h /usr/local/updatescript/ip.txt tar zxvf /usr/local/directadmin/data/skins/enhanced.tar.$
pssh -h /usr/local/updatescript/ip.txt /usr/local/directadmin/data/skins/enhanced/set_permissio$
pssh -h /usr/local/updatescript/ip.txt rm -f /usr/local/directadmin/data/skins/enhanced.tar.gz
echo ; echo ; echo "NL Translation voltooid."
echo "Done."
break


Zoals jullie waarschijnlijk al zien ben ik geen bash programeur en ik zet alle commando,s gewoon in een rijtje onder elkaar, echter voor de meeste van deze scriptjes werkt dit wel, deze waarbij een bestand moet worden gekopieerd niet.

The-BosS
24/01/11, 23:49
Is het niet simpelder om een bash script te maken waarin allemaal je commando's staan die hij remote moet uitvoeren en dan met pssh dit scriptje te downloaden via scp/wget/... en dan uit te voeren. In plaats van allemaal je commando's remote door te voeren, zo sluit je timeouts uit binnen je uploads.

bvb:


pssh -h /usr/local/updatescript/ip.txt "/usr/bin/wget <script> -O /uploaddir/<script>; sh /uploaddir/<script>"
of als je het script naderhand wil verwijderen
pssh -h /usr/local/updatescript/ip.txt "/usr/bin/wget <script> -O /uploaddir/<script>; sh /uploaddir/<script>; rm -f /uploaddir/<script>"

ccchosting
25/01/11, 11:31
Hoi Dennis,

Je hebt gelijk, voor bepaalde scripts zoals het aanpassen van de php.ini bestanden en custombuild uitvoeren op de remote servers heb ik al dergelijke scripts gemaakt, en was eigenlijk wel van plan om alle andere scriptjes ook aan te passen door eerst de bash file te kopiƫren of downloaden en daarna de remote server deze laten afhandelen.

Ik heb het probleem inmiddels wel gevonden:

Wij maakte gebruik van PSSH versie 1.3.x
Deze heb ik vandaag (na update python) geupdate naar versie 2.2
De errors zijn als sneeuw voor de zon verdwenen.
Zie ook: http://www.ccchosting.nl/helpdesk/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=181&nav=0,2,13

P.S: Ik zie zojuist dat deze topic dubbel is, mijn excuses daarvoor.
Ik dacht mijn bericht verleden week niet gepost te hebben i.v.m drukte.