Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以编程方式配置EC2实例_Python_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Python 以编程方式配置EC2实例

Python 以编程方式配置EC2实例,python,amazon-web-services,amazon-ec2,Python,Amazon Web Services,Amazon Ec2,我有一个AMI,上面预装了一些软件。当我创建一个新实例时,我必须SSH到机器中,并根据服务器的用例运行一些脚本 例如: ssh ubuntu@1.2.3.4 -i aws.pem && ./type1.sh ssh ubuntu@5.6.7.8 -i aws.pem && ./type2.sh 有没有办法使这个过程自动化?我正在使用python。我知道我可以使用boto来支持服务器,但我不确定连接到服务器和运行脚本的最佳实践。除了构建自己的基于python的

我有一个AMI,上面预装了一些软件。当我创建一个新实例时,我必须SSH到机器中,并根据服务器的用例运行一些脚本

例如:

ssh ubuntu@1.2.3.4 -i aws.pem  && ./type1.sh
ssh ubuntu@5.6.7.8 -i aws.pem  && ./type2.sh

有没有办法使这个过程自动化?我正在使用python。我知道我可以使用boto来支持服务器,但我不确定连接到服务器和运行脚本的最佳实践。

除了构建自己的基于python的解决方案之外,您只需使用AWS已经提供的EC2实例首次启动后运行代码的功能即可

在创建EC2实例时,您可以提供一些所谓的“用户数据”,其中可以包含在实例首次启动后执行的代码。这对于创建EC2实例的所有方法都是可能的,无论是管理控制台、CLI、API、
boto3
还是CloudFormation。AWS文档包含了非常广泛的信息,说明了如何工作:

例如,如果您使用
boto3
创建EC2实例,则如下所示:

导入boto3
ec2_client=boto3.client(“ec2”)
ec2_client.run_实例(ImageId=“ami-abcd1234”,
InstanceType=“m3.medium”,
SubnetId=“subnet-abcd1234”,
SecurityGroupId=[“sg-abcd1234”],
UserData=“/home/ubuntu/type1.sh”
)

不用构建自己的基于python的解决方案,只需使用AWS已经提供的EC2实例首次启动后运行代码的功能即可

在创建EC2实例时,您可以提供一些所谓的“用户数据”,其中可以包含在实例首次启动后执行的代码。这对于创建EC2实例的所有方法都是可能的,无论是管理控制台、CLI、API、
boto3
还是CloudFormation。AWS文档包含了非常广泛的信息,说明了如何工作:

例如,如果您使用
boto3
创建EC2实例,则如下所示:

导入boto3
ec2_client=boto3.client(“ec2”)
ec2_client.run_实例(ImageId=“ami-abcd1234”,
InstanceType=“m3.medium”,
SubnetId=“subnet-abcd1234”,
SecurityGroupId=[“sg-abcd1234”],
UserData=“/home/ubuntu/type1.sh”
)

我不确定您想自动化什么。脚本不是已经为你自动化了一些过程吗?@busybear基本上我想自动化整个生命周期。因此,我使用boto创建了一个实例,然后“以某种方式”将ssh插入机器并运行脚本。我只是好奇人们是如何完成“不知何故”部分的。@busybear我想我是想得太多了。我想我已经有我的解决方案了。paramiko是一个用于SSH的Python包,如果这正是您想要的,我不确定您想要自动化什么。脚本不是已经为你自动化了一些过程吗?@busybear基本上我想自动化整个生命周期。因此,我使用boto创建了一个实例,然后“以某种方式”将ssh插入机器并运行脚本。我只是好奇人们是如何完成“不知何故”部分的。@busybear我想我是想得太多了。我想我已经有我的解决方案了。paramiko是一个用于SSH的Python包,如果您正在寻找的话。