SlideShare a Scribd company logo
Chocolatey
The package manager for Windows
Chocolatey + DSC = Software
Automation Sweeter
Rob Reynolds
Founder
Chocolatey Software
@ferventcoder
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Rob Reynolds
• Creator and Founder of Chocolatey
• 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
• The Story of Windows
Automation
• Windows Software
Ecosystem
• Chocolatey
• Chocolatey + DSC
Let’s talk about a story…
possibly your story
The Story of Modern
Automation for Windows
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
You probably use or have
used traditional tools
Traditional Tools
• Manual Configuration
• Golden Images
• Endpoint management tools
• Not necessarily bad, just are harder to fit into
modern automation approaches
Modern Automation
• Feature-Rich
• Infrastructure as Code (IaC)
• Source Control
• Testable Infrastructure
• Reporting
• Centralized Management
PowerShell DSC
• Microsoft
• Building on PowerShell
• Desired State
• Modern Approaches
• Framework - couple it with full Configuration
Management Platforms like Puppet / Chef when
appropriate
So you modernized your
Windows automation
DevOps == Rainbows and
Unicorns
“Umm…”
Rainbows and Unicorns
“Just go with it…”
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Something was not quite right…
Configuration Management
alone is missing something
Software Management / Package
Management is necessary for
great Configuration Management
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
• Internal software
• Software installers are messy
• It’s like the Wild West
PowerShell DSC - Package Resource
• You may have used Package Resource
• Finding the PackageID (MSI Product Code GUID)
• Non-MSI?
• Upgrades?
“Fortunately there is a
better way”
What is Chocolatey?
• Software Management
• PowerShell
• Fancy zip files = “packages”
• Packages are independent software deployment
artifacts
• Takes your deployment scripts to the next level
So you knew about
Chocolatey
But does it work well in
organizational sense?
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
That’s an iceberg
Well, obviously - what does
it represent though?
Here’s a hint
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Let’s take a step back and
evaluate what’s possible
Chocolatey - Sane Software Management
• Easily manage the software lifecycle
• Native installers, zips, binaries
• PowerShell module simplifies work
• Packages are independent building
blocks
• Integrates with configuration
management
• Business friendly features
Chocolatey - The Approach
• Single, unifying interface - control
the chaos
• Decentralized - multiple places to
get packages, including internal
• PowerShell
• Flexible
• Secure
• Reliable
6+ years - proven technology
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
Integrates with Everything
• https://chocolatey.org/docs/features-infrastructure-
automation
• Puppet
• Chef (built-in), cookbook
• PowerShell DSC
• Ansible
• Saltstack
• Octopus Deploy
• Boxstarter
• SCCM
• RMM, or really anything that can run 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
Package Synchronizer (C4B) - All Packages in
Programs and Features
• 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
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
Hosting Your Own Package Server
• https://chocolatey.org/docs/how-to-host-feed
• Non-Windows Hosting
• Artifactory
• Sonatype Nexus
• NuGet Gallery proper
• ProGet / MyGet
• NuGet.Server / Chocolatey.Server
• Puppet - chocolatey/chocolatey_server module
• Visual Studio Team Services
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
• 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?
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Package Synchronizer
(C4B)
Package Synchronizer - 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 - 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
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 / Package Reducer /
Package Audit
• Runtime malware protection
• CDN Cache
• Professional Packaging Services
• Amazing expert support team - https://
chocolatey.org/support
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)
• Possible support on other
platforms
Where does DSC come in?
cChoco DSC Resource
• Manages Chocolatey
installation
• Manages Choco sources and
configuration
• Manages packages
• https://github.com/
PowerShellOrg/cChoco
• https://
www.powershellgallery.com/
packages/cChoco/2.3.0.0
cChocoInstaller
• Manages Chocolatey
installation
• Manage install location
• Can work offline,
however currently
requires specifying a
script to run locally
cChocoSource
• Manage available
package sources
• Add or remove, does not
disable
• Add credentials
• Add priorities for sources
• Will need new source
items - 0.10.4+
cChocoFeature
• Manage available
Chocolatey features
• cChoco vNext
cChocoPackageInstall
• Ensure software
package installation
• Optional params,
chocoParams, Version,
Source, and
AutoUpgrade
• Allows customizing
complete choco call
cChoco - Get Involved
• If you are looking for a place
to contribute, this is a good
place
• https://github.com/
chocolatey/cchoco
Demo
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?
Questions
+
• Rob
• @ferventcoder
• ferventcoder at
gmail
Evaluate Chocolatey for Business in your environment - special discounts available conference attendees - reach out at https://
chocolatey.org/contact for details

More Related Content

