Řešení 1:
-
Tkanina
Nejprve definujte své úkoly:
from fabric.api import * @parallel @hosts('192.168.3.118', '192.168.6.142') def hostname(): run('hostname')
Poté spusťte pomocí
fab
nástroj příkazového řádku:$ fab -f /path/to/.py/file hostname [192.168.3.118] Executing task 'hostname' [192.168.6.142] Executing task 'hostname' [192.168.6.142] run: hostname [192.168.3.118] run: hostname [192.168.6.142] out: SVR040-6142 [192.168.3.118] out: SVR040-3118.localdomain Done.
- Gnome Connection Manager
- PAC Manager
Řešení 2:
Podívejte se na Rundeck - http://rundeck.org/
Řešení 3:
Můžete jít celý prase a nainstalovat systém správy konfigurace, jako je Puppet nebo Chef. Nezmínili jste se, kolik uzlů se ve skutečnosti snažíte spravovat, takže to může být přehnané, ale jistě, tímto způsobem můžete centrálně ovládat spoustu strojů. Pokud jste právě teď malí, ale rostete, možná budete chtít zařídit, řekněme, šéfkuchaře, než budete mnohem větší.
Pokud potřebujete spouštět ad hoc příkazy nad konkrétní sadou uzlů, můžete udělat něco jako knife ssh 'roles:webserver' 'hostname'
(knife je nástroj příkazového řádku pro šéfkuchaře) ke spuštění hostname
pro všechny uzly, které mají roli webového serveru.
Řešení 4:
Preferuji shmux pro paralelní provádění stejného příkazu na mnoha hostitelích.
Řešení 5:
Používám očekávané skripty k automatizaci přihlášení (zejména proto, že musím projít přes jumb box a zadat chroot a musí se zadat spousta hesel) a provedl jsem nějaké „vyladění“ v konfiguraci cssh. Takže mám toto „ main script“ v mé složce bin, která mě zavede na server, který chci a kam chci.
V ~/.clusterssh/config jsem nastavil parametr "ssh" tak, aby ukazoval na můj skript, také "ssh_args" musí být nastaven na nějaký neškodný/falešný argument, protože cssh má svůj výchozí seznam argumentů, pokud je ve skutečnosti prázdný výchozí seznam skončí ve skriptu.
Skript (v každém okně/terminálu) tedy obdrží tyto argumenty a 1 z argumentů zadaných do cssh, skript, který obnoví ze souboru pro daný server, nastavené přihlašovací údaje a kroky, které musí provést, aby dorazil Chci, pak to zavolá "očekávat kód" se všemi těmi daty.
~/.clusterssh/config
ssh=/home/user/bin/qs.sh
ssh_args=-a
qs.sh
#!/bin/bash
export PATH=~/bin:$PATH
shift
case $1 in
q4|q5|q6|q7|q8|q9)
essh [email protected]$1
### essh it's some little bash script that does the things I said before and in the end it launches the expect
;;
q1|q2|q3)
essh [email protected]$1
;;
*)
echo "GOOH"
esac
takže to obvykle nazývám nějak takto
# cssh q4 q5 q6 q7
funguje to také s "aliasy clusteru"s clusterem"qAll q4 q5 q6 q7"Mohu volat pomocí cssh qAll
Doufám, že to pomůže někomu dalšímu.