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!!
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
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'