win_chocolatey - Manage packages using chocolatey¶
New in version 1.9.
Synopsis¶
- Manage packages using Chocolatey (http://chocolatey.org/).
- If Chocolatey is missing from the system, the module will install it.
- List of packages can be found at http://chocolatey.org/packages.
Requirements¶
The below requirements are needed on the host that executes this module.
- chocolatey >= 0.10.5 (will be upgraded if older)
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
allow_empty_checksums
bool (added in 2.2) |
|
Allow empty checksums to be used for downloaded resource from non-secure locations.
Use win_chocolatey_feature with the name
allowEmptyChecksums to control this option globally. |
allow_prerelease
bool (added in 2.6) |
|
Allow the installation of pre-release packages.
If state is
latest , the latest pre-release package will be installed. |
architecture
(added in 2.7) |
|
Force Chocolatey to install the package of a specific process architecture.
When setting
x86 , will ensure Chocolatey installs the x86 package even when on an x64 bit OS. |
force
bool |
|
Forces the install of a package, even if it already is installed.
Using force will cause Ansible to always report that a change was made.
|
ignore_checksums
bool (added in 2.2) |
|
Ignore the checksums provided by the package.
Use win_chocolatey_feature with the name
checksumFiles to control this option globally. |
ignore_dependencies
bool (added in 2.1) |
|
Ignore dependencies, only install/upgrade the package itself.
|
install_args
str (added in 2.1) |
Arguments to pass to the native installer.
These are arguments that are passed directly to the installer the Chocolatey package runs, this is generally an advanced option.
|
|
name
list required |
Name of the package(s) to be installed.
Set to
all to run the action on all the installed packages. |
|
package_params
str (added in 2.1) |
Parameters to pass to the package.
These are parameters specific to the Chocolatey package and are generally documented by the package itself.
Before Ansible 2.7, this option was just params.
aliases: params |
|
proxy_password
str (added in 2.4) |
Proxy password used to install Chocolatey and the package.
This value is exposed as a command argument and any privileged account can see this value when the module is running Chocolatey, define the password on the global config level with win_chocolatey_config with name
proxyPassword to avoid this. |
|
proxy_url
str (added in 2.4) |
Proxy URL used to install chocolatey and the package.
Use win_chocolatey_config with the name
proxy to control this option globally. |
|
proxy_username
str (added in 2.4) |
Proxy username used to install Chocolatey and the package.
Before Ansible 2.7, users with double quote characters
" would need to be escaped with \ beforehand. This is no longer necessary.Use win_chocolatey_config with the name
proxyUser to control this option globally. |
|
skip_scripts
bool (added in 2.4) |
|
Do not run chocolateyInstall.ps1 or chocolateyUninstall.ps1 scripts when installing a package.
|
source
str |
Specify the source to retrieve the package from.
Use win_chocolatey_source to manage global sources.
This value can either be the URL to a Chocolatey feed, a path to a folder containing
.nupkg packages or the name of a source defined by win_chocolatey_source.This value is also used when Chocolatey is not installed as the location of the install.ps1 script and only supports URLs for this case.
|
|
source_password
str (added in 2.7) |
The password for source_username.
This value is exposed as a command argument and any privileged account can see this value when the module is running Chocolatey, define the credentials with a source with win_chocolatey_source to avoid this.
|
|
source_username
str (added in 2.7) |
A username to use with source when accessing a feed that requires authentication.
It is recommended you define the credentials on a source with win_chocolatey_source instead of passing it per task.
|
|
state
str |
|
State of the package on the system.
When
absent , will ensure the package is not installed.When
present , will ensure the package is installed.When
downgrade , will allow Chocolatey to downgrade a package if version is older than the installed version.When
latest , will ensure the package is installed to the latest available version.When
reinstalled , will uninstall and reinstall the package. |
timeout
int (added in 2.3) |
Default: 2700
|
The time to allow chocolatey to finish before timing out.
aliases: execution_timeout |
validate_certs
bool (added in 2.7) |
|
Used when downloading the Chocolatey install script if Chocolatey is not already installed, this does not affect the Chocolatey package install process.
When
no , no SSL certificates will be validated.This should only be used on personally controlled sites using self-signed certificate.
|
version
str |
Specific version of the package to be installed.
Ignored when state is set to
absent . |
Notes¶
Note
- Provide the
version
parameter value as a string (e.g.'6.1'
), otherwise it is considered to be a floating-point number and depending on the locale could become6,1
, which will cause a failure. - When using verbosity 2 or less (
-vv
) thestdout
output will be restricted. - When using verbosity 4 (
-vvvv
) thestdout
output will be more verbose. - When using verbosity 5 (
-vvvvv
) thestdout
output will include debug output. - This module will install or upgrade Chocolatey when needed.
- Some packages, like hotfixes or updates need an interactive user logon in order to install. You can use (
become
) to achieve this, see Understanding Privilege Escalation. - Even if you are connecting as local Administrator, using (
become
) to become Administrator will give you an interactive user logon, see examples below. - If (
become
) is unavailable, use (win_hotfix to install hotfixes instead of (win_chocolatey) as (win_hotfix) avoids using wusa.exe which cannot be run without (become
).
Examples¶
- name: Install git
win_chocolatey:
name: git
state: present
- name: Upgrade installed packages
win_chocolatey:
name: all
state: latest
- name: Install notepadplusplus version 6.6
win_chocolatey:
name: notepadplusplus
version: '6.6'
- name: Install notepadplusplus 32 bit version
win_chocolatey:
name: notepadplusplus
architecture: x86
- name: Install git from specified repository
win_chocolatey:
name: git
source: https://someserver/api/v2/
- name: Install git from a pre configured source (win_chocolatey_source)
win_chocolatey:
name: git
source: internal_repo
- name: ensure Chocolatey itself is installed and use internal repo as source
win_chocolatey:
name: chocolatey
source: http://someserver/chocolatey
- name: Uninstall git
win_chocolatey:
name: git
state: absent
- name: Install multiple packages
win_chocolatey:
name:
- procexp
- putty
- windirstat
state: present
- name: Install multiple packages sequentially
win_chocolatey:
name: '{{ item }}'
state: present
with_items:
- procexp
- putty
- windirstat
- name: uninstall multiple packages
win_chocolatey:
name:
- procexp
- putty
- windirstat
state: absent
- name: Install curl using proxy
win_chocolatey:
name: curl
proxy_url: http://proxy-server:8080/
proxy_username: joe
proxy_password: [email protected]
- name: Install a package that requires 'become'
win_chocolatey:
name: officepro2013
become: yes
become_user: Administrator
become_method: runas
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
command
str
|
changed |
The full command used in the chocolatey task.
Sample:
choco.exe install -r --no-progress -y sysinternals --timeout 2700 --failonunfound
|
rc
int
|
always |
The return code from the chocolatey task.
|
stdout
str
|
changed |
The stdout from the chocolatey task. The verbosity level of the messages are affected by Ansible verbosity setting, see notes for more details.
Sample:
Chocolatey upgraded 1/1 packages.
|
Status¶
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
Maintenance¶
This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.
For a list of other modules that are also maintained by the Ansible Community, see here.
Author¶
- Trond Hindenes (@trondhindenes)
- Peter Mounce (@petemounce)
- Pepe Barbe (@elventear)
- Adam Keech (@smadam813)
- Pierre Templier (@ptemplier)
- Jordan Borean (@jborean93)
Hint
If you notice any issues in this documentation you can edit this document to improve it.