python - कैसे एसएसएच और EC2 में आदेश boto3 का उपयोग चलाने के लिए?




amazon-ec2 (4)

आप अजगर से SSH नहीं करते आप EC2 उदाहरण के साथ बातचीत करने के लिए boto3 मॉड्यूल का उपयोग कर सकते हैं।

यहां आपके पास boto3 का पूरा प्रलेखन है और आप इसके साथ कैसे चल सकते हैं

मैं एक ईसी 2 उदाहरण में एसएसएच में सक्षम होना चाहता हूं, और इस तरह से कुछ शेल कमांड चलाता हूं।

मैं इसे boto3 में कैसे करूँ?


बोटो ने एस्एएसएच को ईसी 2 उदाहरणों में प्रोग्राममिक रूप से परमिको का उपयोग करने का एक तरीका प्रदान किया और फिर कमांड चलाए। Boto3 में यह कार्यक्षमता शामिल नहीं है आप संभवतः बोत्तो 3 के साथ काम करने के लिए बोत्तो कोड को संशोधित कर सकते हैं बिना भारी मात्रा में प्रयास किए या आप कपड़े या उत्तरदायी की तरह कुछ का उपयोग कर सकते हैं जो ईसी 2 के उदाहरणों पर दूरस्थ रूप से निष्पादित करने के लिए अधिक शक्तिशाली तरीके प्रदान करते हैं


यह धागा थोड़ी पुरानी है, लेकिन जब से मैंने एक सरल समाधान की खोज करते हुए एक निराशाजनक दोपहर बिताया है, मैं इसे साझा भी कर सकता हूं।

एनबी यह ओपी के प्रश्न का सख्त उत्तर नहीं है, क्योंकि यह एसएसएच का प्रयोग नहीं करता है। लेकिन, बीओटी 3 का एक बिंदु यह है कि आपको नहीं करना है - इसलिए मुझे लगता है कि ज्यादातर परिस्थितियों में ओपी के लक्ष्य को हासिल करने का यह पसंदीदा तरीका होगा क्योंकि वह अपने मौजूदा बीओटीओ 3 कॉन्फ़िगरेशन का उपयोग त्रिवेणी से कर सकता है।

एडब्लूएस 'रन कमांड को बोटोकोरे में बनाया गया है (इसलिए यह दोनों बीटो और बीओटी 3 पर लागू हो सकता है, जहां तक ​​मुझे पता है), लेकिन अस्वीकरण: मैंने केवल बीटीओ 3 के साथ इसका परीक्षण किया है

def execute_commands_on_linux_instances(client, commands, instance_ids):
    """Runs commands on remote linux instances
    :param client: a boto/boto3 ssm client
    :param commands: a list of strings, each one a command to execute on the instances
    :param instance_ids: a list of instance_id strings, of the instances on which to execute the command
    :return: the response from the send_command function (check the boto3 docs for ssm client.send_command() )
    """

    resp = client.send_command(
        DocumentName="AWS-RunShellScript", # One of AWS' preconfigured documents
        Parameters={'commands': commands},
        InstanceIds=instance_ids,
    )
    return resp

# Example use:
ssm_client = boto3.client('ssm') # Need your credentials here
commands = ['echo "hello world"']
instance_ids = ['an_instance_id_string']
execute_commands_on_linux_instances(ssm_client, commands, instance_ids)

विंडोज इंस्टेंस पावरशेल्म्स के लिए आप एक वैकल्पिक विकल्प का प्रयोग करेंगे:

        DocumentName="AWS-RunPowerShellScript",

उदाहरणों पर कमांड चलाने के लिए उदाहरण और कपड़े खोजने के लिए boto3 का उपयोग करें







boto3