Most of the time the base OS is from a pre created golden 'image' for the flavour of OS you want, that image can have software pre-installed on it. But the idea is that you have a base image with just the OS on it and maybe a puppet client.
And as part of the bootstrap phase of that image you will start it up and then execute a bunch of commands on first boot that makes that machine unique, e.g. get ip's, generate hostname, register with puppet master, put some ssh keys on their, and pull down the software / code you are deploying.
Look up the concept of AMI (Amazon Machine Images) alongside EC2 User Data Scripts - Running Commands on Your Linux Instance at Launch - Amazon Elastic Compute Cloud
** PM for Cloud Consultancy Rates ;-)
And as part of the bootstrap phase of that image you will start it up and then execute a bunch of commands on first boot that makes that machine unique, e.g. get ip's, generate hostname, register with puppet master, put some ssh keys on their, and pull down the software / code you are deploying.
Look up the concept of AMI (Amazon Machine Images) alongside EC2 User Data Scripts - Running Commands on Your Linux Instance at Launch - Amazon Elastic Compute Cloud
** PM for Cloud Consultancy Rates ;-)
Comment