Birden çok SSH sunucusunu yönetmek için Clusterssh alternatifi [kapalı]


11

Birden fazla ssh tabanlı sunucuyu tek bir arayüz üzerinden yönetmek için Clusterssh, pssh vb.'ye alternatif var mı?

Clusterssh'deki bir zayıf nokta, sunucularımın oturum açmak için passhprase ile anahtar tabanlı kimlik doğrulaması kullanması ve özel anahtarı kullanarak sunuculara oturum açmanın bir yolu olmamasıdır.

Özel anahtarlarla kimlik doğrulamayı destekleyen başka bir seçenek var mı?


Senin sorunun ne pssh? Birden fazla SSH sunucusunu yönetmek için paralel veya sadece bir programa mı ihtiyacınız var?
quanta

Aslında ben sunucularda çalıştırmak komutların birkaç tür Gerçek zamanlı çıktı görmek gerekir. tıpkı Cluster-ssh gibi.
Farhan

2
pssh'In -Pseçeneğine bir göz atın .
quanta

2
@Farhan neden ansible kullanmıyorsunuz?
c4f4t0r

Yanıtlar:


6

Rundeck'e bir göz atın - http://rundeck.org/


iyi görünüyor ama ben EKLEME ona kötü takılıp. sunucu eklemenin basit bir yolu var mı? eklenecek düğümler için yalnızca belirli xml kalıp tabanlı dosyaları kabul ettiğinden :(
Farhan

9
  1. Kumaş

    Önce görevlerinizi tanımlayın:

    from fabric.api import *
    
    @parallel
    @hosts('192.168.3.118', '192.168.6.142')
    
    def hostname():
        run('hostname')
    

    Sonra fabkomut satırı aracıyla yürütme :

    $ 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 Bağlantı Yöneticisi
  3. PAC Yöneticisi

5

Bütün domuz gidebilir ve Kukla veya Şef gibi bir konfigürasyon yönetim sistemi kurabilirsiniz . Aslında kaç tane düğümü yönetmeye çalıştığınızı söylemediniz, bu aşırıya kaçmış olabilir, ancak kesinlikle birçok makineyi bu şekilde merkezi olarak kontrol edebilirsiniz. Şu anda küçükseniz, ancak büyüyorsanız, o kadar büyüymeden önce de şefi kurmak isteyebilirsiniz.

Belirli bir düğüm kümesi üzerinde ad hoc komutları çalıştırmanız gerekiyorsa , web sunucusu rolüne sahip tüm düğümlerin komutunu knife ssh 'roles:webserver' 'hostname'çalıştırmak için (bıçak şef için komut satırı aracıdır) gibi bir şey yapabilirsiniz hostname.


ben zaten yaklaşık 15-20 server.i zaten benimle kukla var, ama bazı görevler için tüm ssh terminalleri ile gerçek zamanlı etkileşime ihtiyacım var.
Farhan

Ah tamam. Sanırım kukla bir ssh tesisine sahip değil.
cjc

4

Oturum açmalarını otomatikleştirmek için bekle komut dosyaları kullanıyorum (özellikle bir jumb kutusundan geçmek ve bir chroot girmek zorunda kaldım ve çok sayıda parola girilmelidir) ve cssh yapılandırmasına bazı "ince ayarlar" yaptım. Yani, bin klasörümde "sunucu adı / takma adı" verilen bu "ana komut dosyası" var beni istediğim sunucuya ve istediğim yere götürür.

~ / .Clusterssh / config "ssh" parametresini betiğime işaret edecek şekilde ayarladım, ayrıca "ssh_args" bazı zararsız / sahte argümanlara ayarlanmalıdır, çünkü cssh aslında boş bırakılırsa varsayılan argümanlar listesine sahiptir. varsayılan liste betiğe dönüşür.

Böylece komut dosyası (her pencerede / terminalde) bu argümanları ve cssh'a verilen argümanların 1'ini, verilen sunucu için bir kimlik dosyasından belirlenen bir dosyadan topladığı komut dosyasını ve buraya ulaşmak için yapması gereken adımları alır. Ben istiyorum, daha sonra tüm bu verilerle "beklemek kodu" çağırır.

~ / .Clusterssh / yapılandırma

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 user1@axt$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 axtr@axt$1
    ;;
*)
    echo "GOOH"
esac

bu yüzden genellikle böyle bir şeyle derim

# cssh q4 q5 q6 q7

"qAll q4 q5 q6 q7" kümesine sahip olan "küme takma adları" ile de çalışır.

Umarım herkese yardımcı olur.



2

Ayrıca , birden çok sunucuyla gerçek zamanlı olarak etkileşim kurmanın en iyi ve en esnek yolu olan MCollective'e de bakmalısınız . Doğru şekilde kurmak bir taahhüttür ve ihtiyaçlarınız için biraz üst olabilir, ancak kesinlikle pssh, Clusterssh ve diğer tüm SSH tabanlı çözümleri yener. Ve bir kez yerine koyduğunuzda, biraz Ruby bildiğiniz sürece, onunla yapamayacağınız hiçbir şey yoktur.


Feragatname: MCollective, kuklalardan alınmıştır.
sjas

1

Aynı soruyu kendime sordum, çünkü clusterssh'in Mac OS X üzerinde X11 veya XQuartz'a bağımlılığını buldum ve bunun üzerine clusterssh tarafından açılan terminal pencereleri Terminal.app'dekilerden daha çirkin görünüyordu.

Blogunda Joerg Jaspert'in tmux tabanlı bir senaryosuna bu şekilde rastladım: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

Temelde yazıyorsunuz tm ms HOST1 user@HOST2ve iki bölmeden oluşan bir tmux penceresi ile bir oturum açıyor


0

Bash istemi basit şeyler için çalışır:

sunucular başına bir satır olan servers.txt dosyasındaki sunucuların listesini yapın.

o zaman yap:

$ while read $server; do ssh user@$server "command args"; done < servers.txt

1
tüm sunucuları kullanmak için etkileşimli bir yol istiyorum. bash bu durumda yardım edemez. Küme ssh bu durumda en iyi şekilde çalışır, ancak sınırlıdır.
Farhan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.