The first tool required to begin deploying our platform-like code is to introduce a configuration management system. Although it is certainly possible to automate the deployment of OpenStack using shell scripts (we've seen it done), using a declarative configuration management tool makes it much more simple for your team to track changes between iterations.
Also, an OpenStack configuration can contain hundreds of variables that need to be set across several configuration files on dozens of hosts. For example, our lab deployment of OpenStack has 137 parameters set in the composition layer. Managing this level of complexity with shell scripts introduces another unnecessary level of complexity.
Every OpenStack user survey for the past couple of years has asked the community how they typically deploy OpenStack. Although a wide variety...