mirror of
https://github.com/de-it-krachten/ansible-role-package
synced 2026-05-14 03:41:52 +00:00
No description
- Jinja 100%
# [1.17.0](https://github.com/de-it-krachten/ansible-role-package/compare/v1.16.0...v1.17.0) (2026-04-28) ### Bug Fixes * Ensure latest GPG keys are installed (RedHat-family) ([ |
||
|---|---|---|
| .github/workflows | ||
| defaults | ||
| meta | ||
| molecule/default | ||
| tasks | ||
| .ansible-lint | ||
| .cicd | ||
| .cicd.overwrite | ||
| .collections | ||
| .gitignore | ||
| .releaserc.yml | ||
| .roles | ||
| .yamllint | ||
| CHANGELOG.md | ||
| README.md | ||
ansible-role-package
Role to make package management easier. Supports dnf, yum, apt, apk, zypper and pip
Dependencies
Roles
None
Collections
- community.general
Platforms
Supported platforms
- Red Hat Enterprise Linux 81
- Red Hat Enterprise Linux 91
- Red Hat Enterprise Linux 101
- RockyLinux 8
- RockyLinux 9
- RockyLinux 10
- OracleLinux 8
- OracleLinux 9
- OracleLinux 10
- AlmaLinux 8
- AlmaLinux 91
- AlmaLinux 10
- Debian 11 (Bullseye)
- Debian 12 (Bookworm)
- Debian 13 (Trixie)
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
- Ubuntu 26.04 LTS
- Fedora 42
- Fedora 43
- Alpine 3
Note: 1 : no automated testing is performed on these platforms
Role Variables
defaults/main.yml
# Amount of retries
package_retries: 0
# Delay between retries
package_delay: 10
# Execute prepare steps for package management
package_prepare: true
# Package manager to use (defaults to OS default)
package_mgr: "{{ ansible_pkg_mgr | regex_replace('dnf\\d', 'dnf') }}"
# Mode to operate in.
# Can be install/install-verbose/remove/remove-verbose/update/upgrade/upgrade-verbose
package_mode: install
# Should package list be updated before install/upgrade
package_update: true
# Pip command to use (can point to a virtualenv)
package_pip_cmd: /usr/bin/pip3
# max validity of apt cache
package_apt_cache_valid_time: 3600
# package repositories to disable during dnf/yum tasks
# package_disablerepo: epel
# proxy url for installing & updating packages
package_https_proxy: "{{ https_proxy | default('') }}"
package_http_proxy: "{{ http_proxy | default('') }}"
package_no_proxy: "{{ no_proxy | default('localhost,127.0.0.1') }}"
Example Playbook
molecule/default/converge.yml
- name: sample playbook for role 'package'
hosts: all
vars:
packages_add:
- rsync
- zip
packages_rm:
- jq
python_virtualenv_root: /tmp/venv
python_virtualenvs:
- name: env1
python: /usr/bin/python3
site_packages: false
packages:
- pip
roles:
- deitkrachten.python
tasks:
- name: Skip Alpine / Ansible 2.9
meta: end_play
when: ansible_distribution == 'Alpine' and ansible_version['full'] is search('^2.9')
- name: package / os-packages / install / non-verbose
include_role:
name: package
apply:
tags: molecule-idempotence-notest
vars:
package_mode: install
package_list: '{{ packages_add }}'
- name: package / os-packages / remove / non-verbose
include_role:
name: package
apply:
tags: molecule-idempotence-notest
vars:
package_mode: remove
package_list: '{{ packages_rm }}'
- name: package / os-packages / install / verbose
include_role:
name: package
apply:
tags: molecule-idempotence-notest
vars:
package_mode: install-verbose
package_list: '{{ packages_rm }}'
- name: package / os-packages / update / verbose
include_role:
name: package
vars:
package_mode: upgrade-verbose
package_delay: 15
package_retries: 2
- name: package / pip / install / verbose / virtualenv
include_role:
name: package
vars:
package_mode: install-verbose
package_mgr: pip
package_pip_cmd: /tmp/venv/env1/bin/pip3
package_list:
- dnspython