ทางเลือกกลุ่มสำหรับการจัดการเซิร์ฟเวอร์ SSH หลายแห่ง [ปิด]


11

มีทางเลือกอื่นสำหรับ Clusterssh, pssh ฯลฯ เพื่อจัดการเซิร์ฟเวอร์ที่ใช้ ssh หลายตัวผ่านทางอินเทอร์เฟซเดียวหรือไม่?

จุดอ่อนข้อหนึ่งของ Clusterssh คือเซิร์ฟเวอร์ของฉันใช้การพิสูจน์ตัวตนจากคีย์ด้วย passhprase เพื่อเข้าสู่ระบบและไม่มีวิธีการเข้าสู่เซิร์ฟเวอร์โดยใช้ไพรเวตคีย์

มีทางเลือกใดบ้างที่รองรับการตรวจสอบสิทธิ์ด้วยปุ่มส่วนตัว?


คุณมีปัญหาpsshอะไร คุณต้องการขนานหรือเพียงแค่โปรแกรมในการจัดการเซิร์ฟเวอร์ SSH หลายตัวหรือไม่?
ควอนตั้ม

จริง ๆ แล้วฉันต้องการเห็นเอาต์พุตแบบเรียลไทม์ของคำสั่งบางประเภทที่ฉันรันบนเซิร์ฟเวอร์ เช่นเดียวกับ Cluster-ssh
Farhan

2
ลองดูที่pssh's -Pตัวเลือก
ควอนตั้ม

2
@Farhan ทำไมคุณไม่ใช้ ansible?
c4f4t0r

คำตอบ:


6

ดูที่ Rundeck - http://rundeck.org/


