SlideShare a Scribd company logo
Founder
Chocolatey Software
Rob Reynolds
Modern Software Management on
Windows with
Chocolatey and Puppet
Rob Reynolds
• Creator and Founder of Chocolatey
• Puppet Alum
• Enjoys long walks on the beach and designing
solutions that make hard things easy
• Co-wrote infrastructure framework 

known as the Chuck Norris Framework
• Over 10 years experience in 

infrastructure automation
• Obsesses over user experience
• Microsoft MVP for whatever they are
calling .NET area now
Agenda
• Chocolatey
• Why
• What
• Features
• Chocolatey + Puppet
• Demo
• Questions
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
Why Chocolatey?
Software management may
account for 50-90% of your
automation
Windows Software Ecosystem
• Over 20 installer formats and
thousands of installers in the
wild
• Zips and other archive formats
• Software installers are messy
• Deploy internal/3rd party
software using same approach?
• It’s like the Wild West
Why Chocolatey?
• Reporting
• Features
• Offline
• Secure
• Flexibility
• Beyond Programs and Features
• Beyond just running installers
• Integrates with everything
Why Chocolatey?
• Focused solution - does 1 thing very well for over 6+ years
• Uses PowerShell - not learning new or proprietary
technologies
• One approach for all software management - 3rd party
and internal
• Reinventing Chocolatey could cost over $1 million
• Hundreds of other companies are using it, there must be a
reason
What is Chocolatey?
What is Chocolatey?
• Universal Approach for 

