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
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and Puppet
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
Modern Software Management on Windows with Chocolatey and Puppet
Thatโ€™s an iceberg
Well, obviously - what does
it represent though?
Hereโ€™s a hint
Modern Software Management on Windows with Chocolatey and Puppet
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 ๏ฌle, "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?
Modern Software Management on Windows with Chocolatey and Puppet
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
Modern Software Management on Windows with Chocolatey and Puppet
This is you on Chocolatey
Modern Software Management on Windows with Chocolatey and Puppet
Any Questions?
https://chocolatey.org/
contact (Sales)
โ€ข ferventcoder -
twitter, gmail, etc
โ€ข Trial Chocolatey for
Business in your
environment today!
Questions?

More Related Content

What's hot (20)

PDF
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Rob Reynolds
ย 
PDF
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Rob Reynolds
ย 
PPTX
Running a Successful Open Source Project
Rob Reynolds
ย 
PDF
One drupal to rule them all - Drupalcamp Caceres
hernanibf
ย 
ZIP
Using Features
Alexandru Badiu
ย 
PDF
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
Howard Greenberg
ย 
PDF
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
ย 
PPT
XPages -Beyond the Basics
Ulrich Krause
ย 
PDF
Engage 2019: Modernising Your Domino and XPages Applications
Paul Withers
ย 
PDF
Access Data from XPages with the Relational Controls
Teamstudio
ย 
PDF
Social Connections 2015 CrossWorlds and Domino
Paul Withers
ย 
PPTX
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
ย 
PDF
OpenNTF Webinar, October 2020
Howard Greenberg
ย 
PDF
ILUG 2008 Templates, Templates Everywhere
Kevin Pettitt
ย 
PDF
How adding a further tool can be a good thing
Belsoft
ย 
PDF
Get Rapid Right-sized and Recent with the Liberty Repository
Graham Charters
ย 
PDF
OpenNTF Webinar, May 19, 2020
Howard Greenberg
ย 
PDF
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
Howard Greenberg
ย 
PDF
Drupal 7
Soni Amit K
ย 
PDF
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Howard Greenberg
ย 
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Rob Reynolds
ย 
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Rob Reynolds
ย 
Running a Successful Open Source Project
Rob Reynolds
ย 
One drupal to rule them all - Drupalcamp Caceres
hernanibf
ย 
Using Features
Alexandru Badiu
ย 
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
Howard Greenberg
ย 
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
ย 
XPages -Beyond the Basics
Ulrich Krause
ย 
Engage 2019: Modernising Your Domino and XPages Applications
Paul Withers
ย 
Access Data from XPages with the Relational Controls
Teamstudio
ย 
Social Connections 2015 CrossWorlds and Domino
Paul Withers
ย 
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
ย 
OpenNTF Webinar, October 2020
Howard Greenberg
ย 
ILUG 2008 Templates, Templates Everywhere
Kevin Pettitt
ย 
How adding a further tool can be a good thing
Belsoft
ย 
Get Rapid Right-sized and Recent with the Liberty Repository
Graham Charters
ย 
OpenNTF Webinar, May 19, 2020
Howard Greenberg
ย 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
Howard Greenberg
ย 
Drupal 7
Soni Amit K
ย 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Howard Greenberg
ย 

Similar to Modern Software Management on Windows with Chocolatey and Puppet (20)

PDF
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey โ€“ Rob Reyn...
Puppet
ย 
PPTX
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Puppet
ย 
PPTX
Package Management on Windows with Chocolatey
Puppet
ย 
PDF
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Rob Reynolds
ย 
PPTX
Windows 2012 R2 Multi Server Management
Sharkrit JOBBO
ย 
PPTX
FlexDeploy Product Technical Overview
Dalibor Blazevic
ย 
PPTX
Patch Management on Windows with Puppet
Puppet
ย 
PPTX
Easy Cross-Platform PowerShell Automation with Puppet Bolt
Puppet
ย 
PDF
High-level Guide: Upgrading to SharePoint 2013
C5 Insight
ย 
PPTX
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Puppet
ย 
PDF
Phase2 Large Drupal Multisites (gta case study)
Phase2
ย 
PPTX
Fluo CICD OpenStack Summit
Miguel Zuniga
ย 
PPT
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
ย 
PDF
Smart Platform Infrastructure with AWS
James Huston
ย 
PPTX
Warsaw MuleSoft Meetup #6 - CI/CD
Patryk Bandurski
ย 
PDF
Php Performance On Windows
ruslany
ย 
PPTX
One Drupal to rule them all - Drupalcamp London
hernanibf
ย 
PPTX
Best Practices for Enterprise Continuous Delivery of Oracle Fusion Middlewa...
Getting value from IoT, Integration and Data Analytics
ย 
PPTX
Version Control and Continuous Integration
Geff Henderson Chang
ย 
PDF
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Puppet
ย 
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey โ€“ Rob Reyn...
Puppet
ย 
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Puppet
ย 
Package Management on Windows with Chocolatey
Puppet
ย 
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Rob Reynolds
ย 
Windows 2012 R2 Multi Server Management
Sharkrit JOBBO
ย 
FlexDeploy Product Technical Overview
Dalibor Blazevic
ย 
Patch Management on Windows with Puppet
Puppet
ย 
Easy Cross-Platform PowerShell Automation with Puppet Bolt
Puppet
ย 
High-level Guide: Upgrading to SharePoint 2013
C5 Insight
ย 
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Puppet
ย 
Phase2 Large Drupal Multisites (gta case study)
Phase2
ย 
Fluo CICD OpenStack Summit
Miguel Zuniga
ย 
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
ย 
Smart Platform Infrastructure with AWS
James Huston
ย 
Warsaw MuleSoft Meetup #6 - CI/CD
Patryk Bandurski
ย 
Php Performance On Windows
ruslany
ย 
One Drupal to rule them all - Drupalcamp London
hernanibf
ย 
Best Practices for Enterprise Continuous Delivery of Oracle Fusion Middlewa...
Getting value from IoT, Integration and Data Analytics
ย 
Version Control and Continuous Integration
Geff Henderson Chang
ย 
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Puppet
ย 
Ad

