--- # docker_playbook.yml - hosts: localhost become: yes pre_tasks: - name: define containers facts set_fact: containers: - name: '{{ DOCKER_NAME }}' image: '{{ DOCKER_IMAGE }}' init: '{{ DOCKER_IMAGE_INIT | d("/sbin/init") }}' tags: - always tasks: - name: install docker on localhost pip: name: docker extra_args: "--upgrade" - name: create docker containers docker_container: name: '{{ item.name }}' image: '{{ item.image }}' command: '{{ item.init }}' state: started privileged: true volumes: - '/sys/fs/cgroup:/sys/fs/cgroup:ro' loop: '{{ containers }}' - name: add containers to inventory add_host: name: '{{ item.name }}' groups: docker_containers ansible_connection: docker changed_when: false loop: '{{ containers }}' - name: run tasks in containers hosts: docker_containers strategy: free become: yes roles: - { role: ../.. } - hosts: localhost tasks: - name: remove docker containers docker_container: name: '{{ item.name }}' state: absent loop: '{{ containers }}' changed_when: false tags: - destroy