SlideShare a Scribd company logo
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Chocolatey and Puppet:
Managing Your Windows Software Since 2011
Rob Reynolds
Senior Software Engineer | Puppet Labs
@ferventcoder
Agenda
• Chocolatey?
• Chocolatey Provider
• Creating Packages
• Internal Package Repository
Server
• Demo
Rob Reynolds
• Creator of Chocolatey
• Background in .NET development
(ASP.NET MVC, JavaScript, C#,
Windows services, MSMQ)
• Co-wrote and maintained infrastructure
framework known as the Chuck Norris
Framework
• Doing the hard work in Puppet on
Windows so you don’t have to
Is there anyone in the
room that doesn’t know
what Chocolatey is?
Anyone? Bueller?
Bueller?
Package Manager for Windows
• Behaves much like Yum
• Uses NuGet packaging framework +
PowerShell for automation scripts
• CLI tool - choco.exe
• GUI - ChocolateyGUI
• Allows non-centralized/private repositories
• Microsoft validated - there will be a OneGet
provider
What’s the oldest
version of Chocolatey
you’ve used/supported?
chocolatey.org (Community Repo)
• Community Feed / Community
Maintained
• Moderated as of October 2014
• A couple people have downloaded
packages (1 yr ago at 5 Million)
• Organizations should not depend on
community b/c trust and control
Chocolatey: Past
Present and Future
Thought Experiment - 2011
• Built in PowerShell. But treated as a
programming language?!
• Always felt like I was relearning PowerShell
• KISS packaging
• Building on existing ecosystem
• Focus on UX
All Good Things. All Good Things
• We determined how mocking should look and added
that to Pester (a PowerShell testing framework)
• I learned PowerShell for real this time. Maybe.
• Somewhere along the line came community
• Design? Sheer luck?
• Passable documentation?
The Rewrite - 2014
• Started March 2014, first release in 0.9.9 in
March 2015.
• C# - b/c already wrote production code
while learning language
• Why?
• Maintainability
• Speed
• Because reasons
Kickstarter - October 2014
• Started planning in June
• Introduces the ideas of
Chocolatey for Business
• Pro/Business Version to offer
additional features
• Longevity of Chocolatey itself
2015
• Started to enhance packaging
• Working on delivery of Kickstarter
• Moderation
Future
• Enhancing packaging - NVRA
• Try to maintain good balance of KISS while
introducing necessary complexity
• Package signing (PGP) / Security
Enhancements
• Chocolatey for Business / Enterprise
General Availability
Chocolatey Puppet
Provider
Puppet Provider
• puppet module install chocolatey/
chocolatey
• Approved module, supported module
coming
• Manages install of Chocolatey
• Packages
• Soon manages full configuration of
Chocolatey
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
Why Chocolatey
Provider?
Why Chocolatey Provider?
• This is the built-in provider
• Note the following:
• Name of package
• Source
• Manifest maintenance
Why Chocolatey Provider?
• Package resource default to
provider => chocolatey for
Windows.
• Platform agnostic packaging
Creating Packages
Creating Packages
• choco new -h

• Create organizational templates!

• *.nuspec

• chocolateyInstall.ps1

• Other resources like binaries / config files, etc

• Getting started / reference at http://bit.ly/choco-create
packagename.nuspec
• This is a nuget packaging
specification

• Enhanced with provides,
conflicts, replaces (although
choco doesn’t know what to do
with them yet)

• Will be enhancing further:
architecture, os versions, etc
chocolateyInstall.ps1
• Helpers / Functions

• Reduce work

• PowerShell, you can 

do anything

• Function reference 

https://bit.ly/choco-functions
Custom Package Repository
Hosting Your Own Packages
• chocolatey/chocolatey_server module
• Non-Windows Hosting
• Artifactory
• Sonatype Nexus
• NuGet Gallery proper
• ProGet / MyGet
• https://bit.ly/choco-package-server
Demo
Other Interesting Windows Talks
• You missed two
• Better Together: Managing Windows with Puppet, PowerShell, and DSC - Bruce
Payette & Ethan Brown
• Friday 11:15 AM, Oregon Ballroom 202
• Azure for the Non-Microsoft Person, Scott Hanselman
• Friday 2:30 PM, Oregon Ballroom 203
Questions?
• Join the newsletter for announcements - https://chocolatey.org/#newsletter
• ferventcoder { twitter, github, gmail}
Ad

More Related Content

