Question

I'm using the AWS CLI to launch instances, and the command is: aws ec2 run-instances

what i'm expecting is to pass in a script as the user-data. so, I did: DATA=base64 ./my_script on my Mac OSX, and then pass the DATA by: aws ec2 run-instances --user-data $DATA

BUT, nothing happened after the instance launched

So, how exactly should I do?

Thanks!!

Was it helpful?

Solution

There is no need to base64 encode the data yourself.

You can prefix a file name/path with file://

So,

aws ec2 run-instances --user-data file://my_script

or

aws ec2 run-instances --user-data file:///full/path/to/my_script

OTHER TIPS

To pass the script as a string, make sure to specify the interpreter as normal prior to your commands. Hitting enter in the open string allows for adding a new line. Ex.:

$ aws ec2 run-instances --image-id ami-16d4986e --user-data '#!/bin/bash
> poweroff'
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top