कई SSH सर्वर के प्रबंधन के लिए क्लस्टर्सश विकल्प [बंद]


11

क्या एक इंटरफ़ेस के माध्यम से कई ssh आधारित सर्वरों को प्रबंधित करने के लिए Clusterssh, pssh आदि का कोई विकल्प है?

क्लस्टर्सश में एक कमजोरी यह है कि मेरे सर्वर कुंजी आधारित प्रमाणीकरण का उपयोग करते हैं, लॉगिन करने के लिए पासफ़्रेज़ के साथ, और निजी कुंजी का उपयोग करके सर्वर पर लॉगिन करने का कोई तरीका नहीं है।

क्या कोई विकल्प उपलब्ध है जो निजी कुंजी के साथ प्रमाणीकरण का समर्थन करता है?


आपकी समस्या क्या है pssh? क्या आपको कई एसएसएच सर्वरों के प्रबंधन के लिए समानांतर या सिर्फ एक कार्यक्रम की आवश्यकता है?
क्वांटा

मुझे वास्तव में कुछ प्रकार के कमांड का वास्तविक समय आउटपुट देखने की आवश्यकता है जो मैं सर्वरों पर चलाता हूं। जैसे क्लस्टर-एसश करता है।
फरहान

2
पर एक नजर डालें psshके -Pविकल्प।
क्वांटा

2
@ फरहान आप अनसुनी का उपयोग क्यों नहीं करते?
c4f4t0r

जवाबों:


6

Rundeck पर एक नज़र डालें - http://rundeck.org/


यह अच्छा लगता है, लेकिन मैं बुरी तरह से इसमें फंस गया हूं। क्या इसमें सर्वर जोड़ने का एक सरल तरीका है? के रूप में यह केवल विशिष्ट xml पैटर्न आधारित फ़ाइलों को नोड्स में जोड़ने के लिए स्वीकार करता है :(
फरहान

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. सूक्ति कनेक्शन प्रबंधक
  3. PAC प्रबंधक

5

आप पूरे हॉग पर जा सकते हैं और कठपुतली या बावर्ची जैसी विन्यास प्रबंधन प्रणाली स्थापित कर सकते हैं । आपने उल्लेख नहीं किया है कि आप वास्तव में कितने नोड्स को प्रबंधित करने का प्रयास कर रहे हैं, इसलिए यह ओवरकिल हो सकता है, लेकिन, निश्चित रूप से, आप इस तरह से बहुत सारी मशीनों को नियंत्रित कर सकते हैं। यदि आप अभी छोटे हैं, लेकिन बढ़ रहे हैं, तो आप बहुत बड़ा होने से पहले, शेफ को भी कहना चाहते हैं।

यदि आपको नोड्स के एक विशिष्ट सेट पर तदर्थ कमांड चलाने की आवश्यकता है, तो आप उन सभी नोड्स के लिए कमांड knife ssh 'roles:webserver' 'hostname'चलाने के लिए कुछ ऐसा कर सकते हैं (चाकू कमांड लाइन टूल है) hostnameजो वेबसर्वर की भूमिका है।


मेरे पास लगभग 15-20 सर्वर हैं। मेरे पास पहले से ही कठपुतली है, लेकिन मुझे कुछ कार्यों के लिए सभी ssh टर्मिनलों के साथ वास्तविक समय की बातचीत की आवश्यकता है।
फरहान

आह अच्छा। मुझे लगता है कि कठपुतली एक ssh सुविधा नहीं है।
ccc

4

मैं लॉगइन को स्वचालित करने के लिए उम्मीद की स्क्रिप्ट का उपयोग करता हूं (विशेषकर इसलिए क्योंकि मुझे एक जंबो बॉक्स से गुजरना पड़ता है और एक चेरोट में प्रवेश करना होता है और बहुत सारे पासवर्ड दर्ज करने होंगे) और cssh के विन्यास में कुछ "ट्विक्स" किया। तो, मेरे पास मेरे बिन फ़ोल्डर में यह "मुख्य स्क्रिप्ट" है जिसने "सर्वर नाम / उपनाम" दिया है यह मुझे उस सर्वर में ले जाता है जिसे मैं चाहता हूं और जहां मैं चाहता हूं।

~ / .Clusterssh / config में मैंने अपनी स्क्रिप्ट को इंगित करने के लिए "ssh" पैरामीटर सेट किया है, "ssh_args" को कुछ अहानिकर / नकली arg पर सेट किया जाना चाहिए, ऐसा इसलिए है क्योंकि cssh के पास डिफ़ॉल्ट args सूची है, अगर वास्तव में खाली छोड़ दिया गया है डिफ़ॉल्ट सूची स्क्रिप्ट पर समाप्त हो जाएगी।

तो लिपि (प्रत्येक विंडो / टर्मिनल में) को यह आर्ग्स प्राप्त होगा और सीएसजी को दिए गए आर्ग्स में से 1, वह स्क्रिप्ट जो किसी सर्वर से दिए गए सर्वर के लिए एक फ़ाइल से पुन: उत्पन्न होती है और इसे आने के लिए इसे करने के लिए आवश्यक चरण मैं चाहता हूँ, तो यह सभी डेटा के साथ "उम्मीद कोड" कहता है।

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

यह क्लस्टर "qAll q4 q5 q6 q7 q7" "क्लस्टर उपनाम" के साथ भी काम कर रहा है

आशा है कि यह किसी और की मदद करता है।


4

मैं समानांतर में कई मेजबानों पर एक ही कमांड को निष्पादित करने के लिए शमक्स पसंद करता हूं


2

आपको MCollective को भी देखना चाहिए , जो वास्तविक समय में कई सर्वरों के साथ बातचीत करने का सबसे अच्छा और सबसे लचीला तरीका है। यह सही तरीके से स्थापित करने का एक उपक्रम है और आपकी आवश्यकताओं के लिए शीर्ष पर थोड़ा हो सकता है, लेकिन यह निश्चित रूप से pssh, Clusterssh और अन्य सभी SSH- आधारित समाधानों को हरा देता है। और एक बार जब आपके पास यह हो जाता है तो संभवत: ऐसा कुछ भी नहीं है जो आप इसके साथ नहीं कर सकते हैं, बशर्ते आप रूबी को थोड़ा जानते हों।


अस्वीकरण: MCollective कठपुतली से है।
साजास

1

मैंने अपने आप से एक ही सवाल पूछा है, क्योंकि मुझे मैक ओएस एक्स पर झुंझलाना X11 या XQuartz पर क्लैस्टरश की निर्भरता मिली है, और उसके ऊपर क्लस्टर्स द्वारा खोली गई टर्मिनल विंडो, टर्मिनल.एप्प की तुलना में बदसूरत दिख रही थी।

इस तरह से मैंने अपने ब्लॉग पर जोर्ज जैस्पर से एक टमक्स-आधारित स्क्रिप्ट पर ठोकर खाई: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

मूल रूप से आप टाइप करते हैं tm ms HOST1 user@HOST2और यह दो पैन वाले एक tmux विंडो के साथ एक सत्र खोलता है


0

बाश प्रॉम्प्ट सरल चीजों के लिए काम करता है:

Server.txt में सर्वर की एक सूची बनाएं, प्रति सर्वर एक लाइन।

फिर करो:

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

1
मैं सभी सर्वरों का उपयोग करने के लिए एक इंटरएक्टिव तरीका चाहता हूं। उस मामले में मदद नहीं कर सकते। क्लस्टर ssh उस मामले में सबसे अच्छा काम करता है, लेकिन यह सीमित है।
फरहान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.