Ansible, not only supports setting up bare-metal and virtualized environments, it can actually go one step ahead and setup a cloud based environment with providers like Amazon Web Services, Digital Ocean, Google Cloud, Open Stack and many more. There are modules to manage Docker based setup as well. An exhaustive list of cloud modules can be found on Ansible's documentation.
- name: data container docker: name: mydata image: busybox state: present volumes: - /data
- digital_ocean: state: present command: ssh name: my_ssh_key ssh_pub_key: 'ssh-rsa AAAA...' api_token: XXX