community.general.zypper 模块 – 在 SUSE 和 openSUSE 上管理软件包

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在剧本中使用它,请指定:community.general.zypper

概要

  • 使用 zypper 和 rpm 工具在 SUSE 和 openSUSE 上管理软件包。

  • 还支持事务性更新,方法是在 /sbin/transactional-update --continue --drop-if-no-change --quiet run 内运行 zypper。

要求

执行此模块的主机需要以下要求。

  • zypper >= 1.0 # 包含在 openSUSE >= 11.1 或 SUSE Linux Enterprise Server/Desktop >= 11.0 中

  • python-xml

  • rpm

参数

参数

注释

allow_vendor_change

布尔值

在 community.general 0.2.0 中添加

zypper dist-upgrade 命令添加 --allow_vendor_change 选项。

选项

  • false ← (默认)

  • true

clean_deps

布尔值

在 community.general 4.6.0 中添加

zypper remove 命令添加 --clean-deps 选项。

选项

  • false ← (默认)

  • true

disable_gpg_check

布尔值

是否禁用要安装的软件包签名的 GPG 签名检查。只有当 statepresentlatest 时才有效。

选项

  • false ← (默认)

  • true

disable_recommends

布尔值

对应于 zypper--no-recommends 选项。默认行为 (true) 会修改 zypper 的默认行为;false 会安装推荐的软件包。

选项

  • false

  • true ← (默认)

extra_args

字符串

zypper 命令添加其他选项。

选项应像在命令行中提供的那样,在一行中提供。

extra_args_precommand

字符串

zypper 添加其他全局目标选项。

选项应像在命令行中提供的那样,在一行中提供。

force

布尔值

zypper 添加 --force 选项。允许降级软件包并更改供应商或架构。

选项

  • false ← (默认)

  • true

force_resolution

布尔值

在 community.general 0.2.0 中添加

zypper 添加 --force-resolution 选项。允许安装/卸载具有冲突需求的软件包(解析器将选择一个解决方案)。

选项

  • false ← (默认)

  • true

name

别名:pkg

列表 / 元素=字符串 / 必需

软件包名称 name 或软件包说明符或二者的列表。

可以包含版本,例如 name=1.0name>3.4name<=2.7。如果给定版本,则隐含 oldpackage,并且允许 zypper 在给定的版本范围内更新软件包。

您还可以传递 rpm 文件的 url 或本地路径。

使用 state=latest 时,这可以是 ‘*’,它会更新所有已安装的软件包。

oldpackage

布尔值

zypper 添加 --oldpackage 选项。允许降级软件包,其副作用小于 force。只要版本被指定为软件包名称的一部分,就会隐含此选项。

选项

  • false ← (默认)

  • true

replacefiles

布尔值

在 community.general 0.2.0 中添加

zypper install/update 命令添加 --replacefiles 选项。

选项

  • false ← (默认)

  • true

state

字符串

present 将确保软件包已安装。latest 将确保安装软件包的最新版本。absent 将确保未安装指定的软件包。dist-upgrade 将确保从所有已启用的存储库安装所有已安装软件包的最新版本。

使用dist-upgrade 时,name 应为 '*'

选项

  • "present" ← (默认)

  • "latest"

  • "absent"

  • "dist-upgrade"

  • "installed"

  • "removed"

类型

字符串

要对其进行操作的软件包类型。

选项

  • "package" ← (默认)

  • "patch"

  • "pattern"

  • "product"

  • "srcpackage"

  • "application"

update_cache

别名:refresh

布尔值

在操作之前运行等效于 zypper refresh 的命令。在检查模式下禁用。

选项

  • false ← (默认)

  • true

属性

属性

支持

描述

check_mode

支持:完全支持

可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:完全支持

在差异模式下,将返回有关已更改内容(或可能需要在check_mode中更改的内容)的详细信息。

备注

注意

  • loop:一起使用时,每个软件包都将被单独处理,将列表直接传递给name选项效率更高。

示例

- name: Install nmap
  community.general.zypper:
    name: nmap
    state: present

- name: Install apache2 with recommended packages
  community.general.zypper:
    name: apache2
    state: present
    disable_recommends: false

- name: Apply a given patch
  community.general.zypper:
    name: openSUSE-2016-128
    state: present
    type: patch

- name: Remove the nmap package
  community.general.zypper:
    name: nmap
    state: absent

- name: Install the nginx rpm from a remote repo
  community.general.zypper:
    name: 'https://nginx.ac.cn/packages/sles/12/x86_64/RPMS/nginx-1.8.0-1.sles12.ngx.x86_64.rpm'
    state: present

- name: Install local rpm file
  community.general.zypper:
    name: /tmp/fancy-software.rpm
    state: present

- name: Update all packages
  community.general.zypper:
    name: '*'
    state: latest

- name: Apply all available patches
  community.general.zypper:
    name: '*'
    state: latest
    type: patch

- name: Perform a dist-upgrade with additional arguments
  community.general.zypper:
    name: '*'
    state: dist-upgrade
    allow_vendor_change: true
    extra_args: '--allow-arch-change'

- name: Perform a installation of nmap with the install option replacefiles
  community.general.zypper:
    name: 'nmap'
    state: latest
    replacefiles: true

- name: Refresh repositories and update package openssl
  community.general.zypper:
    name: openssl
    state: present
    update_cache: true

- name: "Install specific version (possible comparisons: <, >, <=, >=, =)"
  community.general.zypper:
    name: 'docker>=1.10'
    state: present

- name: Wait 20 seconds to acquire the lock before failing
  community.general.zypper:
    name: mosh
    state: present
  environment:
    ZYPP_LOCK_TIMEOUT: 20

作者

  • Patrick Callahan (@dirtyharrycallahan)

  • Alexander Gubin (@alxgu)

  • Thomas O’Donnell (@andytom)

  • Robin Roth (@robinro)

  • Andrii Radyk (@AnderEnder)