SlideShare a Scribd company logo
Chocolatey
The package manager for Windows
Modern Software Management w/
Chocolatey
Rob Reynolds
Founder
Chocolatey Software
@ferventcoder
Modern Software Management on Windows w/Chocolatey - That Conference 2017
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
• Chocolatey
• Why
• What
• Features
• Demo
• Questions
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey - That Conference 2017
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?
• You already deploy
software
• Likely already use
deployment scripts
• Delivery mechanisms
• Internal Software
Why?
Why?
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey - That Conference 2017
But Seriously, Why Chocolatey?
• Reporting
• Features
• Offline
• Secure
• Flexibility
• Beyond Programs and Features
• Beyond just running installers
• Integrates with everything
But Seriously, 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?
• Software Management
• PowerShell
• Fancy zip files = “packages”
• Packages are independent software deployment
artifacts
• Takes your deployment scripts to the next level
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 and RMM tools
• 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
Organizational / Internal
Use
Modern Software Management on Windows w/Chocolatey - That Conference 2017
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 - ChocolateyGUI
• 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
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
• 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!
Modern Software Management on Windows w/Chocolatey - That Conference 2017
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?
Modern Software Management on Windows w/Chocolatey - That Conference 2017
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) - All Packages in
Programs and Features
• Any Chocolatey package
installed will result in an
entry in Programs and
Features, even if it doesn't
have a native install
• Supporting legacy inventory
reporting systems is now a
snap
• Do not need to build MSIs /
Installers for internal use just
to support legacy reporting
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
How does it work?
Modern Software Management on Windows w/Chocolatey - That Conference 2017
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 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
Demo
This is you
Modern Software Management on Windows w/Chocolatey - That Conference 2017
This is you on Chocolatey
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Any Questions?
https://
chocolatey.org/
contact
• ferventcoder -
twitter, gmail, etc
Questions?
Modern Software Management on Windows w/Chocolatey - That Conference 2017

More Related Content

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

What's hot (20)

PDF
Modern Software Management on Windows with Chocolatey - Automation Management...
Rob Reynolds
 
PDF
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Rob Reynolds
 
PPTX
Running a Successful Open Source Project
Rob Reynolds
 
PDF
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Nicole Szigeti
 
PDF
Unleashing the Power: A Lap Around PowerShell 3.0
Sarah Dutkiewicz
 
PDF
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
Howard Greenberg
 
PDF
BrightGen Spring 16 Release Webinar
brightgenss
 
PPTX
Tools for Managing your LabVIEW Source Code
DMC, Inc.
 
ZIP
Using Features
Alexandru Badiu
 
PPTX
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
European Collaboration Summit
 
PDF
Browser tools that make web development easier
Alan Seiden
 
PPTX
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
PPTX
The WordPress University
Stephanie Leary
 
PPT
XPages -Beyond the Basics
Ulrich Krause
 
PDF
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
 
PPTX
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
Jean Vanderdonckt
 
PPTX
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
idrsolutions
 
PPTX
VI package manager
DMC, Inc.
 
PPTX
O365 Developer Bootcamp NJ 2018 - Material
Thomas Daly
 
PDF
PLAT-5 Jive, Dropbox & Other Integrations
Alfresco Software
 
Modern Software Management on Windows with Chocolatey - Automation Management...
Rob Reynolds
 
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Rob Reynolds
 
Running a Successful Open Source Project
Rob Reynolds
 
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Nicole Szigeti
 
Unleashing the Power: A Lap Around PowerShell 3.0
Sarah Dutkiewicz
 
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
Howard Greenberg
 
BrightGen Spring 16 Release Webinar
brightgenss
 
Tools for Managing your LabVIEW Source Code
DMC, Inc.
 
Using Features
Alexandru Badiu
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
European Collaboration Summit
 
Browser tools that make web development easier
Alan Seiden
 
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
The WordPress University
Stephanie Leary
 
XPages -Beyond the Basics
Ulrich Krause
 
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
Jean Vanderdonckt
 
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
idrsolutions
 
VI package manager
DMC, Inc.
 
O365 Developer Bootcamp NJ 2018 - Material
Thomas Daly
 
PLAT-5 Jive, Dropbox & Other Integrations
Alfresco Software
 
Ad

