GNU/Linux >> Znalost Linux >  >> Linux

Clusterssh alternativa pro správu více serverů SSH

Řešení 1:

  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.
    
  2. Gnome Connection Manager
  3. 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.


Linux
  1. Ssh – Shell skript pro přihlášení na Ssh server?

  2. Jak zadat heslo pro více Windows?

  3. Vypršel časový limit připojení pro Ssh server?

  1. Chrony – Alternativní NTP klient a server pro systémy podobné Unixu

  2. Spravujte páry klíčů SSH pro cloudové servery pomocí python-novaclient

  3. nástroj podobný teamvieweru pro ssh?

  1. Je možné mít více výchozích bran pro odchozí připojení?

  2. Existuje alternativa GUI k Putty SSH pro přenos souborů?

  3. SSH:jeden autorizovaný_klíč pro více servisních účtů