2013-03-19 6 views
10

पर खोल कमांड I EC2 और boto के लिए नौसिखिया हूँ। मेरे पास एक ईसी 2 चल रहा उदाहरण है और मैं एक शेल कमांड निष्पादित करना चाहता हूं जैसे उदा। apt-get update बोटो के माध्यम से।बीटो निष्पादन ec2 उदाहरण

मैंने run_instances कमांड में user_data का उपयोग करके समाधान ढूंढ लिया और उदाहरण दिया कि उदाहरण पहले ही लॉन्च हो गया है?

मुझे यह भी नहीं पता कि यह संभव है या नहीं। इस संदर्भ में कोई सुराग एक बड़ी मदद होगी।

+0

संपादन के लिए धन्यवाद स्टीफन। सुधार याद रखेंगे। – vibhor

+0

संबंधित: [एसएसएच कैसे करें और boto3 का उपयोग कर ईसी 2 में आदेश चलाएं?] (Https://stackoverflow.com/q/42645196/55075) – kenorb

उत्तर

20

boto.manage.cmdshell मॉड्यूल का उपयोग करने के लिए इसका उपयोग किया जा सकता है। इसका उपयोग करने के लिए, आपके पास paramiko पैकेज स्थापित होना चाहिए। इसका उपयोग का एक सरल उदाहरण:

import boto.ec2 
from boto.manage.cmdshell import sshclient_from_instance 

# Connect to your region of choice 
conn = boto.ec2.connect_to_region('us-west-2') 

# Find the instance object related to my instanceId 
instance = conn.get_all_instances(['i-12345678'])[0].instances[0] 

# Create an SSH client for our instance 
# key_path is the path to the SSH private key associated with instance 
# user_name is the user to login as on the instance (e.g. ubuntu, ec2-user, etc.) 
ssh_client = sshclient_from_instance(instance, 
            '<path to SSH keyfile>', 
            user_name='ec2-user') 
# Run the command. Returns a tuple consisting of: 
# The integer status of the command 
# A string containing the output of the command 
# A string containing the stderr output of the command 
status, stdout, stderr = ssh_client.run('ls -al') 

वह स्मृति से टाइप किया गया था लेकिन मुझे लगता है कि यह सही है।

आप फैब्रिक (http://docs.fabfile.org/) भी देख सकते हैं जिसमें समान कार्यक्षमता है लेकिन इसमें अधिक परिष्कृत सुविधाएं और क्षमताएं भी हैं।

+0

बहुत धन्यवाद गार्नाट। यह जांचने की अच्छी ज़रूरत है। – vibhor

+0

लिंक के लिए धन्यवाद और एक संक्षिप्त तुलना – Forethinker

+0

यदि आप 'cmdshell'' का उपयोग करना चाहते हैं तो आपको paramiko इंस्टॉल करने की आवश्यकता है। यह बोटो में निर्भरता के रूप में सूचीबद्ध नहीं है क्योंकि कुछ प्लेटफॉर्म पर स्थापित करना मुश्किल हो सकता है और 'cmdshell'' बोटो कार्यक्षमता के लिए मूल नहीं है। – garnaat

2

मुझे लगता है कि आप अपनी आवश्यकताओं के लिए कपड़े का उपयोग कर सकते हैं। बस एक बार कपड़े रैपर की जांच करें। आप कपड़े पुस्तकालय के माध्यम से रिमोट सर्वर खोल पर कमांड निष्पादित कर सकते हैं।

यह उपयोग करना बहुत आसान है और आप दोनों बोटो और कपड़े को एकीकृत कर सकते हैं। साथ में वे शानदार काम करते हैं।

प्लस एक ही कमांड को नोड्स की संख्या में निष्पादित किया जा सकता है। जो मुझे विश्वास है कि आपकी आवश्यकताओं

बस इसे जांचें।

+0

हाँ जॉर्ज कि आप सही थे। यह वास्तव में एक बड़ी मदद थी लेकिन मेरी समस्या पहले ही हल हो चुकी थी। और मैं केवल कपड़े का उपयोग करता हूं। वैसे भी मेरी तरफ से +1 और मैं भी आपके answerr स्वीकार कर रहा हूँ – vibhor

संबंधित मुद्दे