ansible.builtin.package_facts 模块 – 以 facts 形式提供软件包信息
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,也可以使用简短的模块名称 package_facts
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.package_facts
,以便轻松链接到模块文档,并避免与其他可能具有相同模块名称的集合冲突。
概要
以 facts 形式返回有关已安装软件包的信息。
要求
执行此模块的主机需要满足以下要求。
对于 'portage' 支持,它需要
qlist
实用程序,该实用程序是 'app-portage/portage-utils' 的一部分。对于基于 Debian 的系统,必须在目标主机上安装
python-apt
包。对于基于 SUSE 的系统,必须在目标主机上安装
python3-rpm
包。 需要此包是因为 SUSE 默认不包含 RPM Python 绑定。
参数
参数 |
注释 |
---|---|
系统使用的软件包管理器,以便我们可以查询软件包信息。 自 2.8 版以来,这是一个列表,可以支持每个系统的多个软件包管理器。 在 2.8 版中添加了 'portage' 和 'pkg' 选项。 在 2.11 版中添加了 'apk' 选项。 在 2.13 版中添加了 'pkg_info' 选项。 选择
默认值: |
|
此选项控制模块如何查询系统上的软件包管理器。 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完全 |
可以在 check_mode 中运行,并返回已更改状态的预测,而无需修改目标。如果不支持,则将跳过该操作。 |
|
支持: 无 |
在 diff 模式下运行时,将返回有关已更改(或可能需要在 check_mode 中更改)的详细信息 |
|
支持: 完全 |
操作返回一个 |
|
平台: posix |
可以对其进行操作的目标操作系统/系列 |
示例
- name: Gather the package facts
ansible.builtin.package_facts:
manager: auto
- name: Print the package facts
ansible.builtin.debug:
var: ansible_facts.packages
- name: Check whether a package called foobar is installed
ansible.builtin.debug:
msg: "{{ ansible_facts.packages['foobar'] | length }} versions of foobar are installed!"
when: "'foobar' in ansible_facts.packages"
返回的 Facts
此模块返回的 facts 将添加/更新到 hostvars
主机 facts 中,并且可以像任何其他主机 fact 一样按名称引用。无需注册即可使用它们。
键 |
描述 |
---|---|
将软件包名称映射到包含软件包信息的非空字典列表。 列表中的每个字典都对应于软件包的一个已安装版本。 下面描述的字段适用于所有软件包管理器。根据软件包管理器,软件包可能具有更多字段。 返回:当指定或自动检测操作系统级软件包管理器时 示例: |
|
软件包的名称。 返回: 总是 |
|
软件包信息的来源。 返回: 总是 |
|
软件包的版本。 返回: 总是 |