Software Management
• PowerShell
• Fancy zip files = “packages”
• Packages are independent software deployment
artifacts
• Takes your deployment scripts to the next level
Organizational / Internal
Use
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
That’s an iceberg
Well, obviously - what does
it represent though?
Here’s a hint
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
Community Package Repository
• https://chocolatey.org/packages
• Community Feed / Community
Maintained
• Moderated as of October 2014
• Everything goes through VirusTotal
• Organizations Should Avoid
• Not Fully Reliable - public repo
means subject to distribution
rights (download CDN cache
feature helps)
• Trust and Control
Sweet Features
FOSS vs Chocolatey for Business (C4B)
• Chocolatey open source (FOSS) == package
management
• Works well in organizational use
• C4B == complete software management
• Smoother experience
• Builds on top of FOSS
• Better system integration, endpoint
management, etc
• Better visual interfaces (GUIs)
• Features geared specifically towards
organizational use
Smart Installs / Smarter Upgrades
• Track software installation in Programs &
Features to map packages to system
installs
• Track environment variable changes
• Leave out guesswork by reporting on
software installation location
• Upgrades - Use Xml Document Transform
(XDT) for .NET configuration file changes
• Exclusive to Chocolatey - Use new tools /
commands without closing / re-opening
your shell for environment changes to
take effect
Graphical Interface - Chocolatey GUI
• Configure Chocolatey
• Manage software
installations
Automatic Uninstallation
• Exclusive to Chocolatey -
Automatically uninstall
over 90% of installations
without uninstall script
• AutoUninstaller reduces
time by not developing
and managing uninstall
scripts
Reporting / Auditing
Inventory - Comprehensive Software Audit
• Exclusive to Chocolatey - Visibility
beyond just the software ‘installed’ in
Programs & Features
• Track versions of zip archives & own
internal software that is not visible in
system installation.
• Get a complete view of your systems.
Chocolatey reports applications in
systems not directly under its
management.
• Package Audit (C4B) adds who and
when
All Packages in Programs and Features (C4B)
• Programs and Features
represents only 50-80% of the
software on a machine
• Chocolatey brings managed
entries for non-installer
packages
• Supporting legacy inventory
reporting systems is now a
snap
• Do not need to build MSIs /
Installers for internal use just
to support legacy reporting
Logging - Detailed Reporting
• Log file captures very
detailed information -
environment and state
• Reduces rollback /
recreation necessity
Compliance – Audit Out of Date Software
• choco outdated
• Comprehensive reporting on available upgrades
• See what will upgrade on next maintenance window
Package Repository
Hosting Your Own Package Server
• https://chocolatey.org/docs/how-to-host-feed
• Artifactory Pro (cross platform)
• Sonatype Nexus (cross platform)
• ProGet / MyGet
• Chocolatey.Server (Puppet Module -->)
• File Share (DFS, SMB, CIFS)
• NuGet Gallery
• NuGet.Server
• SCCM Distribution Points
• Visual Studio Team Services (use v2 endpoints)
Creating Software
Deployment “Packages”
Chocolatey Packages
• Terminology: "Package" is nupkg file, "Software" is binaries or installers
• Zip files + Versioning, Dependencies & PowerShell
• Metadata - Software Information / Package Information
• PowerShell - https://chocolatey.org/docs/helpers-reference
• 30+ Built-in functions - complex tasks become 1 liners
• Handle additional missing installer logic (like add to PATH)
• Add options missing from installer arguments
• Files - drop in binaries, native installers
Creating Packages
• https://chocolatey.org/docs/create-
packages
• choco new
• Generates package files with most of
the work done
• Create your own packaging templates!
Package Builder (C4B) - “Generate software
deployment packages in seconds”
• Package Builder automatically creates
high quality packaging from an installer/
zip in 5-10 seconds
• Determines everything necessary for
silently installing software for 70% of
installers
• Supports passing urls (and checksums) -
downloads files first
• Allows customization
• Supports exe, msi, 7z, zip, msu, and msp
files
Package Internalizer (C4B) - “Convert existing
packages to 100% offline and reliable”
• Take advantage of existing packages
without dependency on the internet
• Downloads existing package and all
remote resources
• Recompiles package to use those
internal resources
• Option to download and point to
other locations
• Ability to host packages on private
internal repositories
• Visual Interface coming
How does it work?
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
Package Synchronizer (C4B)
- stay in sync w/system
Package Synchronizer (Licensed) - Auto
Sync
• Chocolatey maintains state based
on packages. System state can be
manipulated outside of Chocolatey
• Any Chocolatey command will
trigger synchronization in licensed
editions of Chocolatey
• Package Synchronizer syncs with
manual software removal
• Syncs w/software that
automatically upgrades, such as
Chrome
Package Synchronizer (C4B) - Choco Sync
Command
• Brings all software in
Programs and Features
under Chocolatey
management
• Generates packaging and
baselines to Chocolatey
install
• Provides packaging code to
take back to source control
Self-Service (C4B) - “Non-
administrative desktop users
can install/upgrade software!”
Self-Service Installer / Background Mode (C4B)
Package Reducer (Licensed)
• Reduce Chocolatey space
usage down automatically
• Reduction on install/
upgrade
• choco optimize to clean
existing
Other Features
• https://chocolatey.org/docs/release-notes
• Internal sources (like ProGet)
• choco upgrade all - Windows update for
your 3rd party and internal software
• Shimming - like symlinks but better
• Pass install arguments directly through to
installer (append or override package args)
• Package Parameters to adjust logic in
packages
• Handles locking on upgrades in package
folders
• Great reference docs - https://
chocolatey.org/docs/commands-
reference & https://chocolatey.org/
docs/helpers-reference
• Excellent open source support
community
• 30+ built-in PowerShell Functions
• Extend functionality with your own
PowerShell Modules
• Custom Package Templates
• Can manage anything on Windows
Other Features (C4B)
• https://chocolatey.org/docs/
release-notes-licensed
• Auto-uninstaller more effective -
uninstaller detection / Package
Synchronizer
• Install/upgrade keeping secrets
out of logs
• Ubiquitous Install Directory
Option
• More built-in PowerShell functions
• Uninstall non-Chocolatey managed
software
• Direct Installer - install directly from
exe/msi
• Package Throttle
• Runtime malware protection
• CDN Cache
• Professional Packaging Services
• Amazing expert support team -
https://chocolatey.org/support
Chocolatey Workshop
• https://github.com/
ferventcoder/chocolatey-
worshop
• Become an expert
• You will learn something new
• Great learning resource for
newer folks
Chocolatey Roadmap
• https://chocolatey.org/docs/
roadmap
• Central Management UI (C4B)
• Choco Deploy CLI (C4B)
• WSA / Windows Nano Support
• PowerShell
PackageManagement Official
Provider
• Package Enhancements
• Pack Validation
• Virtual packages
• GPG Signing
• Package Grid (C4B)
• Deferred Installer (C4B)
• Chocolatey Toast (C4B)
• Possible support on other
platforms
puppetlabs/chocolatey
• https://puppet.com/blog/puppet-supported-module-chocolatey
• Everything from chocolatey/chocolatey - drop in replacement
• package resource
• ensure Chocolatey install
• Full configuration for Chocolatey
• chocolateysource
• chocolateyconfig
• chocolateyfeature
Install Chocolatey
• Install and initial configuration
• Point to internal resources
Package Resource
• installable, uninstallable, upgradeable, versionable, holdable, install_options,
uninstall_options
• Still later: virtual_packages
Chocolatey Package Resource
• Built in provider requires
manifest maintenance
• Package resource default to
provider => chocolatey for
Windows.
• Platform agnostic packaging
chocolateysource
• Disable/remove default community repository
• Add your own sources
• user/password 