What's hot (20)

Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Rob Reynolds
 
Using nu get the way you should svcc
Using nu get the way you should   svccUsing nu get the way you should   svcc
Using nu get the way you should svcc
Maarten Balliauw
 
It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
DrewAPicture
 
Lecture1
Lecture1Lecture1
Lecture1
Anton Yatsenko
 
Selenium at Mozilla: An Essential Element to our Success
Selenium at Mozilla: An Essential Element to our SuccessSelenium at Mozilla: An Essential Element to our Success
Selenium at Mozilla: An Essential Element to our Success
Stephen Donner
 
Nooku in a nutshell
Nooku in a nutshellNooku in a nutshell
Nooku in a nutshell
Tim Plummer
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
Jesse Gallagher
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
cyberzeddk
 
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemDownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
FITC
 
My Contributor Story
My Contributor StoryMy Contributor Story
My Contributor Story
Marko Heijnen
 
Tbilisi hackaton intro
Tbilisi hackaton introTbilisi hackaton intro
Tbilisi hackaton intro
Alexey Bokov
 
Android Brown Bag Lunch - DroidconNL overview
Android Brown Bag Lunch - DroidconNL overviewAndroid Brown Bag Lunch - DroidconNL overview
Android Brown Bag Lunch - DroidconNL overview
Eugen Martynov
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
Robert Deutz
 
544 Project Part 1
544 Project Part 1544 Project Part 1
544 Project Part 1
pilatpatrick123
 
Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and more
panagenda
 
Building The Open Ntf Dev Playground
Building The Open Ntf Dev PlaygroundBuilding The Open Ntf Dev Playground
Building The Open Ntf Dev Playground
Factor-y S.r.l.
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
Alexander Zayats
 
IBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 EditionIBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 Edition
panagenda
 
CuisUniversity
CuisUniversityCuisUniversity
CuisUniversity
Hernan Wilkinson
 
CuisUniversity and DenotativeObjects by Hernan Wilkinson
CuisUniversity and DenotativeObjects by Hernan WilkinsonCuisUniversity and DenotativeObjects by Hernan Wilkinson
CuisUniversity and DenotativeObjects by Hernan Wilkinson
FAST
 
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Rob Reynolds
 
Using nu get the way you should svcc
Using nu get the way you should   svccUsing nu get the way you should   svcc
Using nu get the way you should svcc
Maarten Balliauw
 
It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
DrewAPicture
 
Selenium at Mozilla: An Essential Element to our Success
Selenium at Mozilla: An Essential Element to our SuccessSelenium at Mozilla: An Essential Element to our Success
Selenium at Mozilla: An Essential Element to our Success
Stephen Donner
 
Nooku in a nutshell
Nooku in a nutshellNooku in a nutshell
Nooku in a nutshell
Tim Plummer
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
Jesse Gallagher
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
cyberzeddk
 
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemDownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
FITC
 
My Contributor Story
My Contributor StoryMy Contributor Story
My Contributor Story
Marko Heijnen
 
Tbilisi hackaton intro
Tbilisi hackaton introTbilisi hackaton intro
Tbilisi hackaton intro
Alexey Bokov
 
Android Brown Bag Lunch - DroidconNL overview
Android Brown Bag Lunch - DroidconNL overviewAndroid Brown Bag Lunch - DroidconNL overview
Android Brown Bag Lunch - DroidconNL overview
Eugen Martynov
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
Robert Deutz
 
Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and more
panagenda
 
Building The Open Ntf Dev Playground
Building The Open Ntf Dev PlaygroundBuilding The Open Ntf Dev Playground
Building The Open Ntf Dev Playground
Factor-y S.r.l.
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
Alexander Zayats
 
IBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 EditionIBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 Edition
panagenda
 
CuisUniversity and DenotativeObjects by Hernan Wilkinson
CuisUniversity and DenotativeObjects by Hernan WilkinsonCuisUniversity and DenotativeObjects by Hernan Wilkinson
CuisUniversity and DenotativeObjects by Hernan Wilkinson
FAST
 

Similar to Chocolatey and Puppet: Managing Your Windows Software Since 2011 (20)

Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Puppet
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
Puppet
 
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Rob Reynolds
 
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Rob Reynolds
 
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing WindowsChocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Rob Reynolds
 
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UKChocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Rob Reynolds
 
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetModern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and Puppet
Rob Reynolds
 
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
Puppet
 
