gpt4 book ai didi

python - Boto 在 ec2 实例上执行 shell 命令

转载 作者:太空狗 更新时间:2023-10-29 17:55:32 25 4
gpt4 key购买 nike

我是 EC2 和 boto 的新手。我有一个 EC2 运行实例,我想执行一个 shell 命令,例如apt-get update 通过 boto。

我搜索了很多并在 run_instances 中找到了使用 user_data 的解决方案命令,但如果实例已经启动怎么办?

我什至不知道这是否可能。此引用资料中的任何线索都会有很大帮助。

最佳答案

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')

这是凭内存输入的,但我认为它是正确的。

您还可以查看 Fabric ( http://docs.fabfile.org/ ),它具有类似的功能,但还具有更复杂的特性和功能。

关于python - Boto 在 ec2 实例上执行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15501845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com