community.general.zypper – Manage packages on SUSE and openSUSE
Note
This plugin is part of the community.general collection (version 3.8.1).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.zypper
.
Synopsis
- Manage packages on SUSE and openSUSE using the zypper and rpm tools.
- Also supports transactional updates, by running zypper inside
/sbin/transactional-update --continue --drop-if-no-change --quiet run
.
Requirements
The below requirements are needed on the host that executes this module.
- zypper >= 1.0 # included in openSUSE >= 11.1 or SUSE Linux Enterprise Server/Desktop >= 11.0
- python-xml
- rpm
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
allow_vendor_change boolean added in 0.2.0 of community.general |
| Adds --allow_vendor_change option to zypper dist-upgrade command. |
disable_gpg_check boolean |
| Whether to disable to GPG signature checking of the package signature being installed. Has an effect only if state is present or latest. |
disable_recommends boolean |
| Corresponds to the --no-recommends option for zypper. Default behavior (yes ) modifies zypper's default behavior; no does install recommended packages. |
extra_args string | Add additional options to zypper command.Options should be supplied in a single line as if given in the command line. | |
extra_args_precommand string | Add additional global target options to zypper .Options should be supplied in a single line as if given in the command line. | |
force boolean |
| Adds --force option to zypper. Allows to downgrade packages and change vendor or architecture. |
force_resolution boolean added in 0.2.0 of community.general |
| Adds --force-resolution option to zypper. Allows to (un)install packages with conflicting requirements (resolver will choose a solution). |
name list / elements=string / required | Package name name or package specifier or a list of either.Can include a version like name=1.0 , name>3.4 or name<=2.7 . If a version is given, oldpackage is implied and zypper is allowed to update the package within the version range given.You can also pass a url or a local path to a rpm file. When using state=latest, this can be '*', which updates all installed packages. aliases: pkg | |
oldpackage boolean |
| Adds --oldpackage option to zypper. Allows to downgrade packages with less side-effects than force. This is implied as soon as a version is specified as part of the package name. |
replacefiles boolean added in 0.2.0 of community.general |
| Adds --replacefiles option to zypper install/update command. |
state string |
| present will make sure the package is installed. latest will make sure the latest version of the package is installed. absent will make sure the specified package is not installed. dist-upgrade will make sure the latest version of all installed packages from all enabled repositories is installed.When using dist-upgrade , name should be '*' . |
type string |
| The type of package to be operated on. |
update_cache boolean |
| Run the equivalent of zypper refresh before the operation. Disabled in check mode.aliases: refresh |
Notes
Note
- When used with a
loop:
each package will be processed individually, it is much more efficient to pass the list directly to thename
option.
Examples
- 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: no - 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: 'http://nginx.org/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 installaion 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: yes - 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
Authors
- Patrick Callahan (@dirtyharrycallahan)
- Alexander Gubin (@alxgu)
- Thomas O’Donnell (@andytom)
- Robin Roth (@robinro)
- Andrii Radyk (@AnderEnder)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/zypper_module.html