Modern Software Management on Windows w/Chocolatey
Modern Software Management on Windows w/ChocolateyModern Software Management on Windows w/Chocolatey
Modern Software Management on Windows w/Chocolatey
Rob Reynolds
 
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
 Chocolatey - Software Automation for Windows (and sneak peak of Central Mana... Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Rob Reynolds
 
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey - That Conference 2017Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Rob Reynolds
 
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Puppet
 
Modern Software Management on Windows with Chocolatey - Automation Management...
Modern Software Management on Windows with Chocolatey - Automation Management...Modern Software Management on Windows with Chocolatey - Automation Management...
Modern Software Management on Windows with Chocolatey - Automation Management...
Rob Reynolds
 
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Puppet
 
Undine: Turnkey Drupal Development Environments
Undine: Turnkey Drupal Development EnvironmentsUndine: Turnkey Drupal Development Environments
Undine: Turnkey Drupal Development Environments
David Watson
 
Movingto moodle2 v1 1
Movingto moodle2 v1 1Movingto moodle2 v1 1
Movingto moodle2 v1 1
Jisc RSC East Midlands
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
Miguel Zuniga
 
2016 spice world_london_breakout
2016 spice world_london_breakout2016 spice world_london_breakout
2016 spice world_london_breakout
Thomas Lee
 
DevOps and its impact
DevOps and its impactDevOps and its impact
DevOps and its impact
Cisco DevNet
 
Using Features
Using FeaturesUsing Features
Using Features
Alexandru Badiu
 
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Puppet
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
Puppet
 
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Rob Reynolds
 
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
Rob Reynolds
 
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing WindowsChocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Rob Reynolds
 
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UKChocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Rob Reynolds
 
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetModern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and Puppet
Rob Reynolds
 
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
PuppetConf 2017: Modern Software Management on Windows with Chocolatey and Pu...
Puppet
 
Modern Software Management on Windows w/Chocolatey
Modern Software Management on Windows w/ChocolateyModern Software Management on Windows w/Chocolatey
Modern Software Management on Windows w/Chocolatey
Rob Reynolds
 
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
 Chocolatey - Software Automation for Windows (and sneak peak of Central Mana... Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
Rob Reynolds
 
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey - That Conference 2017Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Rob Reynolds
 
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Easily Manage Patching and Application Updates with Chocolatey + Puppet - Apr...
Puppet
 
Modern Software Management on Windows with Chocolatey - Automation Management...
Modern Software Management on Windows with Chocolatey - Automation Management...Modern Software Management on Windows with Chocolatey - Automation Management...
Modern Software Management on Windows with Chocolatey - Automation Management...
Rob Reynolds
 
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Puppet
 
Undine: Turnkey Drupal Development Environments
Undine: Turnkey Drupal Development EnvironmentsUndine: Turnkey Drupal Development Environments
Undine: Turnkey Drupal Development Environments
David Watson
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
Miguel Zuniga
 
2016 spice world_london_breakout
2016 spice world_london_breakout2016 spice world_london_breakout
2016 spice world_london_breakout
Thomas Lee
 
DevOps and its impact
DevOps and its impactDevOps and its impact
DevOps and its impact
Cisco DevNet
 
Ad

More from Rob Reynolds (6)

DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
Rob Reynolds
 
DevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day DevelopmentDevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day Development
Rob Reynolds
 
Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)
Rob Reynolds
 
DevOps: Getting Started with Puppet on Windows
DevOps: Getting Started with Puppet on WindowsDevOps: Getting Started with Puppet on Windows
DevOps: Getting Started with Puppet on Windows
Rob Reynolds
 
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Rob Reynolds
 
UppercuT - Getting Started
UppercuT - Getting StartedUppercuT - Getting Started
UppercuT - Getting Started
Rob Reynolds
 
DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
Rob Reynolds
 
DevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day DevelopmentDevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day Development
Rob Reynolds
 
Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)
Rob Reynolds
 
DevOps: Getting Started with Puppet on Windows
DevOps: Getting Started with Puppet on WindowsDevOps: Getting Started with Puppet on Windows
DevOps: Getting Started with Puppet on Windows
Rob Reynolds
 
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Puppet on Windows: Now You're Getting Chocolatey PuppetConf2013
Rob Reynolds
 
UppercuT - Getting Started
UppercuT - Getting StartedUppercuT - Getting Started
UppercuT - Getting Started
Rob Reynolds
 
Ad

Recently uploaded (20)

How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 

