zypper – Manage packages on SUSE and openSUSE — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# zypper – Manage packages on SUSE and openSUSE

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Status

## Synopsis

- Manage packages on SUSE and openSUSE using the zypper and rpm tools.

## 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
--- | --- | ---
disable_gpg_check boolean | Choices: no ← yes | 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 | Choices: no yes ← | Corresponds to the `--no-recommends` option for zypper. Default behavior (`yes`) modifies zypper's default behavior; `no` does install recommended packages.
extra_args - added in 2.4 |  | Add additional options to `zypper` command. Options should be supplied in a single line as if given in the command line.
extra_args_precommand - added in 2.6 |  | Add additional global target options to `zypper`. Options should be supplied in a single line as if given in the command line.
force boolean added in 2.2 | Choices: no ← yes | Adds `--force` option to zypper. Allows to downgrade packages and change vendor or architecture.
name - / 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 added in 2.2 | Choices: no ← yes | 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.
state - | Choices: present ← latest absent dist-upgrade | `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 - added in 2.0 | Choices: package ← patch pattern product srcpackage application | The type of package to be operated on.
update_cache boolean added in 2.2 | Choices: no ← yes | 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 the name option.

## Examples

    # Install "nmap"
    - zypper:
        name: nmap
        state: present

    # Install apache2 with recommended packages
    - zypper:
        name: apache2
        state: present
        disable_recommends: no

    # Apply a given patch
    - zypper:
        name: openSUSE-2016-128
        state: present
        type: patch

    # Remove the "nmap" package
    - zypper:
        name: nmap
        state: absent

    # Install the nginx rpm from a remote repo
    - zypper:
        name: 'http://nginx.org/packages/sles/12/x86_64/RPMS/nginx-1.8.0-1.sles12.ngx.x86_64.rpm'
        state: present

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

    # Update all packages
    - zypper:
        name: '*'
        state: latest

    # Apply all available patches
    - zypper:
        name: '*'
        state: latest
        type: patch

    # Perform a dist-upgrade with additional arguments
    - zypper:
        name: '*'
        state: dist-upgrade
        extra_args: '--no-allow-vendor-change --allow-arch-change'

    # Refresh repositories and update package "openssl"
    - zypper:
        name: openssl
        state: present
        update_cache: yes

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

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

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Patrick Callahan (@dirtyharrycallahan)
- Alexander Gubin (@alxgu)
- Thomas O’Donnell (@andytom)
- Robin Roth (@robinro)
- Andrii Radyk (@AnderEnder)

Hint

If you notice any issues in this documentation you can edit this document to improve it.