]> git.apps.os.sepia.ceph.com Git - ceph-cm-ansible.git/commitdiff
testnode: Force install of pip packages globally on Ubuntu >=24 777/head
authorDavid Galloway <david.galloway@ibm.com>
Fri, 21 Mar 2025 21:55:29 +0000 (17:55 -0400)
committerDavid Galloway <david.galloway@ibm.com>
Fri, 21 Mar 2025 22:11:20 +0000 (18:11 -0400)
Fixes:
```
error: externally-managed-environment

This environment is externally managed

To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
```

Signed-off-by: David Galloway <david.galloway@ibm.com>
roles/testnode/tasks/pip.yml

index 8ef9c6b534dc1a748cef1839c989008e94422d35..f2cbc4cac71303a9b2335b839b27ac2ed8b559c4 100644 (file)
   pip:
     name: "{{ pip_packages_to_install|list }}"
     executable: "{{ pip_executable }}"
+  when: ansible_distribution != 'Ubuntu' or
+        (ansible_distribution == 'Ubuntu' and ansible_distribution_major_version|int < 24)
+
+- name: Install packages via pip (Ubuntu >= 24)
+  pip:
+    name: "{{ pip_packages_to_install|list }}"
+    executable: "{{ pip_executable }}"
+    extra_args: --break-system-packages
+  when: ansible_distribution == 'Ubuntu' and ansible_distribution_major_version|int >= 24