Chocolatey and Puppet: Managing Your Windows Software Since 2011

  • 2. Chocolatey and Puppet: Managing Your Windows Software Since 2011 Rob Reynolds Senior Software Engineer | Puppet Labs @ferventcoder
  • 3. Agenda • Chocolatey? • Chocolatey Provider • Creating Packages • Internal Package Repository Server • Demo
  • 4. Rob Reynolds • Creator of Chocolatey • Background in .NET development (ASP.NET MVC, JavaScript, C#, Windows services, MSMQ) • Co-wrote and maintained infrastructure framework known as the Chuck Norris Framework • Doing the hard work in Puppet on Windows so you don’t have to
  • 5. Is there anyone in the room that doesn’t know what Chocolatey is?
  • 7. Package Manager for Windows • Behaves much like Yum • Uses NuGet packaging framework + PowerShell for automation scripts • CLI tool - choco.exe • GUI - ChocolateyGUI • Allows non-centralized/private repositories • Microsoft validated - there will be a OneGet provider
  • 8. What’s the oldest version of Chocolatey you’ve used/supported?
  • 9. chocolatey.org (Community Repo) • Community Feed / Community Maintained • Moderated as of October 2014 • A couple people have downloaded packages (1 yr ago at 5 Million) • Organizations should not depend on community b/c trust and control
  • 11. Thought Experiment - 2011 • Built in PowerShell. But treated as a programming language?! • Always felt like I was relearning PowerShell • KISS packaging • Building on existing ecosystem • Focus on UX
  • 12. All Good Things. All Good Things • We determined how mocking should look and added that to Pester (a PowerShell testing framework) • I learned PowerShell for real this time. Maybe. • Somewhere along the line came community • Design? Sheer luck? • Passable documentation?
  • 13. The Rewrite - 2014 • Started March 2014, first release in 0.9.9 in March 2015. • C# - b/c already wrote production code while learning language • Why? • Maintainability • Speed • Because reasons
  • 14. Kickstarter - October 2014 • Started planning in June • Introduces the ideas of Chocolatey for Business • Pro/Business Version to offer additional features • Longevity of Chocolatey itself
  • 15. 2015 • Started to enhance packaging • Working on delivery of Kickstarter • Moderation
  • 16. Future • Enhancing packaging - NVRA • Try to maintain good balance of KISS while introducing necessary complexity • Package signing (PGP) / Security Enhancements • Chocolatey for Business / Enterprise General Availability
  • 18. Puppet Provider • puppet module install chocolatey/ chocolatey • Approved module, supported module coming • Manages install of Chocolatey • Packages • Soon manages full configuration of Chocolatey
  • 19. Install Chocolatey • Install and initial configuration • Point to internal resources
  • 20. Package Resource • installable, uninstallable, upgradeable, versionable, holdable, install_options, uninstall_options • Still later: virtual_packages
  • 22. Why Chocolatey Provider? • This is the built-in provider • Note the following: • Name of package • Source • Manifest maintenance
  • 23. Why Chocolatey Provider? • Package resource default to provider => chocolatey for Windows. • Platform agnostic packaging
  • 25. Creating Packages • choco new -h • Create organizational templates! • *.nuspec • chocolateyInstall.ps1 • Other resources like binaries / config files, etc • Getting started / reference at http://bit.ly/choco-create
  • 26. packagename.nuspec • This is a nuget packaging specification • Enhanced with provides, conflicts, replaces (although choco doesn’t know what to do with them yet) • Will be enhancing further: architecture, os versions, etc
  • 27. chocolateyInstall.ps1 • Helpers / Functions • Reduce work • PowerShell, you can 
 do anything • Function reference 
 https://bit.ly/choco-functions
  • 29. Hosting Your Own Packages • chocolatey/chocolatey_server module • Non-Windows Hosting • Artifactory • Sonatype Nexus • NuGet Gallery proper • ProGet / MyGet • https://bit.ly/choco-package-server
  • 30. Demo
  • 31. Other Interesting Windows Talks • You missed two • Better Together: Managing Windows with Puppet, PowerShell, and DSC - Bruce Payette & Ethan Brown • Friday 11:15 AM, Oregon Ballroom 202 • Azure for the Non-Microsoft Person, Scott Hanselman • Friday 2:30 PM, Oregon Ballroom 203
  • 32. Questions? • Join the newsletter for announcements - https://chocolatey.org/#newsletter • ferventcoder { twitter, github, gmail}