我有一个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来支撑服务器,但是我不确定在连接到服务器和运行脚本方面的最佳做法。
答案 0 :(得分:4)
您无需构建自己的基于python的解决方案,而只需使用在AWS已提供的EC2实例首次启动后运行代码的功能。
创建EC2实例时,您可以提供一些所谓的“用户数据”,其中可以包含在实例首次启动后执行的代码。创建EC2实例的所有方式都是可行的,无论是管理控制台,CLI,API,boto3
还是CloudFormation。 AWS文档包含相当广泛的信息,其工作方式如下:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
如果使用boto3
创建EC2实例,例如:
import boto3
ec2_client = boto3.client("ec2")
ec2_client.run_instances(ImageId="ami-abcd1234",
InstanceType="m3.medium",
SubnetId="subnet-abcd1234",
SecurityGroupIds=["sg-abcd1234"],
UserData="/home/ubuntu/type1.sh"
)