--- # Copyright (c) Ansible Project # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later - name: Include distribution specific variables include_vars: "{{ lookup('first_found', params) }}" vars: params: files: - "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml" - "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml" - "{{ ansible_facts.distribution }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.os_family }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.distribution }}.yml" - "{{ ansible_facts.os_family }}.yml" - default.yml paths: - "{{ role_path }}/vars" - block: - name: Include distribution specific tasks include_tasks: "{{ lookup('first_found', params) }}" vars: params: files: - "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml" - "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml" - "{{ ansible_facts.distribution }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.os_family }}-py{{ ansible_python.version.major }}.yml" - "{{ ansible_facts.distribution }}.yml" - "{{ ansible_facts.os_family }}.yml" paths: - "{{ role_path }}/tasks" - name: Limit docker pypi package version to < 4.3.0 set_fact: docker_pip_package_limit: '<4.3.0' when: docker_api_version is version('1.39', '<') - name: Install/upgrade Docker SDK for Python pip: name: "{{ [docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages }}" extra_args: "-c {{ remote_constraints }}" state: present - name: Install docker-compose pip: state: present name: "{{ docker_compose_pip_packages }}" extra_args: "-c {{ remote_constraints }}" - name: Check docker-py version command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'" register: docker_py_version_stdout ignore_errors: true - name: Register docker-compose version command: "{{ ansible_python.executable }} -c 'import compose; print(compose.__version__)'" register: docker_compose_version ignore_errors: true - name: Declare docker-py and docker-compose version set_fact: docker_py_version: "{{ docker_py_version_stdout.stdout | default('0.0') }}" docker_compose_version: "{{ docker_compose_version.stdout | default('0.0.0') }}" - debug: msg: "Docker SDK for Python version: {{ docker_py_version }}; Docker Compose version: {{ docker_compose_version }}" - name: Declare docker-compose as existing set_fact: has_docker_compose: true when: not skip_docker_compose