Using configuration management tooling just to deploy applications is not enough; Continuous Delivery and deployment are only as quick as its slowest component. So having to wait for manual network or infrastructure changes is not an option; all components need to be built, versioned, and have their deployment automated.
When looking at building new environments from scratch, multiple deployment artifacts need to be used to build an environment; application code is just one piece of the jigsaw.
The following dependencies are required to build a redundant environment:
Infrastructure (base operating systems and virtual or physical servers)
Deployment scripts (configuration management)
Not versioning all these components together means that true rollback is not available as components may break if an application is rolled back and the network has moved forward in terms of state.
Ideally application code, infrastructure, networking...