salt.modules.win_pkg

A module to manage software on Windows

salt.modules.win_pkg.compare_versions(ver1='', oper='==', ver2='')

Compare software package versions

salt.modules.win_pkg.genrepo(saltenv='base')

Generate winrepo_cachefile based on sls files in the winrepo

CLI 范例:

salt-run winrepo.genrepo
salt.modules.win_pkg.get_name_map()
salt.modules.win_pkg.get_repo_data(saltenv='base')

Returns the cached winrepo data

CLI 范例:

salt '*' pkg.get_repo_data
salt.modules.win_pkg.install(name=None, refresh=False, pkgs=None, saltenv='base', **kwargs)

Install the passed package(s) on the system using winrepo

参数:
  • name (str, list, or None) -- The name of a single package, or a comma-separated list of packages to install. (no spaces after the commas)
  • refresh (bool) -- Boolean value representing whether or not to refresh the winrepo db
  • pkgs (list or None) -- A list of packages to install from a software repository. All packages listed under pkgs will be installed via a single command.
  • saltenv (str) -- The salt environment to use. Default is base.

Keyword Arguments (kwargs)

参数:
  • version (str) -- The specific version to install. If omitted, the latest version will be installed. If passed with multiple install, the version will apply to all packages. Recommended for single installation only.
  • cache_file (str) -- A single file to copy down for use with the installer. Copied to the same location as the installer. Use this over cache_dir if there are many files in the directory and you only need a specific file and don't want to cache additional files that may reside in the installer directory. Only applies to files on salt://
  • cache_dir (bool) -- True will copy the contents of the installer directory. This is useful for installations that are not a single file. Only applies to directories on salt://
返回:

Return a dict containing the new package names and versions:

返回类型:

dict

If the package is installed by pkg.install:

{'<package>': {'old': '<old-version>',
               'new': '<new-version>'}}

If the package is already installed:

{'<package>': {'current': '<current-version>'}}

The following example will refresh the winrepo and install a single package, 7zip.

CLI 范例:

salt '*' pkg.install 7zip refresh=True

CLI 范例:

salt '*' pkg.install 7zip
salt '*' pkg.install 7zip,filezilla
salt '*' pkg.install pkgs='["7zip","filezilla"]'

WinRepo Definition File Examples:

The following example demonstrates the use of cache_file. This would be used if you have multiple installers in the same directory that use the same install.ini file and you don't want to download the additional installers.

ntp:
  4.2.8:
    installer: 'salt://win/repo/ntp/ntp-4.2.8-win32-setup.exe'
    full_name: Meinberg NTP Windows Client
    locale: en_US
    reboot: False
    cache_file: 'salt://win/repo/ntp/install.ini'
    install_flags: '/USEFILE=C:\salt\var\cache\salt\minion\files\base\win\repo\ntp\install.ini'
    uninstaller: 'NTP/uninst.exe'

The following example demonstrates the use of cache_dir. It assumes a file named install.ini resides in the same directory as the installer.

ntp:
  4.2.8:
    installer: 'salt://win/repo/ntp/ntp-4.2.8-win32-setup.exe'
    full_name: Meinberg NTP Windows Client
    locale: en_US
    reboot: False
    cache_dir: True
    install_flags: '/USEFILE=C:\salt\var\cache\salt\minion\files\base\win\repo\ntp\install.ini'
    uninstaller: 'NTP/uninst.exe'
salt.modules.win_pkg.latest_version(*names, **kwargs)

Return the latest version of the named package available for upgrade or installation. If more than one package name is specified, a dict of name/version pairs is returned.

If the latest version of a given package is already installed, an empty string will be returned for that package.

CLI 范例:

salt '*' pkg.latest_version <package name>
salt '*' pkg.latest_version <package1> <package2> <package3> ...
salt.modules.win_pkg.list_available(*names)

Return a list of available versions of the specified package.

CLI 范例:

salt '*' pkg.list_available <package name>
salt '*' pkg.list_available <package name01> <package name02>
salt.modules.win_pkg.list_pkgs(versions_as_list=False, **kwargs)

List the packages currently installed in a dict:

{'<package_name>': '<version>'}

CLI 范例:

salt '*' pkg.list_pkgs
salt '*' pkg.list_pkgs versions_as_list=True
salt.modules.win_pkg.list_upgrades(refresh=True)

List all available package upgrades on this system

CLI 范例:

salt '*' pkg.list_upgrades
salt.modules.win_pkg.purge(name=None, pkgs=None, version=None, **kwargs)

Package purges are not supported, this function is identical to remove().

name
The name of the package to be deleted.
version
The version of the package to be deleted. If this option is used in combination with the pkgs option below, then this version will be applied to all targeted packages.

Multiple Package Options:

pkgs
A list of packages to delete. Must be passed as a python list. The name parameter will be ignored if this option is passed.

0.16.0 新版功能.

Returns a dict containing the changes.

CLI 范例:

salt '*' pkg.purge <package name>
salt '*' pkg.purge <package1>,<package2>,<package3>
salt '*' pkg.purge pkgs='["foo", "bar"]'
salt.modules.win_pkg.refresh_db(saltenv='base')

Just recheck the repository and return a dict:

{'<database name>': Bool}

CLI 范例:

salt '*' pkg.refresh_db
salt.modules.win_pkg.remove(name=None, pkgs=None, version=None, **kwargs)

Remove the passed package(s) from the system using winrepo

参数:
  • name (str, list, or None) -- The name of the package to be uninstalled.
  • version (str) -- The version of the package to be uninstalled. If this option is used to to uninstall multiple packages, then this version will be applied to all targeted packages. Recommended using only when uninstalling a single package. If this parameter is omitted, the latest version will be uninstalled.

Multiple Package Options:

参数:pkgs (list or None) -- A list of packages to delete. Must be passed as a python list. The name parameter will be ignored if this option is passed.

0.16.0 新版功能.

返回:Returns a dict containing the changes.
返回类型:dict

If the package is removed by pkg.remove:

{'<package>': {'old': '<old-version>',
'new': '<new-version>'}}

If the package is already uninstalled:

{'<package>': {'current': 'not installed'}}

CLI 范例:

salt '*' pkg.remove <package name>
salt '*' pkg.remove <package1>,<package2>,<package3>
salt '*' pkg.remove pkgs='["foo", "bar"]'
salt.modules.win_pkg.upgrade(refresh=True)

Run a full system upgrade

Return a dict containing the new package names and versions:

{'<package>': {'old': '<old-version>',
               'new': '<new-version>'}}

CLI 范例:

salt '*' pkg.upgrade
salt.modules.win_pkg.upgrade_available(name)

Check whether or not an upgrade is available for a given package

CLI 范例:

salt '*' pkg.upgrade_available <package name>
salt.modules.win_pkg.version(*names, **kwargs)

Returns a version if the package is installed, else returns an empty string

CLI 范例:

salt '*' pkg.version <package name>