Install a package with chocolatey
Normally, when installing packages you copy them locally first, make any required changes to bring everything they download to an internal location, repackage the package with the edits, and build your own packages to host on your internal package repository (feed). For this exercise, however, you directly install a portable Notepad++ from Chocolatey's community feed. The Notepad++ CommandLine package is portable and shouldn't greatly affect an existing system.
If you want to use this package for a production scenario, you need an
internal custom feed. This is simple to set up with the chocolatey_server
module. You could also use Sonatype Nexus,
Artifactory, or a CIFS share if you want to host packages with a non-Windows option, or you can use anything on Windows that exposes a NuGet OData feed (Nuget is the packaging
infrastructure that Chocolatey uses). See the How To
Host Feed page of the chocolatey
wiki for more in-depth information. You could also store packages on your master
and use a file resource to verify they are in a specific local directory prior to ensuring
the packages.
Example
The following example ensures that Chocolatey, the Chocolatey Simple Server (an internal Chocolatey package repository), and some packages are installed. It requires the additional chocolatey/chocolatey_server module.
In c:\<FILE
PATH>\packages
you must have packages for Chocolatey, Chocolatey.Server, RoundhousE, Launchy,
and Git, as well as any of their dependencies for this to work.
case $operatingsystem {
'windows': {
Package {
provider => chocolatey,
source => 'C:\packages',
}
}
}
# include chocolatey
class {'chocolatey':
chocolatey_download_url => 'file:///C:/packages/chocolatey.0.9.9.11.nupkg',
use_7zip => false,
log_output => true,
}
# This contains the bits to install the custom server.
# include chocolatey_server
class {'chocolatey_server':
server_package_source => 'C:/packages',
}
package {'roundhouse':
ensure => '0.8.5.0',
}
package {'launchy':
ensure => installed,
install_options => ['-override', '-installArgs','"', '/VERYSILENT','/NORESTART','"'],
}
package {'git':
ensure => latest,
}