--- # Create random name prefix (for containers, networks, ...) - name: Create random name prefix set_fact: name_prefix: "{{ 'ansible-test-%0x' % ((2**32) | random) }}" service_names: [] network_names: [] config_names: [] secret_names: [] volume_names: [] - debug: msg: "Using container name prefix {{ name_prefix }}" # Run the tests - block: - name: Create a Swarm cluster docker_swarm: state: present advertise_addr: "{{ansible_default_ipv4.address | default('127.0.0.1')}}" - include_tasks: run-test.yml with_fileglob: - "tests/*.yml" always: - name: Make sure all services are removed docker_swarm_service: name: "{{ item }}" state: absent loop: "{{ service_names }}" ignore_errors: yes - name: Make sure all networks are removed docker_network: name: "{{ item }}" state: absent force: yes loop: "{{ network_names }}" ignore_errors: yes - name: Make sure all configs are removed docker_config: name: "{{ item }}" state: absent force: yes loop: "{{ config_names }}" ignore_errors: yes - name: Make sure all volumes are removed docker_volume: name: "{{ item }}" state: absent loop: "{{ volume_names }}" ignore_errors: yes - name: Make sure all secrets are removed docker_secret: name: "{{ item }}" state: absent force: yes loop: "{{ secret_names }}" ignore_errors: yes - name: Make sure swarm is removed docker_swarm: state: absent force: yes ignore_errors: yes # Maximum of 1.24 (docker API version for docker_swarm_service) and 1.25 (docker API version for docker_swarm) is 1.25 when: docker_py_version is version('2.0.2', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_swarm_service tests!" when: not(docker_py_version is version('2.0.2', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)