protected as well
• puppet resource

chocolateysource
chocolateyconfig
• Set config settings
• Full list available by

choco config list or

puppet resource chocolateyconfig
chocolateyfeature
• Enable/disable features
• Full list available by

choco feature list or

puppet resource chocolateyfeature
Puppet Roadmap
• chocolatey_server to use new Puppet supported
IIS module
• IIS has a small bug in it currently for first run
• puppetlabs/chocolatey - continue to be supported
by Puppet and Chocolatey
• chocolatey/chocolatey - deciding what to do with
it
• New things will be coming
Once you go Chocolatey…
Would you go back to other
methods?
Automate Software Management
Without Chocolatey?
Automate Software Management
Without Chocolatey?
Automate Software Management
Without Chocolatey?
Demo
This is you
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
This is you on Chocolatey
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey
Any Questions?
https://chocolatey.org/
contact (Sales)
• ferventcoder -
twitter, gmail, etc
• Trial Chocolatey for
Business in your
environment today!
Questions?

More Related Content

PDF
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
PDF
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
PDF
Modern Software Management on Windows with Chocolatey and Puppet
PDF
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
PDF
Modern Software Management on Windows w/Chocolatey - That Conference 2017
PDF
Modern Software Management on Windows w/Chocolatey
PDF
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
PDF
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Modern Software Management on Windows with Chocolatey and Puppet
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...

What's hot (20)

PDF
Modern Software Management on Windows with Chocolatey - Automation Management...
PDF
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
PDF
One drupal to rule them all - Drupalcamp Caceres
PDF
Get Rapid Right-sized and Recent with the Liberty Repository
PDF
Unleashing the Power: A Lap Around PowerShell 3.0
ZIP
Using Features
PDF
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
PDF
Drupal 7
PPTX
One Drupal to rule them all - Drupalcamp London
PDF
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
PDF
Solr's missing plugin ecosystem
PDF
Acquia Commons
KEY
Top modules
PDF
BrightGen Spring 16 Release Webinar
PDF
VA Smalltalk Update ESUG2014
PDF
Deployer - Deployment tool for PHP
PDF
What's New and Next in OpenNTF Domino API (ICON UK 2014)
PPT
Deployment Strategies: Managing Code, Content, and Configurations
PDF
Social Connections 2015 CrossWorlds and Domino
PPTX
MWLUG 2015 - An Introduction to MVC
Modern Software Management on Windows with Chocolatey - Automation Management...
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
One drupal to rule them all - Drupalcamp Caceres
Get Rapid Right-sized and Recent with the Liberty Repository
Unleashing the Power: A Lap Around PowerShell 3.0
Using Features
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Drupal 7
One Drupal to rule them all - Drupalcamp London
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Solr's missing plugin ecosystem
Acquia Commons
Top modules
BrightGen Spring 16 Release Webinar
VA Smalltalk Update ESUG2014
Deployer - Deployment tool for PHP
What's New and Next in OpenNTF Domino API (ICON UK 2014)
Deployment Strategies: Managing Code, Content, and Configurations
Social Connections 2015 CrossWorlds and Domino
MWLUG 2015 - An Introduction to MVC
Ad

Similar to PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey (20)

