Ansible role to manage python package with pip on debian-based systems. https://ednz.fr
Go to file
Bertrand Lanson ad106d8648
All checks were successful
test / Linting (push) Successful in 9s
test / Molecule tests (default, debian11) (push) Successful in 43s
test / Molecule tests (default, debian12) (push) Successful in 42s
test / Molecule tests (default, ubuntu2004) (push) Successful in 1m4s
test / Molecule tests (default, ubuntu2204) (push) Successful in 49s
test / Molecule tests (with_custom_packages, debian11) (push) Successful in 1m10s
test / Molecule tests (with_custom_packages, debian12) (push) Successful in 1m19s
test / Molecule tests (with_custom_packages, ubuntu2004) (push) Successful in 1m12s
test / Molecule tests (with_custom_packages, ubuntu2204) (push) Successful in 1m15s
feat: add vagrant tests for later)
2023-11-29 19:33:18 +01:00
.gitea/workflows added ansible verify stage and gitea actions 2023-07-11 20:05:36 +02:00
.github/workflows renamed pip install task to avoid confusion with apt install task, 1st publish 2023-03-16 23:36:23 +01:00
defaults added option to bypass pep668 error 2023-08-27 18:13:08 +02:00
handlers added skeleton 2023-03-14 23:23:33 +01:00
meta add suport for debian 12 2023-07-11 20:14:41 +02:00
molecule feat: add vagrant tests for later) 2023-11-29 19:33:18 +01:00
tasks break system package to upgrade pip if specified 2023-08-27 19:26:28 +02:00
vars remove auto-install dependencies to get more standard role 2023-08-01 19:29:32 +02:00
.ansible-lint added skeleton 2023-03-14 23:23:33 +01:00
.gitignore ignore .vscode 2023-05-21 20:17:53 +02:00
.yamllint added skeleton 2023-03-14 23:23:33 +01:00
LICENSE added ansible verify stage and gitea actions 2023-07-11 20:05:36 +02:00
README.md added option to bypass pep668 error 2023-08-27 18:13:08 +02:00

manage_pip_packages

This repository is only a mirror. Development and testing is done on a private gitea server.

This role enables you to manage python packages on debian-based distributions. It can be used on its own , or be called by other roles the install/remove packages on demand.

Requirements

None.

Role Variables

Available variables are listed below, along with default values. A sample file for the default values is available in default/manage_pip_packages.yml.sample in case you need it for any group_vars or host_vars configuration.

manage_pip_packages_install_prereqs: true # by default, set to true
manage_pip_packages_list: # by default, not defined
  - name: nginx
    version_constraint: latest # Leaving empty or setting '' will be considered as latest
    state: absent
  - name: ...

This variable is a list of packages, with their name, desired version and state. version_constraint can be multiple constraints,separated by commas (example: >1.10, >1.10,<1.15,!=1.12,==1.13).

manage_pip_packages_allow_break_system_packages: false # by default, set to false

This variable allow you to pass the --break_system_packages to pip.

Warning

This is not recommended, and is only here if you have no other choice to install packages that aren't supported by the package manager, on distros that enforce the PEP668. Chances are you can probably use manage_pipx_packages to install packages using pipx, avoiding the potential damages to your system.

Dependencies

ednxzu.manage_apt_packages to install python3 and pip (if selected).

Example Playbook

# calling the role inside a playbook with either the default or group_vars/host_vars
- hosts: servers
  roles:
    - ednxzu.manage_pip_packages
# calling the role inside a playbook and injecting variables (in another role for example)
- hosts: servers
  tasks:
    - name: "Install ansible with pip"
      ansible.builtin.include_role:
        name: ednxzu.manage_pip_packages
      vars:
        manage_pip_packages_install_prereqs: false
        manage_pip_packages_list:
          - name: ansible-core
            version_constraint: latest
            state: present

License

MIT / BSD

Author Information

This role was created by Bertrand Lanson in 2023.