2014 Presented by Plugging Chocolatey into your Puppet Infrastructure Rob Reynolds Senior Software Engineer | Puppet Labs @ferventcoder
May 24, 2015
2014
Presented by
Plugging Chocolatey into your Puppet Infrastructure
Rob Reynolds Senior Software Engineer | Puppet Labs @ferventcoder
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
Presented by
Agenda• Chocolatey?
• Chocolatey Provider
• Why Chocolatey?
• Creating Packages
• Host your own package server
• Announcements
Presented by
What Exactly is Chocolatey?
Presented by
Package Manager for Windows• Behaves much like yum
• Microsoft validated
• Technologies: PowerShell + NuGet packaging framework
• Does not violate distribution rights
Chocolatey
Presented by
chocolatey.org• Community feed
• Community maintained
• Trust issues?
• Recommendation: A business should run their own internal feed
5 Million Downloads!
Presented by
Chocolatey Puppet Provider
Presented by
Puppet Provider• puppet module install
rismoney/chocolatey
• Rich is a committer
• Doesn’t yet install chocolatey
Presented by
Package Resource
• installable, uninstallable, upgradeable, versionable, install_options
• Soon: holdable, uninstall_options
• Later: virtual_packages
Presented by
Why Chocolatey provider versus the built in provider?
Presented by
Use case: git• Name of
package
• Source
• Manifest maintenance
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
Presented by
Make Chocolatey your default!• Set Package resource
default for provider to chocolatey on Windows
• Note: There might be better ways of doing this, follow those guidelines when conflicting :)
Presented by
Chocolatey Provider Demo
Presented by
Creating Packages
Presented by
Creating Packages• *.nuspec
• chocolateyInstall.ps1
• Other resources like binaries / config files, etc
• Getting started / reference at https://bit.ly/createchocolateypackages
Presented by
packagename.nuspec• This is a nuget
packaging specification
• Later: choco adding infrastructure, os versions, etc
Presented by
chocolateyInstall.ps1• Helpers / Functions
• Reduce work
• PowerShell, you can do *anything*
• Function reference http://bit.ly/chocolateyfunctionreference
Presented by
Create Packages Visually• Nuget Package Explorer
(choco install nugetpackageexplorer)
• Ignore its warnings, it is geared towards NuGet proper
• NO content folder
Presented by
Create Packages Demo
Presented by
Host Your Own Chocolatey Package Server
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
Presented by
Chocolatey Package Server Demo
Presented by
Announcements
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
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
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
Presented by
Okay how about no network?• choco list -lo
!
!
!
• 300% increase!
Presented by
Chocolatey Puppet Provider• How many of you would like to see the
current provider get better?
• How many of you think it would be awesome if it were a Puppet Labs supported module?
• How many of you just want chocolate?
Presented by
Supported Module• Yes, we plan to provide a Puppet Labs supported
module!
Presented by
chocolatey.org Improvements• Mark outdated
• Mark bad
• Security improvements still coming
Presented by
Demo of new Chocolatey!
Presented by
Questions?• Join the newsletter for announcements - https://
chocolatey.org/#newsletter
• ferventcoder { twitter, github, gmail }, also [email protected]
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