ansible.builtin.dnf 模块 - 使用 dnf 包管理器管理包
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,您甚至无需指定 collections 关键字 就可以使用简短的模块名称 dnf
。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.dnf
以便于链接到模块文档并避免与可能具有相同模块名称的其他集合发生冲突。
概要
使用 dnf 包管理器安装、升级、删除和列出包和组。
注意
此模块有一个对应的 操作插件。
要求
以下要求在执行此模块的主机上是必需的。
python3-dnf
参数
参数 |
注释 |
---|---|
指定是否允许命名的包和版本降级可能已安装的更高版本的包。请注意,设置 选择
|
|
如果 选择
|
|
如果 选择
|
|
当设置为 当设置为 默认值由操作系统发行版设置。 选择
|
|
如果设置为 请注意,与 选择
|
|
告诉 dnf 完全从系统缓存中运行;不下载或更新元数据。 选择
|
|
要用于事务的远程 dnf 配置文件。 |
|
禁用 DNF 配置文件中定义的排除项。 如果设置为 如果设置为 如果设置为 |
|
是否禁用对正在安装的包的签名的 GPG 检查。仅当 此设置会影响从存储库安装的包以及从文件系统或 URL 安装的“本地”包。 选择
|
|
要为安装/更新操作禁用的 默认值: |
|
要为安装/更新操作禁用的存储库的 默认值: |
|
指定一个替代目录来存储包。 仅当指定了 |
|
仅下载包,不安装它们。 选择
|
|
要为安装/更新操作启用的 默认值: |
|
要为安装/更新操作启用的存储库的 默认值: |
|
当 默认值: |
|
这在 DNF 中实际上是一个无操作,因为它在 DNF 中不需要。 此选项已弃用,将在 ansible-core 2.20 中删除。 选择
|
|
还将安装由弱依赖关系链接的所有包。 选择
|
|
指定一个相对于它将安装所有包的替代 installroot。 默认值: |
|
用于与 |
|
等待 dnf 锁定文件释放的时间。 默认值: |
|
包名称或包规范符(包含版本),例如 包版本的比较运算符在此处有效 您还可以传递由要安装的包提供的二进制文件的绝对路径。有关更多信息,请参见示例。 默认值: |
|
指定一个替代发行版,从中将安装所有包。 |
|
如果设置为 请注意,与 选择
|
|
跳过所有不可用或依赖关系已损坏的软件包,不会引发错误。等同于传递 选择
|
|
禁用此事务中存储库服务器的 SSL 验证。 如果配置的存储库之一使用不受信任或自签名证书,则应将此设置为 选择
|
|
是安装 ( 默认值为 选择
|
|
要使用的后端模块。 选择
|
|
这仅适用于将 https url 用作 rpm 来源的情况。例如,对于 localinstall。如果设置为 仅应在使用自签名证书的个人控制站点上将此设置为 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 部分 dnf 有 2 个在后台使用它的操作插件,ansible.builtin.dnf 和 ansible.builtin.package。 |
表明这有一个对应操作插件,因此选项的某些部分可以在控制器上执行 |
|
支持: 无 |
支持与 |
|
支持: 无 |
强制执行“全局”任务,该任务不会按主机执行,这将绕过按主机模板化和串行、节流以及其他循环注意事项 条件将按使用 此操作在锁步策略之外将无法正常工作 |
|
支持: 完整 |
可以在 check_mode 中运行并返回更改状态预测,而不会修改目标,如果不支持,则会跳过该操作。 |
|
支持: 完整 |
将返回有关已更改内容(或可能在 check_mode 中需要更改的内容)的详细信息,处于 diff 模式时 |
|
平台: rhel |
可以针对其进行操作的目标操作系统/系列 |
备注
注意
与
loop:
一起使用时,每个软件包都将单独处理,将列表直接传递给name
选项效率更高。如果组是使用 Ansible 安装的,则组删除不起作用,因为上游 dnf 的 API 无法正确地将组标记为已安装,因此在删除时,模块无法检测到组是否已安装 https://bugzilla.redhat.com/show_bug.cgi?id=1620324。
虽然为语法兼容性提供了
use_backend=yum
和将操作插件称为 ansible.builtin.yum 的功能,但 YUM 后端已在 ansible-core 2.17 中删除,因为任何受支持的 Python 版本都无法使用所需的库。如果您依赖此功能,请使用旧版本的 Ansible。
示例
- name: Install the latest version of Apache
ansible.builtin.dnf:
name: httpd
state: latest
- name: Install Apache >= 2.4
ansible.builtin.dnf:
name: httpd >= 2.4
state: present
- name: Install the latest version of Apache and MariaDB
ansible.builtin.dnf:
name:
- httpd
- mariadb-server
state: latest
- name: Remove the Apache package
ansible.builtin.dnf:
name: httpd
state: absent
- name: Install the latest version of Apache from the testing repo
ansible.builtin.dnf:
name: httpd
enablerepo: testing
state: present
- name: Upgrade all packages
ansible.builtin.dnf:
name: "*"
state: latest
- name: Update the webserver, depending on which is installed on the system. Do not install the other one
ansible.builtin.dnf:
name:
- httpd
- nginx
state: latest
update_only: yes
- name: Install the nginx rpm from a remote repo
ansible.builtin.dnf:
name: 'https://nginx.ac.cn/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm'
state: present
- name: Install nginx rpm from a local file
ansible.builtin.dnf:
name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
state: present
- name: Install Package based upon the file it provides
ansible.builtin.dnf:
name: /usr/bin/cowsay
state: present
- name: Install the 'Development tools' package group
ansible.builtin.dnf:
name: '@Development tools'
state: present
- name: Autoremove unneeded packages installed as dependencies
ansible.builtin.dnf:
autoremove: yes
- name: Uninstall httpd but keep its dependencies
ansible.builtin.dnf:
name: httpd
state: absent
autoremove: no
- name: Install a modularity appstream with defined stream and profile
ansible.builtin.dnf:
name: '@postgresql:9.6/client'
state: present
- name: Install a modularity appstream with defined stream
ansible.builtin.dnf:
name: '@postgresql:9.6'
state: present
- name: Install a modularity appstream with defined profile
ansible.builtin.dnf:
name: '@postgresql/client'
state: present