When installing Drupal for different sites I find myself frequently installing the same modules over and over again. In the interest of DRY, how can I create a kind of custom site "template" which would allow me to install drupal and have the basic modules I install already installed, basic theme set, and possibly some other common configuration options set?
I've read a little about Drupal profiles and I've seen the Drush tool and perhaps there are other tools besides these. I'm wondering what's the best way to do this?
UPDATE
Ok so it seems Drush make and Drupal installation profiles are the correct tools for the job. I found these blog posts which talk about them:
I feel like I've got almost all the puzzle pieces. What I'm still not clear on is how to combine the drush make process with the profiles? How do you get your profile files into the profiles directory of the drupal install that drush make creates? Or should I just do this via a shell script?
UPDATE 2
I found this video:
http://chicago2011.drupal.org/sessions/zero-distribution-using-features-profiler-and-drush-make
which explains using drush make with profiler. Seems like the connection between drush make and profiles is you have one drush make file which downloads only drupal and your profile. Then inside your profile "module" you have another drush make file which will download all your module components.
The video also talks about features which is another level of drupal setup automation.
I'm not sold on this work flow. It all seems a little convoluted. However this was my first exposure so maybe I will appreciate it more later. I like drush make but I'm thinking I can use drush to enable modules instead of messing with profiles. I think I will make a bash shell script that runs drush make and then uses plain drush to enable modules.
Next step would be how to do some configuration of the modules in a repeatable way. I guess this might be features? Or maybe I should look further into profiles.