Bertrand Lanson
976b78c537
All checks were successful
test / Linting (push) Successful in 25s
test / Molecule tests (default, debian11) (push) Successful in 54s
test / Molecule tests (default, debian12) (push) Successful in 48s
test / Molecule tests (default, ubuntu2204) (push) Successful in 1m25s
test / Molecule tests (with_custom_packages, debian11) (push) Successful in 1m7s
test / Molecule tests (default, ubuntu2004) (push) Successful in 1m49s
test / Molecule tests (with_custom_packages, debian12) (push) Successful in 1m5s
test / Molecule tests (with_custom_packages, ubuntu2204) (push) Successful in 1m43s
test / Molecule tests (with_custom_packages, ubuntu2004) (push) Successful in 1m56s
|
||
---|---|---|
.gitea/workflows | ||
.github/workflows | ||
defaults | ||
handlers | ||
meta | ||
molecule | ||
tasks | ||
vars | ||
.ansible-lint | ||
.gitignore | ||
.yamllint | ||
LICENSE | ||
README.md |
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.