So you have decided you want to venture into the bowels of DEVSTACKpy and want to alter what is installed/started/stopped, the order of what is installed/started/stopped, what subsystems are activated (or the component options). This wiki will hopefully make that adventure simpler by listing out the key places, files and configs that may have to be adjusted to get that to work. This tape will self-destruct in 5 seconds. 1..2..3..4..5, boom!
One of the most useful things to do will be to get a virtual machine with your distribution and setup a stable state. Create a snapshot of that stable state just in-case you bork your machine later on.
Now turn ensure you run DEBUG/VERBOSE logging using -vv. This will be useful to see exactly what actions and commands are being ran instead of the default INFO level logging which is just meant for simple informational messages about the underlying actions which are occurring.
By looking at the config folder personas you should a file called devstack.sh.yaml. This file contains the component order of installation (ie the db before keystone), a nice useful description of the persona and subsystems for the previously specified components and any options these components may have. So you first task is to determine exactly what of these you wish to change (if any). Note that changing the component order may not always work (ie typically starting components are dependent, ie the message queue needs to be started before nova). To add in new components check the distros folder to determine exactly what that component is named (typically this is common) and alter the persona file as desired. To alter the subsystems or options section you will have to jump in the code and check for what these values could be (TODO make that better).