Configuring a SharePoint instance or farm is typically completed by an administrator. The next step is to create a Web application and site for your custom portal application.

you can automate them via the SPWebApplicationBuilder and SPWebApplication The following url would give you an idea of how.

http://www.warfiblog.com/automated-deployment-for-complete-website

You would need to invest time upfront to develop a deployment script like this.

Microsoft strongly encourages developers not to customize the out-of-the-box site definitions for a number of reasons(Including migration issues in migrating to 2010).

http://msdn.microsoft.com/en-us/magazine/cc507633.aspx

For Automating deployment of Custom Site definition, Pack them in to a Solution. Solutions are deployment packages for SharePoint—they can contain almost anything you need to.

For reports automation look at Shawn Feldman’s Automating Report Deployment

http://feldrox.spaces.live.com/blog/cns!C46024CE04ED4278!469.entry

Alternatively you can also write a generic utility code using COde Dom which can traverse your development environment farm and generate code required for deployment. But needs more upfront investment of time.