- name: Remove pip and virtualenv packages package: name: - python3-pip - python3-virtualenv state: absent # NOTE(ianw) : See https://github.com/pypa/get-pip/issues/43; # requirement of get-pip.py # Xenial doesn't have python3-distutils as it appears to be part # of python3 itself. - name: Ensure distutils package: name: - python3-distutils state: present when: ansible_distribution_release != 'xenial' - name: Download OS/Python specific get-pip.py include_tasks: "{{ get_pip_os }}" with_first_found: - "{{ ansible_distribution_release }}.yaml" - "{{ ansible_distribution }}.yaml" - "{{ ansible_os_family }}.yaml" - "default.yaml" loop_control: loop_var: get_pip_os - name: Install pip command: python3 /var/lib/get-pip.py args: creates: /usr/local/bin/pip3 - name: Install latest pip and virtualenv pip: name: "{{ item }}" state: latest executable: pip3 loop: - pip - virtualenv # TODO(frickler): pbr is being installed as a workaround for issues # with eavesdrop running on xenial with py27/35. It can be dropped # once the host has been upgraded - name: Install latest pbr on xenial pip: name: pbr state: latest executable: pip3 when: ansible_distribution_release == 'xenial'