Ich versuche ein Python-Skript auszuführen, das eine Instanz starten und dann einige Befehle ausführen kann. Ich weiß, dass es übergeben werden kann, wenn ich versuche, eine Instanz in Form von Userdata zu erstellen. Was ich herausfinden möchte, ist, wie ich es weitergeben soll, wenn ich eine bereits erstellte Instanz starte. Im Folgenden finden Sie den Code boto3 mit einfacher Hallo Welt passieren, während eine Instanz zu schaffen:Wie übergebe ich Befehle an ec2, nachdem ich eine Instanz aus dem Python-Skript gestartet habe?
import boto3
userdata = """#cloud-config
repo_update: true
repo_upgrade: all
packages:
- s3cmd
runcmd:
- echo 'Hello S3!' > /tmp/hello.txt
- aws --region YOUR_REGION s3 cp /tmp/hello.txt s3://YOUR_BUCKET/hello.txt
"""
ec2 = boto3.resource('ec2')
instances = ec2.create_instances(
ImageId='ami-f5f41398', # default Amazon linux
InstanceType='t2.micro',
KeyName='YOUR_SSH_KEY_NAME',
MinCount=1,
MaxCount=1,
IamInstanceProfile={
'Arn': 'YOUR_ARN_ID'
},
SecurityGroupIds=['YOUR_SECURITY_GROUP_NAME'],
UserData=userdata
)
So etwas wie
i = ec2.Instance(id='i-5fea4d42')
i.start('pass commands here: eg echo xx, mv a b/ etc')
Sie möchten jedes Mal einen anderen Befehl ausführen oder denselben Befehl in den Benutzerdaten? – helloV
Ich versuche Befehle auf dem ec2 shel auszuführen. Sie werden anders sein, ich versuche, boto und command shell zu verwenden, was nicht auf boto3 link übertragen wurde. Wahrscheinlich werde ich eine Kombination aus Paramiko und Boto3 verwenden. –