Thay thế cụm để quản lý nhiều máy chủ SSH [đã đóng]


11

Có sự thay thế nào cho Cl clustersh, pssh, v.v., để quản lý nhiều máy chủ dựa trên ssh thông qua một giao diện không?

Một điểm yếu trong Cl clustersh là các máy chủ của tôi sử dụng xác thực dựa trên khóa, với mật khẩu để đăng nhập và không có cách nào để đăng nhập vào máy chủ bằng khóa riêng.

Có sự thay thế nào khả dụng hỗ trợ xác thực bằng khóa riêng không?


Vấn đề của bạn là psshgì? Bạn có cần song song hay chỉ là một chương trình để quản lý nhiều máy chủ SSH?
lượng tử

Tôi thực sự cần phải xem đầu ra thời gian thực của một vài loại lệnh mà tôi chạy trên các máy chủ. giống như Cluster-ssh nào.
Farhan

2
Hãy xem pssh's -Plựa chọn.
lượng tử

2
@Farhan tại sao bạn không sử dụng ansible?
c4f4t0r

Câu trả lời:


6

Hãy xem trên Rundeck - http://rundeck.org/


nó có vẻ tốt nhưng tôi bị kẹt ở THÊM Các nút cho nó. Có cách nào đơn giản để thêm máy chủ vào nó không? vì nó chỉ chấp nhận các tệp dựa trên mẫu xml cụ thể cho các nút được thêm vào :(
Farhan

9
  1. Sợi vải

    Xác định nhiệm vụ của bạn trước:

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

    Sau đó thực hiện thông qua fabcông cụ dòng lệnh:

    $ 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. Trình quản lý kết nối Gnome
  3. Quản lý PAC

5

Bạn có thể đi cả con lợn và cài đặt một hệ thống quản lý cấu hình như Puppet hoặc Chef . Bạn đã không đề cập đến việc bạn thực sự cố gắng quản lý bao nhiêu nút, vì vậy điều này có thể là quá mức cần thiết, nhưng, chắc chắn, bạn có thể điều khiển tập trung rất nhiều máy theo cách này. Nếu bạn nhỏ ngay bây giờ, nhưng đang phát triển, bạn cũng có thể muốn thiết lập, giả sử, Đầu bếp, trước khi bạn trở nên lớn hơn nhiều.

Nếu bạn cần chạy các lệnh ad hoc trên một tập hợp các nút cụ thể, bạn có thể làm một cái gì đó như knife ssh 'roles:webserver' 'hostname'(dao là công cụ dòng lệnh cho đầu bếp) để chạy hostnamelệnh cho tất cả các nút có vai trò máy chủ web.


Tôi có khoảng 15-20 máy chủ. Tôi đã có con rối với tôi, nhưng tôi cần tương tác thời gian thực với tất cả các thiết bị đầu cuối ssh cho một số nhiệm vụ.
Farhan

À, được rồi Tôi đoán con rối không có cơ sở ssh.
cjc

4

Tôi sử dụng các tập lệnh mong đợi để tự động hóa các thông tin đăng nhập (đặc biệt là vì tôi phải chuyển qua một hộp jumb và nhập vào một chroot và phải nhập rất nhiều mật khẩu) và thực hiện một số "điều chỉnh" cho cấu hình của cssh. Vì vậy, tôi có "tập lệnh chính" này trong thư mục bin của mình có "tên máy chủ / bí danh", nó đưa tôi vào máy chủ mà tôi muốn và nơi tôi muốn.

Trong ~ / .cl clustersh / config tôi đã đặt tham số "ssh" để trỏ đến tập lệnh của mình, "ssh_args" phải được đặt thành một đối số vô hại / giả, đó là vì cssh có danh sách đối số mặc định, nếu thực sự để trống danh sách mặc định sẽ kết thúc với tập lệnh.

Vì vậy, tập lệnh (trong mỗi cửa sổ / thiết bị đầu cuối) sẽ nhận được đối số này và 1 trong số các đối số được cung cấp cho cssh, tập lệnh mà nó phục hồi từ một tệp cho máy chủ đã cho, thông tin đăng nhập được đặt và các bước cần thực hiện để đến nơi Tôi muốn, sau đó nó gọi "mã mong đợi" với tất cả dữ liệu đó.

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

vì vậy tôi thường gọi nó bằng một cái gì đó như thế này

# cssh q4 q5 q6 q7

nó cũng hoạt động với "bí danh cụm" có cụm "q ALL q4 q5 q6 q7" Tôi có thể gọi với cssh q ALL

Hy vọng nó sẽ giúp được ai khác.



2

Bạn cũng nên xem MCollective , đây có lẽ là cách tốt nhất và linh hoạt nhất để tương tác với nhiều máy chủ trong thời gian thực. Đó là một chút cam kết để thiết lập chính xác và có thể là một chút vượt quá nhu cầu của bạn, nhưng nó chắc chắn đánh bại pssh, Cl clustersh và tất cả các giải pháp dựa trên SSH khác. Và một khi bạn đã có nó, có lẽ bạn không thể làm gì với nó, miễn là bạn biết một chút về Ruby.


Disclaimer: MCollective là từ con rối.
sjas

1

Tôi đã tự hỏi mình câu hỏi tương tự, vì tôi thấy sự phụ thuộc của cụm vào X11 hoặc XQuartz trên Mac OS X gây phiền nhiễu, và trên hết là các cửa sổ đầu cuối được mở bởi cl clustersh trông xấu hơn so với Terminal.app

Đó là cách tôi tình cờ tìm thấy một kịch bản dựa trên tmux từ Joerg Jaspert trên blog của mình: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

Về cơ bản bạn gõ tm ms HOST1 user@HOST2và nó mở một phiên với một cửa sổ tmux bao gồm hai khung


0

Dấu nhắc bash hoạt động cho những điều đơn giản:

lập danh sách các máy chủ trong server.txt, một dòng trên mỗi máy chủ.

sau đó làm:

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

1
tôi muốn một cách tương tác để sử dụng tất cả các máy chủ. bash không thể giúp đỡ trong trường hợp đó. Cluster ssh hoạt động tốt nhất trong trường hợp đó, nhưng hạn chế của nó.
Farhan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.