Similar to Modern Software Management on Windows w/Chocolatey - That Conference 2017 (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
NJEdgeCon2018-Automating-Package-Management-in-Windows-with-Chocolatey
Dan Franciscus
 
PPTX
using Chocolatey for application deployments
Owain Perry
 
PDF
Chocolatey - making the process of installing software on windows easy as pie
Justin James
 
PPTX
Package Management on Windows with Chocolatey
Puppet
 
PDF
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Rob Reynolds
 
PDF
Windows Just Got Chocolatey (Package Management) LISA15
Rob Reynolds
 
PDF
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Rob Reynolds
 
PDF
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Puppet
 
PDF
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Rob Reynolds
 
PPTX
MDATP & Chocolatey - we Belgians love our Chocolate(y')s
Tim Hermie ☁️
 
PPTX
Mmmm, chocolatey goodness!
Gary Park
 
PPTX
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
Puppet
 
PDF
Killing Golden Images In Your Infrastructure Setups
Chocolatey Software
 
PDF
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Rob Reynolds
 
KEY
Release management with NuGet/Chocolatey/JIRA
Yaroslav Serhieiev
 
PDF
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
PDF
Package anything with fpm cookery
Marcelo Pinheiro
 
PDF
Approaching package manager
Timur Safin
 
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
Puppet
 
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Puppet
 
NJEdgeCon2018-Automating-Package-Management-in-Windows-with-Chocolatey
Dan Franciscus
 
using Chocolatey for application deployments
Owain Perry
 
Chocolatey - making the process of installing software on windows easy as pie
Justin James
 
Package Management on Windows with Chocolatey
Puppet
 
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Rob Reynolds
 
Windows Just Got Chocolatey (Package Management) LISA15
Rob Reynolds
 
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Rob Reynolds
 
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Puppet
 
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Rob Reynolds
 
MDATP & Chocolatey - we Belgians love our Chocolate(y')s
Tim Hermie ☁️
 
Mmmm, chocolatey goodness!
Gary Park
 
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
Puppet
 
Killing Golden Images In Your Infrastructure Setups
Chocolatey Software
 
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Rob Reynolds
 
Release management with NuGet/Chocolatey/JIRA
Yaroslav Serhieiev
 
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
Package anything with fpm cookery
Marcelo Pinheiro
 
Approaching package manager
Timur Safin
 
Ad

More from Rob Reynolds (6)

PDF
Puppet On Windows - Puppet Camp DC 2015
Rob Reynolds
 
PDF
DevOps: What is This Puppet You Speak Of?
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
 
DOC
UppercuT - Getting Started
Rob Reynolds
 
Puppet On Windows - Puppet Camp DC 2015
Rob Reynolds
 
DevOps: What is This Puppet You Speak Of?
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
 
UppercuT - Getting Started
Rob Reynolds
 

Recently uploaded (20)

PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PDF
Become an Agentblazer Champion Challenge
Dele Amefo
 
PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
Become an Agentblazer Champion Challenge Kickoff
Dele Amefo
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
PDF
Build Multi-agent using Agent Development Kit
FadyIbrahim23
 
DOCX
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PPTX
TestNG for Java Testing and Automation testing
ssuser0213cb
 
PDF
Why Use Open Source Reporting Tools for Business Intelligence.pdf
Varsha Nayak
 
PDF
The Role of Automation and AI in EHS Management for Data Centers.pdf
TECH EHS Solution
 
PDF
Multi-factor Authentication (MFA) requirement for Microsoft 365 Admin Center_...
Q-Advise
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Community & News Update Q2 Meet Up 2025
VictoriaMetrics
 
PDF
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
QAware GmbH
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
Become an Agentblazer Champion Challenge
Dele Amefo
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
Become an Agentblazer Champion Challenge Kickoff
Dele Amefo
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
Build Multi-agent using Agent Development Kit
FadyIbrahim23
 
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
TestNG for Java Testing and Automation testing
ssuser0213cb
 
Why Use Open Source Reporting Tools for Business Intelligence.pdf
Varsha Nayak
 
The Role of Automation and AI in EHS Management for Data Centers.pdf
TECH EHS Solution
 
Multi-factor Authentication (MFA) requirement for Microsoft 365 Admin Center_...
Q-Advise
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Community & News Update Q2 Meet Up 2025
VictoriaMetrics
 
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
QAware GmbH
 

Modern Software Management on Windows w/Chocolatey - That Conference 2017

  • 1. Chocolatey The package manager for Windows Modern Software Management w/ Chocolatey 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 • Chocolatey • Why • What • Features • Demo • Questions
  • 8. Software management may account for 50-90% of your automation
  • 9. 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
  • 10. Why? • You already deploy software • Likely already use deployment scripts • Delivery mechanisms • Internal Software
  • 11. Why?
  • 12. Why?
  • 15. But Seriously, Why Chocolatey? • Reporting • Features • Offline • Secure • Flexibility • Beyond Programs and Features • Beyond just running installers • Integrates with everything
  • 16. But Seriously, 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
  • 18. What is Chocolatey? • Software Management • PowerShell • Fancy zip files = “packages” • Packages are independent software deployment artifacts • Takes your deployment scripts to the next level
  • 19. 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 and RMM tools • Business friendly features
  • 20. 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
  • 23. 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
  • 25. 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
  • 26. 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
  • 27. Graphical Interface - ChocolateyGUI • Configure Chocolatey • Manage software installations
  • 28. Automatic Uninstallation • Exclusive to Chocolatey - Automatically uninstall over 90% of installations without uninstall script • AutoUninstaller reduces time by not developing and managing uninstall scripts
  • 29. 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
  • 31. 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
  • 32. Logging - Detailed Reporting • Log file captures very detailed information - environment and state • Reduces rollback / recreation necessity
  • 33. Compliance – Audit Out of Date Software • choco outdated • Comprehensive reporting on available upgrades • See what will upgrade on next maintenance window
  • 35. 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
  • 37. 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
  • 38. Creating Packages • https://chocolatey.org/docs/create- packages • choco new • Generates package files with most of the work done • Create your own packaging templates!
  • 40. 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
  • 41. 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
  • 42. How does it work?
  • 44. Package Synchronizer (C4B) - stay in sync w/system
  • 45. 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
  • 46. Package Synchronizer (C4B) - All Packages in Programs and Features • Any Chocolatey package installed will result in an entry in Programs and Features, even if it doesn't have a native install • Supporting legacy inventory reporting systems is now a snap • Do not need to build MSIs / Installers for internal use just to support legacy reporting
  • 47. 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
  • 48. How does it work?
  • 50. Self-Service (C4B) - “Non- administrative desktop users can install/upgrade software!”
  • 51. Self-Service Installer / Background Mode (C4B)
  • 52. Package Reducer (Licensed) • Reduce Chocolatey space usage down automatically • Reduction on install/ upgrade • choco optimize to clean existing
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. Demo
  • 59. This is you on Chocolatey