New updates have been released for all of the Ubuntu AMIs listed on:
Though this release is only 3 days after the previous one it is
surprisingly not to fix bugs, but rather to add one of the most
demanded features: startup hooks.
Thanks to code submitted by Kim Scheibel and Jorge Oliveira (with a
little mangling from me) it is now easy to type a single command (or
push a button in Elasticfox) and have an Ubuntu instance start up and
immediately install, configure, and run software without any
additional manual intervention.
Simply pass a script (starting with
#!) as the instance user-data and
it will be run automatically on the first boot. If you want it to be
run on every boot, see the comments at the top of this file:
For example, to start a Hardy LAMP server, you could create a script
named “install-lamp-server” with the contents:
apt-get upgrade -y
apt-get install -y lamp-server^
echo "Please remember to set the MySQL root password!"
Then using the latest Ubuntu 8.04 Hardy base install AMIID (from
http://alestic.com) run a command like:
ec2-run-instances --user-data-file install-lamp-server --key IDENTITY AMIID
A couple minutes later, you should be able to connect to the server’s
external hostname with a web browser. To see the progress of your
user-data script on the instance:
tail -f /var/log/syslog
Output from the user-data script is also available in the EC2 instance
console output for convenient remote debugging.
You can write the user-data script in any language that happens to be
on the base AMI (bash, perl, python, ruby, awk, …) as long as the
program file starts with:
Note that there is a size limit on user-data in EC2, but the user-data
script may download additional files from S3 or other locations, so
this shouldn’t be too constraining.
Now let the competition begin for coolest and most useful instance