I am planning to build test environment using ansible, jenkins and docker together.The plan is like this.
Create ansible playbooks for every tool that you are using in
I am using a similar but different approach:
Define Dockerfiles or chef/puppet/ansible/salt provisioning. As in your approach.
Putting those descriptions under version control. As in your approach.
Using Jenkins A to CI- and Nightly Building Images and Uploading them into a registry. In order to manage different versions and keeping old images. This introduces a image registry in your diagram.
Extending those images with Jenkins-Swarm slaves. This enables ad-hoc deployment in your Jenkins environment.
Here I separate between building of the software and the building of the build slaves themselves.
I deploy a Jenkins B in order to build the software on environments.
Now I choose between container that I want to deploy permanently and build containers I want to deploy on demand.
Diagram: