tobiko/roles/tobiko-compile-python/tasks/setup_pip.yaml

61 lines
1.6 KiB
YAML

---
- block:
- name: check '{{ pip_command }}' command
command: "'{{ pip_command }}' --version"
changed_when: false
- name: discover '{{ pip_command }}' executable path
command: "which '{{ pip_command }}'"
register: discover_pip_executable
changed_when: false
- name: register '{{ pip_command }}' executable as '{{ discover_pip_executable.stdout }}'
set_fact:
pip_executable: '{{ discover_pip_executable.stdout }}'
rescue:
- name: download Pip installer from '{{ pip_url }}'
get_url:
url: "{{ pip_url }}"
dest: "{{ pip_installer }}"
- name: "Install '{{ pip_executable }}'"
become: yes
become_user: root
command: "'{{ python_executable }}' '{{ pip_installer }}'"
- name: check Pip is installed for '{{ pip_executable }}'
command: "'{{ pip_executable }}' --version"
changed_when: false
- name: check '{{ pip_command }}' command
command: "'{{ pip_command }}' --version"
changed_when: false
- name: "ensure required Python packages are installed and up-to-date"
become: true
become_user: root
pip:
name: "{{ item }}"
executable: '{{ pip_executable }}'
state: latest
vars:
ansible_python_interpreter: '{{ python_executable }}'
when: (item | length ) > 0
loop:
- "{{ pip_install_base_packages }}"
- "{{ pip_install_packages }}"
- name: "remove '{{ pip_executable | dirname }}/pip'"
become: yes
become_user: root
file:
path: '{{ pip_executable | dirname }}/pip'
state: absent
when: pip_command != "pip"