PDF
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PPTX
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
PPTX
Package Management on Windows with Chocolatey
PDF
Chocolatey and Puppet: Managing Your Windows Software Since 2011
PPTX
Windows 2012 R2 Multi Server Management
PPTX
FlexDeploy Product Technical Overview
PPTX
Patch Management on Windows with Puppet
PPTX
Easy Cross-Platform PowerShell Automation with Puppet Bolt
PDF
High-level Guide: Upgrading to SharePoint 2013
PPTX
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
PDF
Phase2 Large Drupal Multisites (gta case study)
PPTX
Fluo CICD OpenStack Summit
PPT
SynapseIndia drupal presentation on drupal info
PDF
Smart Platform Infrastructure with AWS
PPTX
Warsaw MuleSoft Meetup #6 - CI/CD
PDF
Php Performance On Windows
PPTX
Best Practices for Enterprise Continuous Delivery of Oracle Fusion Middlewa...
PPTX
Version Control and Continuous Integration
PDF
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
PDF
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Package Management on Windows with Chocolatey
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Windows 2012 R2 Multi Server Management
FlexDeploy Product Technical Overview
Patch Management on Windows with Puppet
Easy Cross-Platform PowerShell Automation with Puppet Bolt
High-level Guide: Upgrading to SharePoint 2013
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Phase2 Large Drupal Multisites (gta case study)
Fluo CICD OpenStack Summit
SynapseIndia drupal presentation on drupal info
Smart Platform Infrastructure with AWS
Warsaw MuleSoft Meetup #6 - CI/CD
Php Performance On Windows
Best Practices for Enterprise Continuous Delivery of Oracle Fusion Middlewa...
Version Control and Continuous Integration
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
PPTX
Customizing Reporting with the Puppet Report Processor
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
PDF
Puppet camp2021 testing modules and controlrepo
PPTX
Puppetcamp r10kyaml
PDF
2021 04-15 operational verification (with notes)
PPTX
Puppet camp vscode
PDF
Modules of the twenties
PDF
Applying Roles and Profiles method to compliance code
PPTX
KGI compliance as-code approach
PDF
Enforce compliance policy with model-driven automation
PDF
Keynote: Puppet camp compliance
PPTX
Automating it management with Puppet + ServiceNow
PPTX
Puppet: The best way to harden Windows
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet Community Day: Planning the Future Together
The Evolution of Puppet: Key Changes and Modernization Tips
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Bolt Dynamic Inventory: Making Puppet Easier
Customizing Reporting with the Puppet Report Processor
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet camp2021 testing modules and controlrepo
Puppetcamp r10kyaml
2021 04-15 operational verification (with notes)
Puppet camp vscode
Modules of the twenties
Applying Roles and Profiles method to compliance code
KGI compliance as-code approach
Enforce compliance policy with model-driven automation
Keynote: Puppet camp compliance
Automating it management with Puppet + ServiceNow
Puppet: The best way to harden Windows
Simplified Patch Management with Puppet - Oct. 2020

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Encapsulation theory and applications.pdf
PPT
Teaching material agriculture food technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Encapsulation theory and applications.pdf
Teaching material agriculture food technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Approach and Philosophy of On baking technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Building Integrated photovoltaic BIPV_UPV.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
Spectroscopy.pptx food analysis technology
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
MYSQL Presentation for SQL database connectivity
sap open course for s4hana steps from ECC to s4
Review of recent advances in non-invasive hemoglobin estimation
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”
Mobile App Security Testing_ A Comprehensive Guide.pdf
Per capita expenditure prediction using model stacking based on satellite ima...

PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Puppet- Rob Reynolds, Chocolatey

  • 1. Founder Chocolatey Software Rob Reynolds Modern Software Management on Windows with Chocolatey and Puppet
  • 2. Rob Reynolds • Creator and Founder of Chocolatey • Puppet Alum • Enjoys long walks on the beach and designing solutions that make hard things easy • Co-wrote infrastructure framework 
 known as the Chuck Norris Framework • Over 10 years experience in 
 infrastructure automation • Obsesses over user experience • Microsoft MVP for whatever they are calling .NET area now
  • 3. Agenda • Chocolatey • Why • What • Features • Chocolatey + Puppet • Demo • Questions
  • 7. Software management may account for 50-90% of your automation
  • 8. Windows Software Ecosystem • Over 20 installer formats and thousands of installers in the wild • Zips and other archive formats • Software installers are messy • Deploy internal/3rd party software using same approach? • It’s like the Wild West
  • 9. Why Chocolatey? • Reporting • Features • Offline • Secure • Flexibility • Beyond Programs and Features • Beyond just running installers • Integrates with everything
  • 10. Why Chocolatey? • Focused solution - does 1 thing very well for over 6+ years • Uses PowerShell - not learning new or proprietary technologies • One approach for all software management - 3rd party and internal • Reinventing Chocolatey could cost over $1 million • Hundreds of other companies are using it, there must be a reason
  • 12. What is Chocolatey? • Universal Approach for 
 Software Management • PowerShell • Fancy zip files = “packages” • Packages are independent software deployment artifacts • Takes your deployment scripts to the next level
  • 16. Well, obviously - what does it represent though?
  • 19. Community Package Repository • https://chocolatey.org/packages • Community Feed / Community Maintained • Moderated as of October 2014 • Everything goes through VirusTotal • Organizations Should Avoid • Not Fully Reliable - public repo means subject to distribution rights (download CDN cache feature helps) • Trust and Control
  • 21. FOSS vs Chocolatey for Business (C4B) • Chocolatey open source (FOSS) == package management • Works well in organizational use • C4B == complete software management • Smoother experience • Builds on top of FOSS • Better system integration, endpoint management, etc • Better visual interfaces (GUIs) • Features geared specifically towards organizational use
  • 22. Smart Installs / Smarter Upgrades • Track software installation in Programs & Features to map packages to system installs • Track environment variable changes • Leave out guesswork by reporting on software installation location • Upgrades - Use Xml Document Transform (XDT) for .NET configuration file changes • Exclusive to Chocolatey - Use new tools / commands without closing / re-opening your shell for environment changes to take effect
  • 23. Graphical Interface - Chocolatey GUI • Configure Chocolatey • Manage software installations
  • 24. Automatic Uninstallation • Exclusive to Chocolatey - Automatically uninstall over 90% of installations without uninstall script • AutoUninstaller reduces time by not developing and managing uninstall scripts
  • 26. Inventory - Comprehensive Software Audit • Exclusive to Chocolatey - Visibility beyond just the software ‘installed’ in Programs & Features • Track versions of zip archives & own internal software that is not visible in system installation. • Get a complete view of your systems. Chocolatey reports applications in systems not directly under its management. • Package Audit (C4B) adds who and when
  • 27. All Packages in Programs and Features (C4B) • Programs and Features represents only 50-80% of the software on a machine • Chocolatey brings managed entries for non-installer packages • Supporting legacy inventory reporting systems is now a snap • Do not need to build MSIs / Installers for internal use just to support legacy reporting
  • 28. Logging - Detailed Reporting • Log file captures very detailed information - environment and state • Reduces rollback / recreation necessity
  • 29. Compliance – Audit Out of Date Software • choco outdated • Comprehensive reporting on available upgrades • See what will upgrade on next maintenance window
  • 31. Hosting Your Own Package Server • https://chocolatey.org/docs/how-to-host-feed • Artifactory Pro (cross platform) • Sonatype Nexus (cross platform) • ProGet / MyGet • Chocolatey.Server (Puppet Module -->) • File Share (DFS, SMB, CIFS) • NuGet Gallery • NuGet.Server • SCCM Distribution Points • Visual Studio Team Services (use v2 endpoints)
  • 33. Chocolatey Packages • Terminology: "Package" is nupkg file, "Software" is binaries or installers • Zip files + Versioning, Dependencies & PowerShell • Metadata - Software Information / Package Information • PowerShell - https://chocolatey.org/docs/helpers-reference • 30+ Built-in functions - complex tasks become 1 liners • Handle additional missing installer logic (like add to PATH) • Add options missing from installer arguments • Files - drop in binaries, native installers
  • 34. Creating Packages • https://chocolatey.org/docs/create- packages • choco new • Generates package files with most of the work done • Create your own packaging templates!
  • 35. Package Builder (C4B) - “Generate software deployment packages in seconds” • Package Builder automatically creates high quality packaging from an installer/ zip in 5-10 seconds • Determines everything necessary for silently installing software for 70% of installers • Supports passing urls (and checksums) - downloads files first • Allows customization • Supports exe, msi, 7z, zip, msu, and msp files
  • 36. Package Internalizer (C4B) - “Convert existing packages to 100% offline and reliable” • Take advantage of existing packages without dependency on the internet • Downloads existing package and all remote resources • Recompiles package to use those internal resources • Option to download and point to other locations • Ability to host packages on private internal repositories • Visual Interface coming
  • 37. How does it work?
  • 39. Package Synchronizer (C4B) - stay in sync w/system
  • 40. Package Synchronizer (Licensed) - Auto Sync • Chocolatey maintains state based on packages. System state can be manipulated outside of Chocolatey • Any Chocolatey command will trigger synchronization in licensed editions of Chocolatey • Package Synchronizer syncs with manual software removal • Syncs w/software that automatically upgrades, such as Chrome
  • 41. Package Synchronizer (C4B) - Choco Sync Command • Brings all software in Programs and Features under Chocolatey management • Generates packaging and baselines to Chocolatey install • Provides packaging code to take back to source control
  • 42. Self-Service (C4B) - “Non- administrative desktop users can install/upgrade software!”
  • 43. Self-Service Installer / Background Mode (C4B)
  • 44. Package Reducer (Licensed) • Reduce Chocolatey space usage down automatically • Reduction on install/ upgrade • choco optimize to clean existing
  • 45. Other Features • https://chocolatey.org/docs/release-notes • Internal sources (like ProGet) • choco upgrade all - Windows update for your 3rd party and internal software • Shimming - like symlinks but better • Pass install arguments directly through to installer (append or override package args) • Package Parameters to adjust logic in packages • Handles locking on upgrades in package folders • Great reference docs - https:// chocolatey.org/docs/commands- reference & https://chocolatey.org/ docs/helpers-reference • Excellent open source support community • 30+ built-in PowerShell Functions • Extend functionality with your own PowerShell Modules • Custom Package Templates • Can manage anything on Windows
  • 46. Other Features (C4B) • https://chocolatey.org/docs/ release-notes-licensed • Auto-uninstaller more effective - uninstaller detection / Package Synchronizer • Install/upgrade keeping secrets out of logs • Ubiquitous Install Directory Option • More built-in PowerShell functions • Uninstall non-Chocolatey managed software • Direct Installer - install directly from exe/msi • Package Throttle • Runtime malware protection • CDN Cache • Professional Packaging Services • Amazing expert support team - https://chocolatey.org/support
  • 47. Chocolatey Workshop • https://github.com/ ferventcoder/chocolatey- worshop • Become an expert • You will learn something new • Great learning resource for newer folks
  • 48. Chocolatey Roadmap • https://chocolatey.org/docs/ roadmap • Central Management UI (C4B) • Choco Deploy CLI (C4B) • WSA / Windows Nano Support • PowerShell PackageManagement Official Provider • Package Enhancements • Pack Validation • Virtual packages • GPG Signing • Package Grid (C4B) • Deferred Installer (C4B) • Chocolatey Toast (C4B) • Possible support on other platforms
  • 49. puppetlabs/chocolatey • https://puppet.com/blog/puppet-supported-module-chocolatey • Everything from chocolatey/chocolatey - drop in replacement • package resource • ensure Chocolatey install • Full configuration for Chocolatey • chocolateysource • chocolateyconfig • chocolateyfeature
  • 50. Install Chocolatey • Install and initial configuration • Point to internal resources
  • 51. Package Resource • installable, uninstallable, upgradeable, versionable, holdable, install_options, uninstall_options • Still later: virtual_packages
  • 52. Chocolatey Package Resource • Built in provider requires manifest maintenance • Package resource default to provider => chocolatey for Windows. • Platform agnostic packaging
  • 53. chocolateysource • Disable/remove default community repository • Add your own sources • user/password 
 protected as well • puppet resource
 chocolateysource
  • 54. chocolateyconfig • Set config settings • Full list available by
 choco config list or
 puppet resource chocolateyconfig
  • 55. chocolateyfeature • Enable/disable features • Full list available by
 choco feature list or
 puppet resource chocolateyfeature
  • 56. Puppet Roadmap • chocolatey_server to use new Puppet supported IIS module • IIS has a small bug in it currently for first run • puppetlabs/chocolatey - continue to be supported by Puppet and Chocolatey • chocolatey/chocolatey - deciding what to do with it • New things will be coming
  • 57. Once you go Chocolatey…
  • 58. Would you go back to other methods?
  • 62. Demo
  • 65. This is you on Chocolatey
  • 68. https://chocolatey.org/ contact (Sales) • ferventcoder - twitter, gmail, etc • Trial Chocolatey for Business in your environment today! Questions?