PDF
Modern Software Management on Windows with Chocolatey and Puppet
PDF
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
PDF
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
PDF
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
PDF
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
PDF
Modern Software Management on Windows with Chocolatey - Automation Management...
PDF
Modern Software Management on Windows w/Chocolatey - That Conference 2017
PDF
Modern Software Management on Windows w/Chocolatey
Modern Software Management on Windows with Chocolatey and Puppet
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
Modern Software Management on Windows with Chocolatey - Automation Management...
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey

What's hot (20)

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

Similar to Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK (20)

PDF
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PPTX
NJEdgeCon2018-Automating-Package-Management-in-Windows-with-Chocolatey
PPTX
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
PPTX
using Chocolatey for application deployments
PPTX
Package Management on Windows with Chocolatey
PDF
Chocolatey - making the process of installing software on windows easy as pie
PDF
Chocolatey and Puppet: Managing Your Windows Software Since 2011
PDF
Windows Just Got Chocolatey (Package Management) LISA15
PDF
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
PDF
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
PDF
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
PPTX
MDATP & Chocolatey - we Belgians love our Chocolate(y')s
PPTX
Mmmm, chocolatey goodness!
PPTX
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
PDF
Killing Golden Images In Your Infrastructure Setups
PDF
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
PDF
Dependencies Managers in C/C++. Using stdcpp 2014
KEY
Release management with NuGet/Chocolatey/JIRA
PDF
Package anything with fpm cookery
PDF
Approaching package manager
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
NJEdgeCon2018-Automating-Package-Management-in-Windows-with-Chocolatey
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
using Chocolatey for application deployments
Package Management on Windows with Chocolatey
Chocolatey - making the process of installing software on windows easy as pie
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Windows Just Got Chocolatey (Package Management) LISA15
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
MDATP & Chocolatey - we Belgians love our Chocolate(y')s
Mmmm, chocolatey goodness!
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
Killing Golden Images In Your Infrastructure Setups
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Dependencies Managers in C/C++. Using stdcpp 2014
Release management with NuGet/Chocolatey/JIRA
Package anything with fpm cookery
Approaching package manager
Ad

More from Rob Reynolds (6)

PDF
Puppet On Windows - Puppet Camp DC 2015
PDF
DevOps: What is This Puppet You Speak Of?
PDF
DevOps: Using Vagrant to Enhance Your Day to Day Development
PPTX
Automated Testing but like for PowerShell (April 2012)
PDF
DevOps: Getting Started with Puppet on Windows
DOC
UppercuT - Getting Started
Puppet On Windows - Puppet Camp DC 2015
DevOps: What is This Puppet You Speak Of?
DevOps: Using Vagrant to Enhance Your Day to Day Development
Automated Testing but like for PowerShell (April 2012)
DevOps: Getting Started with Puppet on Windows
UppercuT - Getting Started

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
L1 - Introduction to python Backend.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
System and Network Administration Chapter 2
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
AI in Product Development-omnex systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Design an Analysis of Algorithms I-SECS-1021-03
Which alternative to Crystal Reports is best for small or large businesses.pdf
Understanding Forklifts - TECH EHS Solution
L1 - Introduction to python Backend.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PTS Company Brochure 2025 (1).pdf.......
System and Network Administration Chapter 2
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Odoo Companies in India – Driving Business Transformation.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
CHAPTER 2 - PM Management and IT Context
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Transform Your Business with a Software ERP System
How to Choose the Right IT Partner for Your Business in Malaysia
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
AI in Product Development-omnex systems
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Design an Analysis of Algorithms I-SECS-1021-03

Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK

  • 1. Chocolatey The package manager for Windows Chocolatey + DSC = Software Automation Sweeter Rob Reynolds Founder Chocolatey Software @ferventcoder
  • 3. Rob Reynolds • Creator and Founder of Chocolatey • 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
  • 4. Agenda • The Story of Windows Automation • Windows Software Ecosystem • Chocolatey • Chocolatey + DSC
  • 5. Let’s talk about a story… possibly your story
  • 6. The Story of Modern Automation for Windows
  • 8. You probably use or have used traditional tools
  • 9. Traditional Tools • Manual Configuration • Golden Images • Endpoint management tools • Not necessarily bad, just are harder to fit into modern automation approaches
  • 10. Modern Automation • Feature-Rich • Infrastructure as Code (IaC) • Source Control • Testable Infrastructure • Reporting • Centralized Management
  • 11. PowerShell DSC • Microsoft • Building on PowerShell • Desired State • Modern Approaches • Framework - couple it with full Configuration Management Platforms like Puppet / Chef when appropriate
  • 12. So you modernized your Windows automation
  • 13. DevOps == Rainbows and Unicorns “Umm…”
  • 14. Rainbows and Unicorns “Just go with it…”
  • 18. Something was not quite right…
  • 20. Software Management / Package Management is necessary for great Configuration Management
  • 21. Software management may account for 50-90% of your automation
  • 22. Windows Software Ecosystem • Over 20 installer formats and thousands of installers in the wild • Zips and other archive formats • Internal software • Software installers are messy • It’s like the Wild West
  • 23. PowerShell DSC - Package Resource • You may have used Package Resource • Finding the PackageID (MSI Product Code GUID) • Non-MSI? • Upgrades?
  • 24. “Fortunately there is a better way”
  • 25. What is Chocolatey? • Software Management • PowerShell • Fancy zip files = “packages” • Packages are independent software deployment artifacts • Takes your deployment scripts to the next level
  • 26. So you knew about Chocolatey
  • 27. But does it work well in organizational sense?
  • 30. Well, obviously - what does it represent though?
  • 33. Let’s take a step back and evaluate what’s possible
  • 34. Chocolatey - Sane Software Management • Easily manage the software lifecycle • Native installers, zips, binaries • PowerShell module simplifies work • Packages are independent building blocks • Integrates with configuration management • Business friendly features
  • 35. Chocolatey - The Approach • Single, unifying interface - control the chaos • Decentralized - multiple places to get packages, including internal • PowerShell • Flexible • Secure • Reliable 6+ years - proven technology
  • 36. 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
  • 37. 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
  • 38. Graphical Interface - Chocolatey GUI • Configure Chocolatey • Manage software installations
  • 39. Automatic Uninstallation • Exclusive to Chocolatey - Automatically uninstall over 90% of installations without uninstall script • AutoUninstaller reduces time by not developing and managing uninstall scripts
  • 40. Integrates with Everything • https://chocolatey.org/docs/features-infrastructure- automation • Puppet • Chef (built-in), cookbook • PowerShell DSC • Ansible • Saltstack • Octopus Deploy • Boxstarter • SCCM • RMM, or really anything that can run scripts
  • 42. 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
  • 43. Package Synchronizer (C4B) - All Packages in Programs and Features • 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
  • 44. Logging - Detailed Reporting • Log file captures very detailed information - environment and state • Reduces rollback / recreation necessity
  • 45. Compliance – Audit Out of Date Software • choco outdated • Comprehensive reporting on available upgrades • See what will upgrade on next maintenance window
  • 47. 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
  • 48. Hosting Your Own Package Server • https://chocolatey.org/docs/how-to-host-feed • Non-Windows Hosting • Artifactory • Sonatype Nexus • NuGet Gallery proper • ProGet / MyGet • NuGet.Server / Chocolatey.Server • Puppet - chocolatey/chocolatey_server module • Visual Studio Team Services
  • 50. 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
  • 51. Creating Packages • https://chocolatey.org/docs/create- packages • choco new • Generates package files with most of the work done • Create your own packaging templates!
  • 52. 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 • Supports passing urls (and checksums) - downloads files first • Allows customization • Supports exe, msi, 7z, zip, msu, and msp files
  • 53. 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
  • 54. How does it work?
  • 57. Package Synchronizer - 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
  • 58. Package Synchronizer - 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
  • 59. 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
  • 60. 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 / Package Reducer / Package Audit • Runtime malware protection • CDN Cache • Professional Packaging Services • Amazing expert support team - https:// chocolatey.org/support
  • 61. 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) • Possible support on other platforms
  • 62. Where does DSC come in?
  • 63. cChoco DSC Resource • Manages Chocolatey installation • Manages Choco sources and configuration • Manages packages • https://github.com/ PowerShellOrg/cChoco • https:// www.powershellgallery.com/ packages/cChoco/2.3.0.0
  • 64. cChocoInstaller • Manages Chocolatey installation • Manage install location • Can work offline, however currently requires specifying a script to run locally
  • 65. cChocoSource • Manage available package sources • Add or remove, does not disable • Add credentials • Add priorities for sources • Will need new source items - 0.10.4+
  • 67. cChocoPackageInstall • Ensure software package installation • Optional params, chocoParams, Version, Source, and AutoUpgrade • Allows customizing complete choco call
  • 68. cChoco - Get Involved • If you are looking for a place to contribute, this is a good place • https://github.com/ chocolatey/cchoco
  • 69. Demo
  • 70. Once you go Chocolatey…
  • 71. Would you go back to other methods?
  • 76. + • Rob • @ferventcoder • ferventcoder at gmail Evaluate Chocolatey for Business in your environment - special discounts available conference attendees - reach out at https:// chocolatey.org/contact for details