Alternatif Clusterssh untuk mengelola beberapa server SSH [ditutup]

11

Apakah ada alternatif untuk Clusterssh, pssh dll, untuk mengelola beberapa server berbasis ssh melalui satu antarmuka?

Salah satu kelemahan dalam Clusterssh adalah server saya menggunakan otentikasi berbasis kunci, dengan passhprase untuk login, dan tidak ada cara untuk login ke server menggunakan kunci pribadi.

Apakah ada alternatif lain yang mendukung otentikasi dengan kunci Privat?

Farhan
sumber
Apa masalah Anda pssh? Apakah Anda memerlukan program paralel atau hanya untuk mengelola beberapa server SSH?
quanta
sebenarnya saya perlu melihat keluaran waktu-nyata dari beberapa jenis perintah yang saya jalankan di server. seperti halnya Cluster-ssh.
Farhan
2
Lihatlah pssh's -Ppilihan.
quanta
2
@ Farhan mengapa Anda tidak menggunakan ansible?
c4f4t0r

Jawaban:

6

Lihatlah Rundeck - http://rundeck.org/

Tom
sumber
tampaknya baik tetapi saya sangat terjebak dalam MENAMBAHKAN simpul untuk itu. apakah ada cara sederhana untuk menambahkan server ke dalamnya? karena hanya menerima file berbasis pola xml tertentu untuk ditambahkan node :(
Farhan
9
  1. Kain

    Tetapkan tugas Anda terlebih dahulu:

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

    Kemudian mengeksekusi melalui fabalat baris perintah:

    $ 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. Manajer Koneksi Gnome
  3. Manajer PAC
kuanta
sumber
5

Anda dapat menggunakan babi utuh dan menginstal sistem manajemen konfigurasi seperti Wayang atau Koki . Anda belum menyebutkan berapa banyak node yang sebenarnya ingin Anda kelola, jadi ini mungkin berlebihan, tetapi, tentu saja, Anda dapat mengontrol banyak mesin secara terpusat dengan cara ini. Jika Anda kecil sekarang, tetapi sedang tumbuh, Anda mungkin juga ingin mengatur, katakanlah, Chef, sebelum Anda menjadi jauh lebih besar.

Jika Anda perlu menjalankan perintah ad hoc pada set node tertentu, Anda dapat melakukan sesuatu seperti knife ssh 'roles:webserver' 'hostname'(pisau adalah alat baris perintah untuk chef) untuk menjalankan hostnameperintah untuk semua node yang memiliki peran server web.

cjc
sumber
Saya punya sekitar 15-20 server.i sudah punya boneka dengan saya, tetapi saya perlu interaksi real-time dengan semua terminal ssh untuk beberapa tugas.
Farhan
Ah, baiklah. Saya kira boneka tidak memiliki fasilitas ssh.
cjc
4

Saya menggunakan berharap skrip untuk mengotomatisasi login (terutama karena saya harus melewati kotak jumb dan masuk dalam chroot dan banyak password harus dimasukkan) dan melakukan beberapa "tweak" untuk konfigurasi dari cssh. Jadi, saya memiliki "skrip utama" ini di folder bin saya yang diberi "nama server / alias" yang membawa saya ke server yang saya inginkan dan di mana saya inginkan.

Dalam ~ / .clusterssh / config saya telah menetapkan parameter "ssh" untuk menunjuk ke skrip saya, juga "ssh_args" harus disetel ke beberapa argumen tidak berbahaya / palsu, itu karena cssh memiliki daftar arg default, jika dibiarkan kosong sebenarnya daftar default akan berakhir pada skrip.

Jadi skrip (di setiap jendela / terminal) akan menerima argumen ini dan 1 argumen yang diberikan kepada cssh, skrip yang dipulihkan dari file untuk server yang diberikan kredensial yang ditetapkan dan langkah-langkah yang harus dilakukan untuk sampai di tempat Saya ingin, kemudian memanggil "kode harapan" dengan semua data itu.

~ / .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 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

jadi saya biasanya menyebutnya dengan sesuatu seperti ini

# cssh q4 q5 q6 q7

itu bekerja juga dengan "alias cluster" yang memiliki kluster "qAll q4 q5 q6 q7" Saya dapat menelepon dengan cssh qAll

Semoga itu bisa membantu orang lain.

Lohmar ASHAR
sumber
4

Saya lebih suka shmux untuk mengeksekusi perintah yang sama pada banyak host secara paralel.

hostmaster
sumber
2

Anda juga harus melihat MCollective , yang mungkin merupakan cara terbaik dan paling fleksibel untuk berinteraksi dengan banyak server secara real-time. Ini adalah sedikit usaha untuk mengatur dengan benar dan mungkin sedikit di atas untuk kebutuhan Anda, tetapi tentu saja mengalahkan pssh, Clusterssh dan semua solusi berbasis SSH lainnya. Dan begitu Anda memilikinya, mungkin tidak ada yang tidak bisa Anda lakukan dengan itu, asalkan Anda tahu sedikit tentang Ruby.

Daff
sumber
Penafian: MCollective berasal dari puppetlabs.
sjas
1

Saya telah bertanya pada diri sendiri pertanyaan yang sama, karena saya menemukan ketergantungan clusterssh pada X11 atau XQuartz pada Mac OS X mengganggu, dan di atas itu semua jendela terminal yang dibuka oleh clusterssh tampak lebih jelek daripada yang ada di Terminal.app

Begitulah cara saya menemukan skrip berbasis tmux dari Joerg Jaspert di blognya: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

Pada dasarnya Anda mengetik tm ms HOST1 user@HOST2dan membuka sesi dengan satu jendela tmux yang terdiri dari dua panel

Endre
sumber
0

Bash prompt berfungsi untuk hal-hal sederhana:

membuat daftar server di servers.txt, satu baris per server.

lalu lakukan:

$ while read $server; do ssh user@$server "command args"; done < servers.txt
Rob Shinn
sumber
1
Saya ingin cara interaktif untuk menggunakan semua server. Bash tidak bisa membantu dalam kasus itu. Cluster ssh bekerja paling baik dalam hal ini, tetapi terbatas.
Farhan