Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
1. 2014
Presented by
Plugging Chocolatey
into your Puppet
Infrastructure
Rob Reynolds
Senior Software Engineer | Puppet
Labs
@ferventcoder
2. Presented by
Rob Reynolds
• Developer at Puppet Labs
• Creator of Chocolatey
• All around nice guy
• Making your Windows world
a better place
• Windows, it’s a technique
3. Presented by
Agenda
• Chocolatey?
• Chocolatey Provider
• Why Chocolatey?
• Creating Packages
• Host your own package server
• Announcements
5. Package Manager for Windows
• Behaves much like yum
Chocolatey
Presented by
• Microsoft validated
• Technologies: PowerShell
+ NuGet packaging framework
• Does not violate distribution
rights
6. Presented by
chocolatey.org
• Community feed
• Community maintained
• Trust issues?
• Recommendation: A
business should run
their own internal feed
5 Million Downloads!
11. Presented by
Use case: git
• Name of
package
• Source
• Manifest
maintenance
12. Presented by
Why Chocolatey Provider?
• Synonymous with other package managers
• No edge cases like version in application names
• No edge cases like unicode symbols (em-dash,
em-I-rite?) in app names
• No source needing to point to the installer. Can I
get a WAT
13. Make Chocolatey your default!
• Set Package resource
default for provider to
chocolatey on Windows
Presented by
• Note: There might be better ways of doing
this, follow those guidelines when conflicting :)
16. Presented by
Creating Packages
• *.nuspec
• chocolateyInstall.ps1
• Other resources like binaries / config files, etc
• Getting started / reference at https://bit.ly/
createchocolateypackages
17. Presented by
packagename.nuspec
• This is a nuget
packaging
specification
• Later: choco adding
infrastructure, os
versions, etc
18. Presented by
chocolateyInstall.ps1
• Helpers / Functions
• Reduce work
• PowerShell, you can
do *anything*
• Function reference
http://bit.ly/chocolateyfunctionreference
19. Presented by
Create Packages Visually
• Nuget Package Explorer
(choco install
nugetpackageexplorer)
• Ignore its warnings, it is
geared towards NuGet
proper
• NO content folder
21. Host Your Own Chocolatey
Presented by
Package Server
22. Presented by
Host Chocolatey Packages
• Now it’s easy to set up your
own package feed
• Make it custom/internal for
business purposes.
• chocolatey.server package
• Beta
• Simple server
25. Presented by
So it’s been a year
• A year ago we:
• were on Choco v0.9.8.20
• the chocolatey puppet module was just fixed
• and no easy way to install a private choco server
26. Presented by
Getting Chocolatey
• Chocolatey Executable
• First public viewing here today
• Stability / Performance improvements
• Help menu improvements (like, there is one now)
• Lots of command switches
• Global Noop
27. Presented by
Just how much faster is it?
• Checking upgrades across 114 packages
!
!
!
• Almost 600% increase!!! Granted this is still slow, but
package indexes are coming later
28. Okay how about no network?
• choco list -lo
Presented by
!
!
!
• 300% increase!
29. Chocolatey Puppet Provider
• How many of you would like to see the
current provider get better?
Presented by
• How many of you think it would be
awesome if it were a Puppet Labs
supported module?
• How many of you just want chocolate?
30. Supported Module
• Yes, we plan to provide a Puppet Labs supported
module!
Presented by
33. Questions?
• Join the newsletter for announcements - https://
chocolatey.org/#newsletter
Presented by
• ferventcoder { twitter, github, gmail }, also
rob@puppetlabs.com
34. Presented by
Thank you!
• Other awesome things involving Windows:
• Getting started w/Puppet on Windows (Josh Cooper) -
Wed 2:20PM - Golden Gate B
• Workshop: Puppet for Windows Users (Ethan Brown) -
Wed 3:10 - Salon 2-3
• Puppet Demo: Managing Windows with Puppet
Enterprise - today/tomorrow - Nob Hill