Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
Tasks:
- chocolatey
- outdated
- pin
- status
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-chocolatey', '8.0.1'
Learn more about managing modules with a PuppetfileDocumentation
chocolatey
Chocolatey for Business Now Available!
We're excited for you to learn more about what's available in the Business editions!
Table of Contents
- Overview
- Module Description - What the chocolatey module does and why it is useful
- Setup - The basics of getting started with chocolatey
- Usage - Configuration options and additional functionality
- Reference
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
- License
- Attributions
Overview
This is a Puppet package provider for Chocolatey, which is like apt-get, but for Windows. Check the module's metadata.json for compatible Puppet and Puppet Enterprise versions.
Module Description
This is the official module for working with the Chocolatey package manager. There are two versions available:
- puppetlabs/chocolatey
- This is the stable version and is commercially supported by Puppet.
- It is slower moving, but offers greater stability and fewer changes.
- chocolatey/chocolatey
- This is the bleeding edge version and is not commercially supported by Puppet.
- It keeps up with all the new features, but is not as fully tested.
This module supports all editions of Chocolatey, including FOSS, Professional and Chocolatey for Business.
This module is able to:
- Install Chocolatey
- Work with custom location installations
- Configure Chocolatey
- Use Chocolatey as a package provider
Why Chocolatey
Chocolatey closely mimics how package managers on other operating systems work. If you can imagine the built-in provider for Windows versus Chocolatey, take a look at the use case of installing git:
# Using built-in provider
package { "Git version 1.8.4-preview20130916":
ensure => installed,
source => 'C:\temp\Git-1.8.4-preview20130916.exe',
install_options => ['/VERYSILENT']
}
# Using Chocolatey (set as default for Windows)
package { 'git':
ensure => latest,
}
With the built-in provider:
- The package name must match exactly the name from installed programs.
- The package name has issues with unicode characters.
- The source must point to the location of the executable installer.
- It cannot
ensure => latest
. Read about handling versions and upgrades in the Puppet documentation.
With Chocolatey's provider:
- The package name only has to match the name of the package, which can be whatever you choose.
- The package knows how to install the software silently.
- The package knows where to get the executable installer.
- The source is able to specify different Chocolatey feeds.
- Chocolatey makes
package
more platform agnostic, because it looks exactly like other platforms.
For reference, read about the provider features available from the built-in provider, compared to other package managers:
Provider | holdable | install options | installable | package settings | purgeable | reinstallable | uninstall options | uninstallable | upgradeable | versionable | virtual packages |
---|---|---|---|---|---|---|---|---|---|---|---|
Windows | x | x | x | x | x | ||||||
Chocolatey | x | x | x | x | x | x | x | ||||
apt | x | x | x | x | x | x | x | ||||
yum | x | x | x | x | x | x | x |
Setup
What Chocolatey affects
Chocolatey affects your system and what software is installed on it, ranging from tools and portable software, to natively installed applications.
Setup Requirements
Chocolatey requires the following components:
- Powershell v2+ (Installed on most systems by default)
- .NET Framework v4+
Beginning with Chocolatey provider
Install this module via any of these approaches:
- Puppet Forge
- git-submodule (tutorial)
- librarian-puppet
- r10k
Usage
Manage Chocolatey installation
Ensure Chocolatey is installed and configured:
include chocolatey
Override default Chocolatey install location
class {'chocolatey':
choco_install_location => 'D:\secured\choco',
}
NOTE: This will affect suitability on first install. There are also
special considerations for C:\Chocolatey
as an install location, see
choco_install_location
for details.
Use an internal chocolatey.nupkg for Chocolatey installation
class {'chocolatey':
chocolatey_download_url => 'https://internalurl/to/chocolatey.nupkg',
use_7zip => false,
choco_install_timeout_seconds => 2700,
}
Use a file chocolatey.0.9.9.9.nupkg for installation
class {'chocolatey':
chocolatey_download_url => 'file:///c:/location/of/chocolatey.0.9.9.9.nupkg',
use_7zip => false,
choco_install_timeout_seconds => 2700,
}
Specify the version of chocolatey by class parameters
class {'chocolatey':
chocolatey_download_url => 'file:///c:/location/of/chocolatey.0.9.9.9.nupkg',
use_7zip => false,
choco_install_timeout_seconds => 2700,
chocolatey_version => '0.9.9.9',
}
Log chocolatey bootstrap installer script output
class {'chocolatey':
log_output => true,
}
Install chocolatey using a proxy server
class {'chocolatey':
install_proxy => 'http://proxy.megacorp.com:3128',
}
Configuration
If you have Chocolatey 0.9.9.x or above, you can take advantage of configuring different aspects of Chocolatey.
Sources Configuration
You can specify sources that Chocolatey uses by default, along with priority.
Requires Chocolatey v0.9.9.0+.
Disable the default community repository source
chocolateysource {'chocolatey':
ensure => disabled,
}
Set a priority on a source
chocolateysource {'chocolatey':
ensure => present,
location => 'https://chocolatey.org/api/v2',
priority => 1,
}
Add credentials to a source
chocolateysource {'sourcename':
ensure => present,
location => 'https://internal/source',
user => 'username',
password => 'password',
}
NOTE: Chocolatey encrypts the password in a way that is not verifiable. If you need to rotate passwords, you cannot use this resource to do so unless you also change the location, user, or priority (because those are ensurable properties).
NOTE: The sensitive password
can be deferred using the Deferred function on Puppet Master and enable to execute on agent.
chocolateysource {'sourcename':
ensure => present,
location => 'https://internal/source',
user => 'username',
password => Deferred('sprintf', ['password']),
}
Features Configuration
You can configure features that Chocolatey has available. Run
choco feature list
to see the available configuration features.
Requires Chocolatey v0.9.9.0+.
Enable Auto Uninstaller
Uninstall from Programs and Features without requiring an explicit uninstall script.
chocolateyfeature {'autouninstaller':
ensure => enabled,
}
Disable Use Package Exit Codes
Requires 0.9.10+ for this feature.
Use Package Exit Codes - Allows package scripts to provide exit codes. With this enabled, Chocolatey uses package exit codes for exit when non-zero (this value can come from a dependency package). Chocolatey defines valid exit codes as 0, 1605, 1614, 1641, 3010. With this feature disabled, Chocolatey exits with a 0 or a 1 (matching previous behavior).
Note that this behavior may cause Puppet to think that the run has failed. We advise that you leave this at the default setting or disable it. Do not enable it.
chocolateyfeature {'usepackageexitcodes':
ensure => disabled,
}
Enable Virus Check
Requires 0.9.10+ and Chocolatey Pro / Business for this feature.
Virus Check - Performs virus checking on downloaded files. (Licensed versions only.)
chocolateyfeature {'viruscheck':
ensure => enabled,
}
Enable FIPS Compliant Checksums
Requires 0.9.10+ for this feature.
Use FIPS Compliant Checksums - Ensures checksumming done by Chocolatey uses FIPS compliant algorithms. Not recommended unless required by FIPS Mode. Enabling on an existing installation could have unintended consequences related to upgrades or uninstalls.
chocolateyfeature {'usefipscompliantchecksums':
ensure => enabled,
}
Config configuration
You can configure config values that Chocolatey has available. Run
choco config list
to see the config settings available (just the
config settings section).
Requires Chocolatey v0.9.10.0+.
Set cache location
The cache location defaults to the TEMP directory. You can set an explicit directory to cache downloads to instead of the default.
chocolateyconfig {'cachelocation':
value => "c:\\downloads",
}
Unset cache location
Removes cache location setting, returning the setting to its default.
chocolateyconfig {'cachelocation':
ensure => absent,
}
Use an explicit proxy
When using Chocolatey behind a proxy, set proxy
and optionally
proxyUser
and proxyPassword
.
NOTE: The proxyPassword
value is not verifiable.
chocolateyconfig {'proxy':
value => 'https://someproxy.com',
}
chocolateyconfig {'proxyUser':
value => 'bob',
}
# not verifiable
chocolateyconfig {'proxyPassword':
value => 'securepassword',
}
NOTE: The sensitive value
can be deferred using the Deferred function on Puppet Master and enable to execute on agent.
chocolateyconfig {'proxyPassword':
value => Deferred('sprintf', ['securepassword']),
}
Set Chocolatey as Default Windows Provider
If you want to set this provider as the site-wide default,
add to your site.pp
:
if $::kernel == 'windows' {
Package { provider => chocolatey, }
}
# OR
case $operatingsystem {
'windows': {
Package { provider => chocolatey, }
}
}
Packages
With all options
package { 'notepadplusplus':
ensure => installed|latest|'1.0.0'|'>=1.0 <2.0'|absent,
provider => 'chocolatey',
install_options => ['-pre','-params','"','param1','param2','"'],
uninstall_options => ['-r'],
source => 'https://myfeed.example.com/api/v2',
package_settings => { 'verbose' => true, 'log_output' => true, },
}
- Supports
installable
anduninstallable
. - Supports
versionable
so thatensure => '1.0'
works. - Supports
version_range
so thatensure => '>=1.0 <2.0'
works. - Supports
upgradeable
. - Supports
latest
(checks upstream),absent
(uninstall). - Supports
install_options
for pre-release, and other command-line options. - Supports
uninstall_options
for pre-release, and other command-line options. - Supports
holdable
, requires Chocolatey v0.9.9.0+. - Uses package_settings to pass flags to the chocolatey provider.
Simple install
package { 'notepadplusplus':
ensure => installed,
provider => 'chocolatey',
}
To always ensure using the newest version available
package { 'notepadplusplus':
ensure => latest,
provider => 'chocolatey',
}
To ensure a specific version
package { 'notepadplusplus':
ensure => '6.7.5',
provider => 'chocolatey',
}
To ensure a version range
package { 'notepadplusplus':
ensure => '>=6.7.5 <7.0',
provider => 'chocolatey',
}
To specify custom source
package { 'notepadplusplus':
ensure => '6.7.5',
provider => 'chocolatey',
source => 'C:\local\folder\packages',
}
package { 'notepadplusplus':
ensure => '6.7.5',
provider => 'chocolatey',
source => '\\unc\source\packages',
}
package { 'notepadplusplus':
ensure => '6.7.5',
provider => 'chocolatey',
source => 'https://custom.nuget.odata.feed/api/v2/',
}
package { 'notepadplusplus':
ensure => '6.7.5',
provider => 'chocolatey',
source => 'C:\local\folder\packages;https://chocolatey.org/api/v2/',
}
Install options with spaces
Spaces in arguments must always be covered with a separation. Shown
below is an example of how you configure -installArgs "/VERYSILENT /NORESTART"
.
package {'launchy':
ensure => installed,
provider => 'chocolatey',
install_options => ['-override', '-installArgs', '"', '/VERYSILENT', '/NORESTART', '"'],
}
Install options with quotes or spaces
The underlying installer may need quotes passed to it. This is possible, but not
as intuitive. The example below covers passing /INSTALLDIR="C:\Program Files\somewhere"
.
For this to be passed through with Chocolatey, you need a set of double
quotes surrounding the argument and two sets of double quotes surrounding the
item that must be quoted (see how to pass/options/switches). This makes the
string look like -installArgs "/INSTALLDIR=""C:\Program Files\somewhere"""
for
proper use with Chocolatey.
Then, for Puppet to handle that appropriately, you must split on every space. Yes, on every space you must split the string or the result comes out incorrectly. This means it will look like the following:
install_options => ['-installArgs',
'"/INSTALLDIR=""C:\Program', 'Files\somewhere"""']
Make sure you have all of the right quotes - start it off with a single double quote, then two double quotes, then close it all by closing the two double quotes and then the single double quote or a possible three double quotes at the end.
package {'mysql':
ensure => latest,
provider => 'chocolatey',
install_options => ['-override', '-installArgs',
'"/INSTALLDIR=""C:\Program', 'Files\somewhere"""'],
}
You can split it up a bit for readability if it suits you:
package {'mysql':
ensure => latest,
provider => 'chocolatey',
install_options => ['-override', '-installArgs', '"'
'/INSTALLDIR=""C:\Program', 'Files\somewhere""',
'"'],
}
Note: The above is for Chocolatey v0.9.9+. You may need to look for an alternative method to pass args if you have 0.9.8.x and below.
A warning about secrets in install_options
There is no guarantee that secrets in install_options
will not show up in debug runs of either puppet agent
or puppet apply
calls.
This is another reason to not set your production runs to debug mode.
However, this information is not written to puppetdb or any other Puppet logs.
It is written to the Chocolatey log on each machine unless you have C4B and use the --package-parameters-sensitive
or --install-arguments-sensitive
Chocolatey parameters, which will redact specified values from the Chocolatey log.
For more information on these Chocolatey parameters, see the Chocolatey reference documentation on the install command and the upgrade command.
If you need to include a secret in your install_options
, do not run in debug mode in production and use C4B and the --package-parameters-sensitive
or --install-arguments-sensitive
Chocolatey parameter.
Passing Flags With Package Settings
You can pass flags to the chocolatey provider using package_settings. You might want to do this in a default:
Package {
package_settings => { 'verbose' => true, 'log_output' => true, },
}
- "verbose" causes calls to chocolatey to output information about what they're
about to do; this is because some things, in particular "ensure => latest",
are pretty slow, which can lead to long periods where Puppet appears to be
doing nothing.
- When Chocolatey is version
0.10.4
or later and "Verbose" is not specified astrue
Chocolatey will be run with the--no-progress
parameter, limiting the erroneous output of download information to the logs.
- When Chocolatey is version
- "log_output" causes the output of chocolatey upgrades and installs to be shown.
Reference
For information on classes and types, see REFERENCE.md. For information on facts, see below.
Facts
chocolateyversion
- The version of the installed Chocolatey client (could also be informationally provided by class parameterchocolatey_version
).choco_install_path
- The location of the installed Chocolatey client (could also be provided by class parameterchoco_install_location
).
Limitations
- The module is only suppported on Windows. For an extensive list of supported operating systems, see metadata.json
- If you override an existing install location of Chocolatey using
choco_install_location =>
in the Chocolatey class, it does not bring any of the existing packages with it. You will need to handle that through some other means. - Overriding the install location will also not allow Chocolatey to be configured or install packages on the same run that it is installed on. See
choco_install_location
for details.
Known Issues
- This module doesn't support side by side scenarios.
- This module may have issues upgrading Chocolatey itself using the package resource.
- If .NET 4.0 is not installed, it may have trouble installing Chocolatey. Chocolatey version 0.9.9.9+ helps alleviate this issue.
- If there is an error in the installer (
InstallChocolatey.ps1.erb
), it may not show as an error. This may be an issue with the PowerShell provider and is still under investigation.
License
This codebase is licensed under the Apache2.0 licensing, however due to the nature of the codebase the open source dependencies may also use a combination of AGPL, BSD-2, BSD-3, GPL2.0, LGPL, MIT and MPL Licensing.
Development
Acceptance tests for this module leverage puppet_litmus. To run the acceptance tests follow the instructions here. You can also find a tutorial and walkthrough of using Litmus and the PDK on YouTube.
If you run into an issue with this module, or if you would like to request a feature, please file a ticket. Every Monday the Puppet IA Content Team has office hours in the Puppet Community Slack, alternating between an EMEA friendly time (1300 UTC) and an Americas friendly time (0900 Pacific, 1700 UTC).
If you have problems getting this module up and running, please contact Support.
If you submit a change to this module, be sure to regenerate the reference documentation as follows:
puppet strings generate --format markdown --out REFERENCE.md
Attributions
A special thanks goes out to Rich Siegel and Rob Reynolds who wrote the original provider and continue to contribute to the development of this provider.
Reference
Table of Contents
Classes
Public Classes
chocolatey
: Used for managing installation and configuration of Chocolatey itself.
Private Classes
chocolatey::config
: Handles configuration of Chocolateychocolatey::install
: Handles installation of Chocolatey
Resource types
chocolateyconfig
: Allows managing config settings for Chocolatey. Configuration values provide settings for users to configure aspects of Chocolatey and the wachocolateyfeature
: Allows managing features for Chocolatey. Features are configuration that act as feature flippers to turn on or off certain aspects of how Chochocolateysource
: Allows managing sources for Chocolatey. A source can be a folder, a CIFS share, a NuGet Http OData feed, or a full Package Gallery. Learn mor
Tasks
init
: Manage a packageoutdated
: List outdated packagespin
: Manage package pinningstatus
: List currently installed packages
Classes
chocolatey
Used for managing installation and configuration of Chocolatey itself.
Examples
Default - This will by default ensure Chocolatey is installed and ready for use.
include chocolatey
Override default install location
class {'chocolatey':
choco_install_location => 'D:\secured\choco',
}
Use an internal Chocolatey.nupkg for installation
class {'chocolatey':
chocolatey_download_url => 'https://internalurl/to/chocolatey.nupkg',
use_7zip => false,
choco_install_timeout_seconds => 2700,
}
Use a file chocolatey.0.9.9.9.nupkg for installation
class {'chocolatey':
chocolatey_download_url => 'file:///c:/location/of/chocolatey.0.9.9.9.nupkg',
use_7zip => false,
choco_install_timeout_seconds => 2700,
}
Log chocolatey bootstrap installer script output
class {'chocolatey':
log_output => true,
}
Disable autouninstaller (use when less than 0.9.9.8)
class {'chocolatey':
enable_autouninstaller => false,
}
Parameters
The following parameters are available in the chocolatey
class:
choco_install_location
use_7zip
seven_zip_download_url
choco_install_timeout_seconds
chocolatey_download_url
enable_autouninstaller
log_output
chocolatey_version
install_proxy
choco_install_location
Data type: Stdlib::Windowspath
Where Chocolatey install should be
located. This needs to be an absolute path starting with a drive letter
e.g. c:\
. Defaults to the currently detected install location based on
the ChocolateyInstall
environment variable, falls back to
'C:\ProgramData\chocolatey'
.
Default value: $facts['choco_install_path']
use_7zip
Data type: Boolean
Whether to use built-in shell or allow installer
to download 7zip to extract chocolatey.nupkg
during installation.
Defaults to false
.
Default value: false
seven_zip_download_url
Data type: String[1]
Specifies the source file for 7za.exe. Supports all sources supported by Puppet's file resource. You should use a 32bit binary for compatibility. Defaults to 'https://chocolatey.org/7za.exe'.
Default value: 'https://chocolatey.org/7za.exe'
choco_install_timeout_seconds
Data type: Integer
How long in seconds should
be allowed for the install of Chocolatey (including .NET Framework 4 if
necessary). Defaults to 1500
(25 minutes).
Default value: 1500
chocolatey_download_url
Data type: Stdlib::Filesource
A url that will return
chocolatey.nupkg
. This must be a url, but not necessarily an OData feed.
Any old url location will work. Defaults to
'https://chocolatey.org/api/v2/package/chocolatey/'
.
Default value: 'https://chocolatey.org/api/v2/package/chocolatey/'
enable_autouninstaller
Data type: Boolean
[Deprecated] - Should auto
uninstaller be turned on? Auto uninstaller is what allows Chocolatey to
automatically manage the uninstall of software from Programs and Features
without necessarily requiring a chocolateyUninstall.ps1
file in the
package. Defaults to true
. Setting is ignored in Chocolatey v0.9.10+.
Default value: true
log_output
Data type: Boolean
Log output from the installer. Defaults to
false
.
Default value: false
chocolatey_version
Data type: String[1]
- Informational parameter to tell
Chocolatey what version to expect and to pre-load features with, falls
back to
$::chocolateyversion
.
Default value: $facts['chocolateyversion']
install_proxy
Data type: Optional[String[1]]
Proxy server to use to use for installation of chocolatey itself or
undef
to not use a proxy
Default value: undef
Resource types
chocolateyconfig
Allows managing config settings for Chocolatey. Configuration values provide settings for users to configure aspects of Chocolatey and the way it functions. Similar to features, except allow for user configured values. Requires 0.9.10+. Learn more about config at https://chocolatey.org/docs/commands-config
Properties
The following properties are available in the chocolateyconfig
type.
ensure
Valid values: present
, absent
Specifies state of resource
Default value: present
value
The value of the config setting. If the name includes 'password', then the value is not ensurable due to being encrypted in the configuration file.
Parameters
The following parameters are available in the chocolateyconfig
type.
name
namevar
The name of the config setting. Used for uniqueness. Puppet is not able to easily manage any values that include Password in the key name in them as they will be encrypted in the configuration file.
provider
The specific backend to use for this chocolateyconfig
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
chocolateyfeature
Allows managing features for Chocolatey. Features are configuration that act as feature flippers to turn on or off certain aspects of how Chocolatey works. Learn more about features at https://chocolatey.org/docs/commands-feature
Properties
The following properties are available in the chocolateyfeature
type.
ensure
Valid values: enabled
, disabled
Specifies state of resource
Parameters
The following parameters are available in the chocolateyfeature
type.
name
namevar
The name of the feature. Used for uniqueness.
provider
The specific backend to use for this chocolateyfeature
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
chocolateysource
Allows managing sources for Chocolatey. A source can be a folder, a CIFS share, a NuGet Http OData feed, or a full Package Gallery. Learn more about sources at https://chocolatey.org/docs/how-to-host-feed
Properties
The following properties are available in the chocolateysource
type.
admin_only
Valid values: true
, false
Option to specify whether this source should visible to Windows user accounts in the Administrators group only.
Requires Chocolatey for Business (C4B) v1.12.2+ and at least Chocolatey v0.10.8 for the setting to be respected. Defaults to false.
Default value: false
allow_self_service
Valid values: true
, false
Option to specify whether this source should be allowed to be used with Chocolatey Self Service.
Requires Chocolatey for Business (C4B) v1.10.0+ with the feature useBackgroundServiceWithSelfServiceSourcesOnly turned on in order to be respected. Also requires at least Chocolatey v0.10.4 for the setting to be enabled. Defaults to false.
Default value: false
bypass_proxy
Valid values: true
, false
Option to specify whether this source should explicitly bypass any explicitly or system configured proxies. Requires at least Chocolatey v0.10.4. Defaults to false.
Default value: false
ensure
Valid values: present
, disabled
, absent
Specifies state of resource
Default value: present
location
The location of the source repository. Can be a url pointing to
an OData feed (like chocolatey/chocolatey_server), a CIFS (UNC) share,
or a local folder. Required when ensure => present
(the default for
ensure
).
priority
Optional priority for explicit feed order when searching for packages across multiple feeds. The lower the number the higher the priority. Sources with a 0 priority are considered no priority and are added after other sources with a priority number. Requires at least Chocolatey v0.9.9.9. Defaults to 0.
Default value: 0
user
Optional user name for authenticated feeds.
Requires at least Chocolatey v0.9.9.0.
Defaults to nil
. Specifying an empty value is the
same as setting the value to nil or not specifying
the property at all.
Default value: ''
Parameters
The following parameters are available in the chocolateysource
type.
name
namevar
The name of the source. Used for uniqueness.
password
Optional user password for authenticated feeds.
Not ensurable. Value is not able to be checked
with current value. If you need to update the password,
update another setting as well.
Requires at least Chocolatey v0.9.9.0.
Defaults to nil
. Specifying an empty value is the
same as setting the value to nil or not specifying
the property at all.
Default value: ''
provider
The specific backend to use for this chocolateysource
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
Tasks
init
Manage a package
Supports noop? false
Parameters
action
Data type: Enum[install,upgrade,uninstall]
Action to perform
package
Data type: String[1]
Package to manipulate
version
Data type: Optional[String[1]]
Use a specific version
outdated
List outdated packages
Supports noop? false
pin
Manage package pinning
Supports noop? false
Parameters
action
Data type: Enum[list,add,remove]
Action to perform
package
Data type: Optional[String[1]]
Package to manipulate
version
Data type: Optional[String[1]]
Use a specific version
status
List currently installed packages
Supports noop? false
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v8.0.1 - 2024-12-10
v8.0.0 - 2023-05-31
Changed
Added
- pdksync - (MAINT) - Allow Stdlib 9.x #326 (LukasAud)
- (CONT-596) - Updating readme with deferred function for sensitive fields #325 (Ramesh7)
Fixed
v7.0.1 - 2023-03-16
Fixed
- (CONT-708) Set all execute's to run with sensitive #310 (david22swan)
v7.0.0 - 2022-10-31
Changed
v6.2.1 - 2022-10-03
Fixed
- (MAINT) Dropping of support for windows 7,8.1, 2008/2008R2 (Server) #300 (jordanbreen28)
v6.2.0 - 2022-05-16
Added
v6.1.1 - 2022-04-11
Fixed
v6.1.0 - 2022-03-08
Added
- pdksync - (FM-8922) - Add Support for Windows 2022 #278 (david22swan)
- (MODULES-11255) Add basic tasks to manage packages #273 (smortex)
- add support for version range #269 (rico89)
v6.0.1 - 2021-04-19
Fixed
v6.0.0 - 2021-03-03
Changed
- pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0 #248 (carabasdaniel)
Fixed
- (MODULES-10704) - Have the code error out rather than return nil values when finding version #247 (david22swan)
v5.2.1 - 2021-01-11
Fixed
- Add back error fix for (MODULES-3677) #241 (daianamezdrea)
v5.2.0 - 2020-12-09
Added
- pdksync - (feat) - Add support for Puppet 7 #236 (daianamezdrea)
v5.1.1 - 2020-08-28
Fixed
- (MODULES-10791) Increase upper boundary for powershell dependency to 5.0.0 #228 (adrianiurca)
v5.1.0 - 2020-08-26
Added
- (IAC-980) - Removal of inappropriate terminology #224 (david22swan)
- pdksync - (IAC-973) - Update travis/appveyor to run on new default branch
main
#219 (david22swan)
Fixed
- [MODULES-10759] - set a default value if custom facts fails #223 (adrianiurca)
v5.0.2 - 2020-01-16
Fixed
v5.0.1 - 2019-12-09
v5.0.0 - 2019-10-14
Changed
Fixed
v4.1.0 - 2019-08-19
Added
- (MODULES-9690) Redact Sensitive Commandline #168 (RandomNoun7)
v4.0.0 - 2019-07-30
Changed
Added
- (MODULES-9317) Add Puppet Strings docs #162 (eimlav)
- (FM-8194) Convert tests to litmus #156 (eimlav)
- (MODULES-9224) Add no progress flag #154 (michaeltlombardi)
3.3.0 - 2019-03-19
Added
Fixed
- (MODULES-8491) Warn about
install_options
secrets #147 (michaeltlombardi) - (MODULES-8047) Fix puppet resource chocolateyconfig #146 (michaeltlombardi)
3.2.0 - 2019-02-20
Added
- (MODULES-5897) Add allow_self_service to chocolateysource #137 (michaeltlombardi)
- (MODULES-5898) add admin_only to chocolateysource #135 (michaeltlombardi)
- (MODULES-4418) Add bypass_proxy to chocolateysource #132 (michaeltlombardi)
- MODULES-7068 Only initialise constant when not defined #104 (btoonk)
- (MODULES-5654) Support for proxies during installation #87 (GeoffWilliams)
- (MODULES-5383) Remove exit codes arg with feature #84 (davidtwco)
Fixed
- (MAINT) Fix broken state which causes CI to fail #140 (michaeltlombardi)
- (MODULES-8400) PDK Sync to fix Travis #129 (RandomNoun7)
- (MODULES-6948) Fix/generate types chocolateyfeature #111 (rico89)
- (MODULES-8493) Fix Source Syntax #105 (jcwest)
3.1.1 - 2018-12-12
Added
- (WIN-231) Change curl_on command to add path to cacert bundle #120 (ThoughtCrhyme)
Fixed
- (MODULES-5859) Fix An already initialized constant' warning when doing a "puppet apply" #89 (psreed)
3.1.0 - 2018-10-08
Fixed
- (MODULES-6746) Convert Tests to RSpec #98 (RandomNoun7)
- add choco_ver variable and string it #88 (tek0011)
3.0.0 - 2017-06-02
Fixed
- (MODULES-4562) Use actual choco.exe #77 (ferventcoder)
- (MODULES-4678) Explicitly close config on read #76 (ferventcoder)
2.0.2 - 2017-04-04
Fixed
- (Modules-4508) Fixed error with version parameter #69 (derek-robinson)
Other
2.0.1 - 2017-01-03
Fixed
- (MODULES-4056) Helpful Error if No Sources Enabled #57 (ferventcoder)
- (MODULES-4210) Do not use com unzip in PS 5+ #56 (helge000)
- (MODULES-4149) Unsuitable providers should not error #54 (ferventcoder)
- (MODULES-4091) Explicitly Set ChocolateyInstall Environment #53 (ferventcoder)
- (MODULES-4135) choco -v - Remove all extraneous messaging #52 (ferventcoder)
2.0.0 - 2016-09-29
Added
- (MODULES-3677) Ensure Chocolatey Config #37 (ferventcoder)
Fixed
- (MODULES-3880) Ignore Package Exit Codes #46 (ferventcoder)
- (MODULES-3758) Fix: chocolateysource user ensure sync #42 (ferventcoder)
- (MODULES-3430) Do not set default location to resource title #41 (ferventcoder)
- (MODULES-3391) Limit
rake spec
on older puppet #36 (MosesMendoza) - (Modules 3391) remove
rake test
and fix failing test #35 (MosesMendoza) - (MODULES-3641) Remove Windows_env module dependency #34 (ferventcoder)
0.8.0 - 2016-07-13
Changed
- (MODULES-3490) Sync from Community Repo #28 (ferventcoder)
1.2.6 - 2016-07-11
Added
- (MODULES-3035) Manage configuration settings #17 (ferventcoder)
Fixed
- (MODULES-3275) fix VLC uninstall command #30 (ThoughtCrhyme)
- (MODULES-3275) Chocolatey module testing #26 (ThoughtCrhyme)
1.2.5 - 2016-06-20
Added
- (MODULES-3034) Feature Configuration #24 (ferventcoder)
1.2.4 - 2016-06-04
0.7.0 - 2016-06-01
Added
- (MODULES-3043) add acceptance and reference test for choco install #14 (ThoughtCrhyme)
- (MODULES-3037) Manage sources #1 (ferventcoder)
Fixed
- (MODULES-3037) Acceptance tests - ChocolateySource #21 (ThoughtCrhyme)
- (MODULES-3037) Acceptance tests - ChocolateySource #20 (ferventcoder)
- (MODULES-3037) Confine version fact w/default #19 (ferventcoder)
- (MODULES-3037) Confine install path fact w/default #18 (ferventcoder)
- Change templates to use windows 2008r2 without wmf5 #16 (ThoughtCrhyme)
1.2.3 - 2016-05-06
Added
- Tests/master/modules 3138 #11 (ThoughtCrhyme)
- (MODULES-3138) Added presuites #10 (ThoughtCrhyme)
Fixed
- Tests/master/modules 3138 #12 (ThoughtCrhyme)
1.2.2 - 2016-04-06
Added
- (MODULES-3161) Add acceptance test harness #8 (glennsarti)
- (MODULES-3161) Add rake tests task #5 (glennsarti)
1.2.1 - 2015-12-08
1.2.0 - 2015-11-03
1.1.2 - 2015-10-02
1.1.1 - 2015-09-25
1.1.0 - 2015-09-09
1.0.2 - 2015-07-23
1.0.1 - 2015-07-01
1.0.0 - 2015-06-08
0.5.3 - 2015-05-22
0.5.2 - 2015-04-23
0.5.1 - 2015-03-31
0.5.0 - 2015-03-30
0.4.0 - 2014-12-22
help - 2014-12-22
0.3 - 2014-08-18
0.2 - 2013-11-19
Dependencies
- puppetlabs/stdlib (>= 4.6.0 < 10.0.0)
- puppetlabs/powershell (>= 1.0.1 < 7.0.0)
- puppetlabs/registry (>= 1.0.0 < 6.0.0)
- puppetlabs/ruby_task_helper (>= 0.4.0 < 1.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Quality checks
We run a couple of automated scans to help you assess a module’s quality. Each module is given a score based on how well the author has formatted their code and documentation and select modules are also checked for malware using VirusTotal.
Please note, the information below is for guidance only and neither of these methods should be considered an endorsement by Puppet.
Malware scan results
The malware detection service on Puppet Forge is an automated process that identifies known malware in module releases before they’re published. It is not intended to replace your own virus scanning solution.
Learn more about malware scans- Module name:
- puppetlabs-chocolatey
- Module version:
- 8.0.1
- Scan initiated:
- December 17th 2024, 21:19:12
- Detections:
- 0 / 61
- Scan stats:
- 61 undetected
- 0 harmless
- 0 failures
- 0 timeouts
- 0 malicious
- 0 suspicious
- 15 unsupported
- Scan report:
- View the detailed scan report