ansible.builtin.package_facts (v2.8.15) — module

package information as facts

| "added in version" 2.5 of ansible.builtin"

Authors: Matthew Jones (@matburt), Brian Coca (@bcoca), Adam Miller (@maxamillion)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.8.15

Description

Return information about installed packages as facts


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Gather the rpm package facts
  package_facts:
    manager: auto
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Print the rpm package facts
  debug:
    var: ansible_facts.packages
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Check whether a package called foobar is installed
  debug:
    msg: "{{ ansible_facts.packages['foobar'] | length }} versions of foobar are installed!"
  when: "'foobar' in ansible_facts.packages"

Inputs

    
manager:
    choices:
    - auto
    - rpm
    - apt
    - portage
    - pkg
    default:
    - auto
    description:
    - The package manager used by the system so we can query the package information.
    - Since 2.8 this is a list and can support multiple package managers per system.
    - The 'portage' and 'pkg' options were added in version 2.8.
    required: false
    type: list

strategy:
    choices:
    - first
    - all
    default: first
    description:
    - This option controls how the module queries the package managers on the system.
      C(first) means it will return only informatino for the first supported package manager
      available. C(all) will return information for all supported and available package
      managers on the system.
    version_added: '2.8'
    version_added_collection: ansible.builtin

Outputs

ansible_facts:
  contains:
    packages:
      contains:
        name:
          description: The package's name.
          returned: always
          type: str
        source:
          description: Where information on the package came from.
          returned: always
          type: str
        version:
          description: The package's version.
          returned: always
          type: str
      description:
      - Maps the package name to a non-empty list of dicts with package information.
      - Every dict in the list corresponds to one installed version of the package.
      - The fields described below are present for all package managers. Depending
        on the package manager, there might be more fields for a package.
      returned: when operating system level package manager is specified or auto detected
        manager
      sample: "{\n  \"packages\": {\n    \"kernel\": [\n      {\n        \"name\"\
        : \"kernel\",\n        \"source\": \"rpm\",\n        \"version\": \"3.10.0\"\
        ,\n        ...\n      },\n      {\n        \"name\": \"kernel\",\n       \
        \ \"source\": \"rpm\",\n        \"version\": \"3.10.0\",\n        ...\n  \
        \    },\n      ...\n    ],\n    \"kernel-tools\": [\n      {\n        \"name\"\
        : \"kernel-tools\",\n        \"source\": \"rpm\",\n        \"version\": \"\
        3.10.0\",\n        ...\n      }\n    ],\n    ...\n  }\n}"
      sample_deb:
        packages:
          libbz2-1.0:
          - arch: amd64
            name: libbz2-1.0
            source: apt
            version: 1.0.6-5
          patch:
          - arch: amd64
            name: patch
            source: apt
            version: 2.7.1-4ubuntu1
      sample_rpm:
        packages:
          kernel:
          - arch: x86_64
            epoch: null
            name: kernel
            release: 514.26.2.el7
            source: rpm
            version: 3.10.0
          - arch: x86_64
            epoch: null
            name: kernel
            release: 514.16.1.el7
            source: rpm
            version: 3.10.0
          - arch: x86_64
            epoch: null
            name: kernel
            release: 514.10.2.el7
            source: rpm
            version: 3.10.0
          - arch: x86_64
            epoch: null
            name: kernel
            release: 514.21.1.el7
            source: rpm
            version: 3.10.0
          - arch: x86_64
            epoch: null
            name: kernel
            release: 693.2.2.el7
            source: rpm
            version: 3.10.0
          kernel-tools:
          - arch: x86_64
            epoch: null
            name: kernel-tools
            release: 693.2.2.el7
            source: rpm
            version: 3.10.0
          kernel-tools-libs:
          - arch: x86_64
            epoch: null
            name: kernel-tools-libs
            release: 693.2.2.el7
            source: rpm
            version: 3.10.0
      type: dict
  description: facts to add to ansible_facts
  returned: always
  type: complex