No description
Find a file
semantic-release-bot 1510af3f54 chore(release): 1.17.0 [skip ci]
# [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) ([0a00ee4](0a00ee43fe))

### Features

* Added support for Ubuntu 26.04 LTS ([562d6d5](562d6d5ca9))
2026-04-28 10:29:50 +00:00
.github/workflows Update CI 2026-04-28 03:04:23 +02:00
defaults feat: Update supported platforms & CI 2024-12-29 15:17:18 +01:00
meta Update CI 2026-03-14 19:50:18 +01:00
molecule/default Update CI 2026-04-28 03:04:23 +02:00
tasks Fix linting issues 2026-04-28 03:03:23 +02:00
.ansible-lint Update CI 2026-04-24 14:44:37 +02:00
.cicd Update CI 2026-04-24 14:44:37 +02:00
.cicd.overwrite Update CI 2026-03-14 19:50:18 +01:00
.collections Update CI 2024-04-12 19:50:55 +02:00
.gitignore feat: Update supported platforms & CI 2024-12-29 15:17:18 +01:00
.releaserc.yml Update CI 2026-03-06 22:58:11 +01:00
.roles feat: Update CI to latest standards 2022-10-10 00:17:59 +02:00
.yamllint feat: Update supported platforms & CI 2024-12-29 15:17:18 +01:00
CHANGELOG.md chore(release): 1.17.0 [skip ci] 2026-04-28 10:29:50 +00:00
README.md Update CI 2026-04-24 14:44:37 +02:00

CI

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