The way I've done it is to export (via the debug interface and the BPE) all of the definitions for all objects that make up my system - this includes resources, roles, organizations, identity attributes, etc. etc. I then built an installation script that will read in each of these files to build my production system. Then for production installation, I simply import a single exchange file that builds the entire environment.
This allows allows good system configuration and change control as all changes to configuration in production are done via the import of exchange files.