Toutes les commandes non-interactives système sont prises en charge : les commandes doivent donc être lancées avec les paramètres souhaités car l’utilisateur ne pourra pas répondre si un paramètre est demandé après coup (par exemple, un mot de passe).
La version 2.3 corrige plusieurs problèmes de sécurité, ajoute la fonctionnalité "su -" au protocole ssh et fixe le problème de la demande de mot de passe de la commande su sur les systèmes d'exploitation de type BSD.
Exemple d'utilisation :
./massadmin -h "remotesrv.mydom:root:mdpadm" -e 'SSH::/usr/sbin/ether-wake 00\:25\:44\:DA\:43\:BF |:’
L’auteur indique utiliser ce script pour administrer plus de 250 serveurs de type Unix hétérogènes (AIX, SCO, RH Linux, Slackware, Debian, et autres) pour changer par exemple massivement un mot de passe administrateur ou encore compiler un logiciel.
Aller plus loin
- massadmin (25 clics)
# comparaison
Posté par Krunch (site web personnel) . Évalué à 3.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: comparaison
Posté par Bapt (site web personnel) . Évalué à 0.
parce que perl est amour alors que python ... :)
[^] # Re: comparaison
Posté par Christophe Casalegno . Évalué à 0.
[^] # Re: comparaison
Posté par Oliver (site web personnel) . Évalué à 6.
Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)
[^] # Re: comparaison
Posté par Degrémont Aurélien . Évalué à 3.
En shell, avec les outils de ligne de commandes:
#!/bin/bash
BINFILE="/my/bin/file"
# Il est tres pratique que le gestionnaire de groupe de ClusterShell soit configuré.
# Dans ce cas, il suffit de donner les noms des groups en question et la liste des
# machines correspondantes sera utilisé.
PRIMARYGROUP="@primary"
BACKUPGROUP="@backup"
# Si ce n'est pas le cas, il suffit de remplacer par la liste des machines correspondantes
echo "Copying new version of $BINFILE..."
clush -S -w $PRIMARYGROUP,$BACKUPGROUP -c $BINFILE || exit 1
echo "Restarting primary service..."
clush -S -w $PRIMARYGROUP "service primary restart" || exit 1
echo "Restarting backup service..."
clush -S -w $BACKUPGROUP "service primary restart" || exit 1
exit 0
En python, en utilisant la bibliothèque,
#!env python
import sys
from ClusterShell.Task import task_self()
BINFILE = "/my/bin/file"
PRIMARYGROUP = "@primary"
BACKUPGROUP = "@backup"
task = task_self()
# On prepare la copie
task.copy(BINFILE, BINFILE, "%s,%s" % (PRIMARYGROUP, BACKUPGROUP))
# On lance la copie parallele
task.resume()
# Si tout c'est bien passé, on continue
if task.max_retcode() > 0:
print >>sys.stderr, "Copy failed\n"
sys.exit(1)
# On prepare l'exécution des 2 commandes en même temps)
task.shell("service primary restart", PRIMARYGROUP)
task.shell("service backup restart", BACKUPGROUP)
# On redémarre tout en même temps
task.resume()
# Si tout c'est bien passé, on continue
if task.max_retcode() > 0:
print >>sys.stderr, "Restart failed\n"
sys.exit(1)
sys.exit(0)
ClusterShell est souple, donc il y a différentes façons de faire les choses selon les besoins. On peut travailler plus en détail l'output, l'analyse des résultats. On peut imaginer redémarrer les serveurs que sur les machines qui ont réussit la copie, cela de façon très simple. Ce n'est que quelques exemples. N'hésitez pas à poser des questions si vous voulez en savoir plus.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.