From: David Galloway Date: Fri, 21 Mar 2025 21:55:29 +0000 (-0400) Subject: testnode: Force install of pip packages globally on Ubuntu >=24 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=f2f63ef5a1e7f91e67421111bc5d9bfa7633b9b9;p=ceph-cm-ansible.git testnode: Force install of pip packages globally on Ubuntu >=24 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 --- diff --git a/roles/testnode/tasks/pip.yml b/roles/testnode/tasks/pip.yml index 8ef9c6b..f2cbc4c 100644 --- a/roles/testnode/tasks/pip.yml +++ b/roles/testnode/tasks/pip.yml @@ -59,3 +59,12 @@ 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