ssm = boto3.client('ssm')
testCommand = ssm.send_command(InstanceIds=[ 'i-123123123123' ], DocumentName='AWS-RunShellScript', Comment='la la la', OutputS3BucketName='myOutputS3Bucket', OutputS3KeyPrefix='i-123123123123', Parameters={ "commands":[ "ip config" ] })
i-123123123123 est un identifiant d'instance EC2 faire semblant. Je l'ai mis dans le OutputS3KeyPrefix pour obtenir un emplacement unique pour stocker les journaux dans le compartiment.
Vous pouvez installer l'agent ssm comme ceci;
ec2r = boto3.resource('ec2')
userdata = """#cloud-config
runcmd:
- /home/ec2-user/sudo npm run prod
- cd /tmp
- curl https://amazon-ssm-%s.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm
- yum install -y amazon-ssm-agent.rpm
""" % region
if ssm == "on":
instance = ec2r.create_instances(ImageId=ami, MinCount=1, MaxCount=1, KeyName=keyname, InstanceType=instancetype,
NetworkInterfaces=[{
'DeviceIndex': 0,
'AssociatePublicIpAddress': False,
'SubnetId': mySub,
'Groups': secGroupList,
'AssociatePublicIpAddress': AssociatePublicIpAddress
}],
Monitoring={ 'Enabled': False },
UserData=userdata,
IamInstanceProfile={
'Name': rolename
},
EbsOptimized=False
)
Merci beaucoup pour cela. Je vais essayer Paramiko. – sdeshpande
Jetez aussi un coup d'œil à la commande d'exécution EC2 récemment annoncée: https://aws.amazon.com/blogs/aws/new-ec2-run-command-remote-instance-management-at-scale/. Le blog suggère qu'il est supporté dans boto3 et l'awscli, bien que je ne l'ai pas encore trouvé. Voici la FAQ: https://aws.amazon.com/ec2/run-command/faqs/ – jarmod
ne fonctionne pas pour moi – Gil