this is the side project i’m working on now.
so far i can get X instances up of a given AMI Y with whatever tags Z you want on them and some DB records of these instances.
after the isntances are all running, my script attempts to copy over a shell script to execute on each instance (the copying happens in parallel and in a non-blocking manner).
then I connect to each instance over SSH and run the shell script I just copied over (parallel + nonblocking using gevent).
the shell script each instance runs is basically a set of commands to install puppet and connect to a puppet master.
so far the scripts will download puppet + dependencies, but i dont keep a puppet master running normally.
ill spend some time later setting up a puppet master. and to get more advanced, running masterless puppet would be ideal, although I haven’t explored that at all or tried to learn it.
setting up puppet though is pretty annoying, at least when I tried for hours one weekend. I eventually got it running, but it took so long I didn’t care.
I suppose the next step is to see puppet through to manage role based deployments.
i know there are simpler configuration management tools than puppet, but puppet is probably the most comprehensive tool out there from what I read.