มันดูดี แต่ฉันติดอยู่ที่การเพิ่มโหนดไปยังมันไม่ดี มีวิธีง่ายๆในการเพิ่มเซิร์ฟเวอร์หรือไม่ เป็นเพียงยอมรับไฟล์เฉพาะรูปแบบ XML ที่ใช้สำหรับโหนดที่จะเพิ่ม :(
Farhan

9
  1. ผ้า

    กำหนดภารกิจของคุณก่อน:

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

    จากนั้นดำเนินการผ่านfabเครื่องมือบรรทัดคำสั่ง:

    $ 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
  3. ผู้จัดการ PAC

5

คุณสามารถไปทั้งหมูและติดตั้งระบบการจัดการการกำหนดค่าเช่นหุ่นกระบอกหรือเชฟ คุณยังไม่ได้กล่าวถึงจำนวนโหนดที่คุณพยายามจัดการจริง ๆ ดังนั้นนี่อาจเกินความจริง แต่แน่นอนคุณสามารถควบคุมเครื่องจักรจำนวนมากด้วยวิธีนี้ หากคุณยังเล็กอยู่ แต่กำลังเติบโตคุณอาจต้องการตั้งค่าพูดว่า Chef ก่อนที่คุณจะยิ่งใหญ่

หากคุณต้องการรันคำสั่ง ad hoc บนชุดของโหนดที่เฉพาะเจาะจงคุณสามารถทำสิ่งต่าง ๆknife ssh 'roles:webserver' 'hostname'(มีดเป็นเครื่องมือบรรทัดคำสั่งสำหรับพ่อครัว) เพื่อเรียกใช้hostnameคำสั่งสำหรับโหนดทั้งหมดที่มีบทบาทเว็บเซิร์ฟเวอร์


ฉันมีประมาณ 15-20 server.i มีหุ่นเชิดกับฉันอยู่แล้ว แต่ฉันต้องการการโต้ตอบแบบเรียลไทม์กับเทอร์มินัล ssh ทั้งหมดสำหรับงานบางอย่าง
Farhan

อาโอเค. ฉันเดาว่าหุ่นเชิดนั้นไม่มีสิ่งอำนวยความสะดวก ssh
cjc

4

ฉันใช้สคริปต์ที่คาดว่าจะเข้าสู่ระบบโดยอัตโนมัติ (โดยเฉพาะอย่างยิ่งเพราะฉันต้องผ่านกล่อง jumb และป้อนใน chroot และต้องป้อนรหัสผ่านจำนวนมาก) และ "บิด" บางอย่างเพื่อปรับแต่งของ cssh ดังนั้นฉันจึงมี "สคริปต์หลัก" นี้ในโฟลเดอร์ถังขยะของฉันที่กำหนด "ชื่อเซิร์ฟเวอร์ / ชื่อแทน" มันจะพาฉันไปยังเซิร์ฟเวอร์ที่ฉันต้องการและที่ที่ฉันต้องการ

ใน ~ / .clusterssh / config ฉันได้ตั้งค่าพารามิเตอร์ "ssh" ให้ชี้ไปที่สคริปต์ของฉันและต้องตั้งค่า "ssh_args" เป็น ARG ที่ไร้เดียงสา / ปลอมบางอย่างนั่นเป็นเพราะ cssh มีรายการ args เริ่มต้นหากปล่อยว่างไว้จริง ๆ รายการเริ่มต้นจะเป็นสคริปต์

ดังนั้นสคริปต์ (ในแต่ละหน้าต่าง / เทอร์มินัล) จะได้รับ args นี้และ 1 ของ args ที่กำหนดให้กับ cssh สคริปต์นั้นจะกู้คืนจากไฟล์สำหรับเซิร์ฟเวอร์ที่กำหนดชุดข้อมูลรับรองและขั้นตอนที่ต้องทำเพื่อให้ได้มาซึ่ง ฉันต้องการแล้วเรียกรหัส "คาดหวัง" กับข้อมูลทั้งหมดนั้น

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

ดังนั้นฉันมักจะเรียกมันว่าเป็นอย่างนี้

# cssh q4 q5 q6 q7

มันยังทำงานกับ "aliases คลัสเตอร์" ที่มีคลัสเตอร์ "qAll q4 q5 q6 q7" ฉันสามารถโทรด้วย cssh qAll

หวังว่าจะช่วยคนอื่น


4

ฉันชอบshmuxสำหรับการดำเนินการคำสั่งเดียวกันกับโฮสต์จำนวนมากในแบบคู่ขนาน


2

คุณควรดูที่MCollectiveซึ่งอาจเป็นวิธีที่ดีที่สุดและยืดหยุ่นที่สุดในการโต้ตอบกับเซิร์ฟเวอร์หลายเครื่องในเวลาจริง เป็นบิตของการตั้งค่าอย่างถูกต้องและอาจจะเป็นบิตสำหรับความต้องการของคุณ แต่แน่นอนเต้น pssh, Clusterssh และโซลูชั่นอื่น ๆ ที่ใช้ SSH และเมื่อคุณมีมันแล้วคงไม่มีอะไรที่คุณไม่สามารถทำได้ถ้าคุณรู้ว่าทับทิม


คำเตือน: MCollective มาจากหุ่นเชิด
sjas

1

ฉันถามตัวเองด้วยคำถามเดียวกันเนื่องจากฉันพบว่าการพึ่งพากลุ่ม clusterssh ใน X11 หรือ XQuartz บน Mac OS X น่ารำคาญและยิ่งกว่านั้นเทอร์มินัล windows ที่เปิดโดย clusterssh ดูน่าเกลียดกว่าใน Terminal.app

นั่นเป็นวิธีที่ฉันสะดุดกับสคริปต์ที่ใช้ tmux จาก Joerg Jaspert ในบล็อกของเขา: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

โดยทั่วไปคุณพิมพ์tm ms HOST1 user@HOST2และมันจะเปิดเซสชั่นที่มีหนึ่งหน้าต่าง tmux ประกอบด้วยสองบานหน้าต่าง


0

bash prompt ใช้งานได้ง่าย:

ทำรายการเซิร์ฟเวอร์ใน servers.txt หนึ่งบรรทัดต่อเซิร์ฟเวอร์

จากนั้นทำ:

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

1
ฉันต้องการวิธีการโต้ตอบเพื่อใช้เซิร์ฟเวอร์ทั้งหมด ทุบตีไม่สามารถช่วยได้ในกรณีนั้น คลัสเตอร์ ssh ทำงานได้ดีที่สุดในกรณีนั้น แต่มีข้อ จำกัด
Farhan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.