More from Rob Reynolds (10)

PDF
Windows Just Got Chocolatey (Package Management) LISA15
Rob Reynolds
ย 
PDF
Puppet On Windows - Puppet Camp DC 2015
Rob Reynolds
ย 
PDF
DevOps: What is This Puppet You Speak Of?
Rob Reynolds
ย 
PDF
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Rob Reynolds
ย 
PDF
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Rob Reynolds
ย 
PDF
DevOps: Using Vagrant to Enhance Your Day to Day Development
Rob Reynolds
ย 
PPTX
Automated Testing but like for PowerShell (April 2012)
Rob Reynolds
ย 
PDF
DevOps: Getting Started with Puppet on Windows
Rob Reynolds
ย 
PDF
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Rob Reynolds
ย 
DOC
UppercuT - Getting Started
Rob Reynolds
ย 
Windows Just Got Chocolatey (Package Management) LISA15
Rob Reynolds
ย 
Puppet On Windows - Puppet Camp DC 2015
Rob Reynolds
ย 
DevOps: What is This Puppet You Speak Of?
Rob Reynolds
ย 
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Rob Reynolds
ย 
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Rob Reynolds
ย 
DevOps: Using Vagrant to Enhance Your Day to Day Development
Rob Reynolds
ย 
Automated Testing but like for PowerShell (April 2012)
Rob Reynolds
ย 
DevOps: Getting Started with Puppet on Windows
Rob Reynolds
ย 
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Rob Reynolds
ย 
UppercuT - Getting Started
Rob Reynolds
ย 
Ad

Recently uploaded (20)

PPTX
Wondershare Filmora Crack 14.5.18 + Key Full Download [Latest 2025]
HyperPc soft
ย 
PDF
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
ย 
PPTX
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
ย 
PPTX
IDM Crack with Internet Download Manager 6.42 [Latest 2025]
HyperPc soft
ย 
PPTX
CV-Project_2024 version 01222222222.pptx
MohammadSiddiqui70
ย 
PPTX
arctitecture application system design os dsa
za241967
ย 
PDF
Code Once; Run Everywhere - A Beginnerโ€™s Journey with React Native
Hasitha Walpola
ย 
PPTX
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
ย 
PPTX
Introduction to web development | MERN Stack
JosephLiyon
ย 
PDF
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
ย 
PDF
capitulando la keynote de GrafanaCON 2025 - Madrid
Imma Valls Bernaus
ย 
PDF
Automated Test Case Repair Using Language Models
Lionel Briand
ย 
PDF
Best Software Development at Best Prices
softechies7
ย 
PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
ย 
PPTX
For my supp to finally picking supp that work
necas19388
ย 
PPTX
Agentforce โ€“ TDX 2025 Hackathon Achievement
GetOnCRM Solutions
ย 
DOCX
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
ย 
PPTX
IObit Uninstaller Pro 14.3.1.8 Crack Free Download 2025
sdfger qwerty
ย 
PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
ย 
PDF
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
ย 
Wondershare Filmora Crack 14.5.18 + Key Full Download [Latest 2025]
HyperPc soft
ย 
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
ย 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
ย 
IDM Crack with Internet Download Manager 6.42 [Latest 2025]
HyperPc soft
ย 
CV-Project_2024 version 01222222222.pptx
MohammadSiddiqui70
ย 
arctitecture application system design os dsa
za241967
ย 
Code Once; Run Everywhere - A Beginnerโ€™s Journey with React Native
Hasitha Walpola
ย 
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
ย 
Introduction to web development | MERN Stack
JosephLiyon
ย 
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
ย 
capitulando la keynote de GrafanaCON 2025 - Madrid
Imma Valls Bernaus
ย 
Automated Test Case Repair Using Language Models
Lionel Briand
ย 
Best Software Development at Best Prices
softechies7
ย 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
ย 
For my supp to finally picking supp that work
necas19388
ย 
Agentforce โ€“ TDX 2025 Hackathon Achievement
GetOnCRM Solutions
ย 
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
ย 
IObit Uninstaller Pro 14.3.1.8 Crack Free Download 2025
sdfger qwerty
ย 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
ย 
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
ย 

Modern Software Management on Windows with Chocolatey and Puppet

  • 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 ๏ฌle, "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?