SlideShare a Scribd company logo
Manage patching and
updates with ease
A Puppet and Chocolatey Workshop
Meet our Presenters
Matt Stone
Sr. Solutions Engineer / Windows Advocate
Puppet, Inc.
@matthewrstone | github.com/matthewrstone | @souldo (puppet slack)
2
Paul Broadwith
Sr. Technical Engineer / MVP
Chocolatey Software
@pauby | github.com/pauby | https://chocolatey.org/contact
Agenda
Today’s webinar will feature:
• Quick Intro to Puppet and Chocolatey
• Using Chocolatey for Package Management
• Using Puppet Enterprise to automate package
deployment.
• Using Puppet and Chocolatey as part of a CI/CD
pipeline for infrastructure code.
• How Chocolatey and Puppet differ from tools like
SCCM.
3
4
What is
Chocolatey?
Windows Automation: Goals and Challenges
5
Goals
● Deploy more software faster;
● Automate infrastructure using latest tools (eg. PowerShell, Puppet etc.)
● Standardize, consistent and scalable approach;
Challenges
● TIME: Deploying software manually time consuming / inefficient.
● COMPLEXITY: Traditional tools complex / ineffective in modern IT env.;
● COST: Deploying & managing software without package management;
“Chocolatey allows you to
deploy any Windows
software, anywhere, with
anything, and manage and
track that software over
time.” - Rob Reynolds, Creator of Chocolatey
6
apt | yum | pacman | brew
Chocolatey Is The Package Manager For Windows
Chocolatey’s Unique Approach
7
Chocolatey uses a universal packaging format for managing all Windows
software (i.e. native installers, zips, scripts, binaries) as first class citizens.
● Write a software deployment one time (with PowerShell);
● Deploy it anywhere you have Windows (i.e Desktop, Servers, Docker,
Azure, AWS, etc.);
● Deploy to any supported version of Windows;
● With everything (i.e. Puppet);
● Then manage & track that software over time (even without installers);
Chocolatey - Sane Software Management
8
● Packages are independent building blocks;
● Uses tools you already know (ie. PowerShell);
● Chocolatey is 9+ years old;
● Extensive community – 979M+ downloads;
● No need to reinvent the wheel - 7600+ unique Community packages;
Business Version which is more closely aligned to organizational use cases
and allows complete software management.
Easily manage the entire software lifecycle.
9
What is
Puppet?
With Puppet Enterprise, you can...
• Continuously enforce configuration and security policy.
• Run ad-hoc tasks or orchestrated workflows on a schedule or on demand.
• Analyze the impact of changes to your environment before code is merged.
• Quickly migrate PowerShell scripts into the Puppet automation framework.
• Migrate PowerShell DSC code into the Puppet automation framework.
10
With Chocolatey and Puppet, you can...
• Deliver chocolatey packages at scale.
• Include non-package dependencies, such as Windows Features, registry settings and
more.
• Write a software deployment one time (with PowerShell).
• Analyze the impact of your deployments before they go to production.
• Manage deployments to Windows Server, regardless of edition.
• Review inventory of packages installed, regardless of provider.
• Cross-platform - Manage Windows and Linux, agent or not.
11
12
What is a
Chocolatey
package?
Anatomy of a Chocolatey Package
13
Anatomy of a Chocolatey Package
14
15
Traditional
software
installation...
Installing software the traditional way.
● Let’s install paint.net
16
Installing software the traditional way.
17
Installing software the traditional way.
18
Installing software the traditional way.
19
Installing software the traditional way.
20
Installing software the traditional way.
21
There IS a better way ….
… and we need to talk about sources and organizational best practices….
22
Chocolatey
package
sources...
About Chocolatey Sources
23
“Chocolatey has had the ability to
be able to work with packages
from one or more sources since its
inception back in 2011. With that,
Chocolatey comes with a default
package repository configured -
the Chocolatey Community
Package Repository”
About Chocolatey Repositories
24
● Sonatype Nexus OSS;
● Artifactory;
● ProGet;
● Any other NuGet v2 repository;
● NFS/CIFS share can be used to lesser results;
● Chocolatey Quick Deployment Environment;
Repository Managers
Chocolatey Community Package Repository
25
● Community Maintained;
● Moderated as of October 2014;
● Everything goes through VirusTotal;
● Not recommended for organizations:
○ Not fully reliable;
○ Distribution rights;
○ Trust;
○ Bandwidth;
● Solution: Package Internalization
Chocolatey Package Internalizer
26
● 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
Exercise: Before We Start
● Disable license warning
27
choco feature disable -n=warnOnUpcomingLicenseExpiration
Exercise: Using Package Internalizer
● List sources
28
choco download firefox --internalize
Exercise: Using Internal Sources
● List sources
29
choco source list
Exercise: Using Internal Sources
● Remove the public source
30
choco source remove --name="'chocolatey'"
Exercise: Using Internal Sources
● Add the internal source
31
choco source add --name="'nexus'" ` --
source="'http://localhost:8081/repository/internalrepo/'" `
--allow-self-service
Exercise: Using Internal Sources
● List packages
32
choco source list
Exercise: Using Internal Sources
● Get Nexus Password
● In your browser open http://localhost:8081 and login with the
username admin and the password obtained above.
● When logged in, change password when prompted and choose to enable
Anonymous access.
○ This is important if the repository is used for installing packages, without
authenticating.
33
Get-Content C:my_nexus_pw.txt
Exercise: Using Internal Sources
● Get Nexus API Key
● Add the Nexus API Key to Chocolatey - this allows you to push packages
34
$apikey = Get-Content C:my_api_key.txt
choco apikey --api-key=$apikey ` --
source="'http://localhost:8081/repository/internalrepo/'
Exercise: Using Internal Sources
● Install firefox
35
choco install firefox
36
Using
Puppet Bolt
for Tasks
● Cross platform on-demand or
scheduled task execution
● Easily share scripts amongst team
members
● Integrates with Puppet Enterprise
RBAC, logging and a simple
execution interface
● Easily migrate scripts into Bolt Tasks
enabling version control and
collaboration
• Step based orchestration of commands,
scripts, tasks, plans and puppet code.
• Easily share workflows among team
members.
• Integrates with Puppet Enterprise RBAC,
logging and a simple execution interface.
• Start quickly with YAML plans or use the
puppet language for more advanced
features.
39
Exercise: Install a Package with Bolt
● Change to C:workshop
(this is case sensitive)
● Run `bolt plan run choco_workshop::install_edge`
● When completed, run `choco list --lo`
40
Exercise: Managing Sources with Puppet DSL
● Change to C:workshop
(this is case sensitive)
● Run `bolt plan run choco_workshop::sources`
● When completed, run `choco sources list`
41
42
An Easy Life
With
Self Service
Background Agent
43
● Non-admin can install only from
approved, configured sources;
● GUI or command line;
● Commands / sources validated prior
to running;
● Abuses logged for further review;
● Background mode defaults for
install / upgrade - can be configured
for other commands;
Graphical Interface and Self Service - ChocolateyGUI
44
● Big clickable buttons;
● Manage software;
● Great for desktop / non-
technical users;
● Great for Self-Service
Management (C4B)
45
Chocolatey
Sync
Package Synchronizer - Automatic Sync
46
● 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 or
software that automatically
upgrades, such as Chrome;
Exercise: Using Automatic Sync
● Run:choco install paint.net -y
Get-Cotent C:my_nexus_pw.t
47
choco list --local-only
Exercise: Using Automatic Sync
48
Exercise: Using Automatic Sync
● Open Programs and Features and manually uninstall
chocolateygui.
● Run:stall paint.net -y
Get-Cotent C:my_nexus
49
choco list --local-only
Exercise: Using Automatic Sync
50
Package Synchronizer
51
● Programs and Features is only
50-80% of installed software;
● Chocolatey brings
management for non-installer
packages;
● Supporting legacy inventory
reporting systems is now easy;
● No need to build MSI /
Installers for internal use just to
support legacy reporting
Exercise: Using Package Synchroniser
● Run:choco install paint.net -y
Get-Cotent C:my_nexus_pw.t
52
choco list --local-only --include-programs
Exercise: Using Package Synchroniser
● Run:choco install paint.net -y
Get-Cotent C:my_nexus_pw.t
53
choco sync --id="'VLC media player'" --package-id="'vlc'"
choco list --local-only --include-programs
Exercise: Using Automatic Sync
54
Exercise: Using Package Synchroniser
● Run:choco install paint.net -y
Get-Cotent C:my_nexus_pw.t
55
choco oudated
Exercise: Using Package Synchroniser
● Run:choco install paint.net -y
Get-Cotent C:my_nexus_pw.t
56
choco upgrade vlc
57
Inventory
Management
Chocolatey Central Management
58
● See reports / information
across the organization;
● Modules / plugins coming;
Puppet Enterprise Console
Package Inventory
59
Continuous Delivery for Puppet Enterprise
Events
60
Continuous Delivery for Puppet Enterprise
Impact Analysis
61
62
See it in action:
Continuous
Enforcement
See it in action:
Tasks and Plans in
Console
64
Questions?

More Related Content

PPTX
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
PPTX
Virtual Bolt Workshop - March 16, 2020
PPTX
Virtual Bolt Workshop - 6 May
PDF
Virtual CD4PE Workshop
PDF
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
PDF
Getting Started with EasyBuild - Tutorial Part 2
PPTX
Virtual Bolt Workshop - April 1, 2020
PPTX
Let me introduce you: DOTS
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Virtual Bolt Workshop - March 16, 2020
Virtual Bolt Workshop - 6 May
Virtual CD4PE Workshop
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Getting Started with EasyBuild - Tutorial Part 2
Virtual Bolt Workshop - April 1, 2020
Let me introduce you: DOTS

What's hot (20)

PDF
PuppetCamp SEA 1 - The State of Puppet
PPTX
Symfony Under Control by Maxim Romanovsky
PDF
CMake: Improving Software Quality and Process
PDF
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
PDF
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
PDF
openQA hands on with openSUSE Leap 42.1 - openSUSE.Asia Summit ID 2016
KEY
Continuous Integration & Drupal
PDF
Continuous Integration and DevOps with Open Build Service(OBS)
PDF
DNUG Webcast: IBM Notes V10 Performance Boost
PPTX
Package Management on Windows with Chocolatey
PPTX
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
PDF
Jenkins Pipelines
PDF
Introduction to yocto
PDF
Essential applications management with Tiny Puppet
PDF
Drupal Continuous Integration (European Drupal Days 2015)
PPT
Getting Started With Jenkins And Drupal
PPTX
Pipeline as code - new feature in Jenkins 2
PPTX
Virtual Puppet Ecosystem Workshop - March 18,2020
PPTX
Tribal Nova Docker feedback
PuppetCamp SEA 1 - The State of Puppet
Symfony Under Control by Maxim Romanovsky
CMake: Improving Software Quality and Process
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
openQA hands on with openSUSE Leap 42.1 - openSUSE.Asia Summit ID 2016
Continuous Integration & Drupal
Continuous Integration and DevOps with Open Build Service(OBS)
DNUG Webcast: IBM Notes V10 Performance Boost
Package Management on Windows with Chocolatey
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Jenkins Pipelines
Introduction to yocto
Essential applications management with Tiny Puppet
Drupal Continuous Integration (European Drupal Days 2015)
Getting Started With Jenkins And Drupal
Pipeline as code - new feature in Jenkins 2
Virtual Puppet Ecosystem Workshop - March 18,2020
Tribal Nova Docker feedback
Ad

Similar to Easily Manage Patching and Application Updates with Chocolatey + Puppet - April 29, 2020 (20)

PDF
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PDF
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
PDF
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
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 and Puppet
PDF
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
PDF
Modern Software Management on Windows w/Chocolatey - That Conference 2017
PDF
Modern Software Management on Windows w/Chocolatey
PDF
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
PPTX
NJEdgeCon2018-Automating-Package-Management-in-Windows-with-Chocolatey
PDF
Modern Software Management on Windows with Chocolatey - Automation Management...
PDF
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
PPTX
using Chocolatey for application deployments
PDF
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
PDF
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
PDF
Chocolatey and Puppet: Managing Your Windows Software Since 2011
PDF
Chocolatey - making the process of installing software on windows easy as pie
PDF
Windows Just Got Chocolatey (Package Management) LISA15
PPTX
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Chocolatey - Software Automation for Windows (and sneak peak of Central Mana...
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 and Puppet
Chocolatey + DSC = Software Automation Sweeter - PowerShell Day UK
Modern Software Management on Windows w/Chocolatey - That Conference 2017
Modern Software Management on Windows w/Chocolatey
Chocolatey for Organizations: Easily Manage Software - PowerShell Summit 2019
NJEdgeCon2018-Automating-Package-Management-in-Windows-with-Chocolatey
Modern Software Management on Windows with Chocolatey - Automation Management...
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
using Chocolatey for application deployments
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014
Chocolatey and Puppet: Managing Your Windows Software Since 2011
Chocolatey - making the process of installing software on windows easy as pie
Windows Just Got Chocolatey (Package Management) LISA15
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
Ad

More from Puppet (20)

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

Recently uploaded (20)

PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
history of c programming in notes for students .pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Introduction to Artificial Intelligence
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
top salesforce developer skills in 2025.pdf
PDF
AI in Product Development-omnex systems
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Essential Infomation Tech presentation.pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
history of c programming in notes for students .pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Operating system designcfffgfgggggggvggggggggg
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Introduction to Artificial Intelligence
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
top salesforce developer skills in 2025.pdf
AI in Product Development-omnex systems
Upgrade and Innovation Strategies for SAP ERP Customers
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Essential Infomation Tech presentation.pptx
wealthsignaloriginal-com-DS-text-... (1).pdf

Easily Manage Patching and Application Updates with Chocolatey + Puppet - April 29, 2020

  • 1. Manage patching and updates with ease A Puppet and Chocolatey Workshop
  • 2. Meet our Presenters Matt Stone Sr. Solutions Engineer / Windows Advocate Puppet, Inc. @matthewrstone | github.com/matthewrstone | @souldo (puppet slack) 2 Paul Broadwith Sr. Technical Engineer / MVP Chocolatey Software @pauby | github.com/pauby | https://chocolatey.org/contact
  • 3. Agenda Today’s webinar will feature: • Quick Intro to Puppet and Chocolatey • Using Chocolatey for Package Management • Using Puppet Enterprise to automate package deployment. • Using Puppet and Chocolatey as part of a CI/CD pipeline for infrastructure code. • How Chocolatey and Puppet differ from tools like SCCM. 3
  • 5. Windows Automation: Goals and Challenges 5 Goals ● Deploy more software faster; ● Automate infrastructure using latest tools (eg. PowerShell, Puppet etc.) ● Standardize, consistent and scalable approach; Challenges ● TIME: Deploying software manually time consuming / inefficient. ● COMPLEXITY: Traditional tools complex / ineffective in modern IT env.; ● COST: Deploying & managing software without package management;
  • 6. “Chocolatey allows you to deploy any Windows software, anywhere, with anything, and manage and track that software over time.” - Rob Reynolds, Creator of Chocolatey 6 apt | yum | pacman | brew Chocolatey Is The Package Manager For Windows
  • 7. Chocolatey’s Unique Approach 7 Chocolatey uses a universal packaging format for managing all Windows software (i.e. native installers, zips, scripts, binaries) as first class citizens. ● Write a software deployment one time (with PowerShell); ● Deploy it anywhere you have Windows (i.e Desktop, Servers, Docker, Azure, AWS, etc.); ● Deploy to any supported version of Windows; ● With everything (i.e. Puppet); ● Then manage & track that software over time (even without installers);
  • 8. Chocolatey - Sane Software Management 8 ● Packages are independent building blocks; ● Uses tools you already know (ie. PowerShell); ● Chocolatey is 9+ years old; ● Extensive community – 979M+ downloads; ● No need to reinvent the wheel - 7600+ unique Community packages; Business Version which is more closely aligned to organizational use cases and allows complete software management. Easily manage the entire software lifecycle.
  • 10. With Puppet Enterprise, you can... • Continuously enforce configuration and security policy. • Run ad-hoc tasks or orchestrated workflows on a schedule or on demand. • Analyze the impact of changes to your environment before code is merged. • Quickly migrate PowerShell scripts into the Puppet automation framework. • Migrate PowerShell DSC code into the Puppet automation framework. 10
  • 11. With Chocolatey and Puppet, you can... • Deliver chocolatey packages at scale. • Include non-package dependencies, such as Windows Features, registry settings and more. • Write a software deployment one time (with PowerShell). • Analyze the impact of your deployments before they go to production. • Manage deployments to Windows Server, regardless of edition. • Review inventory of packages installed, regardless of provider. • Cross-platform - Manage Windows and Linux, agent or not. 11
  • 13. Anatomy of a Chocolatey Package 13
  • 14. Anatomy of a Chocolatey Package 14
  • 16. Installing software the traditional way. ● Let’s install paint.net 16
  • 17. Installing software the traditional way. 17
  • 18. Installing software the traditional way. 18
  • 19. Installing software the traditional way. 19
  • 20. Installing software the traditional way. 20
  • 21. Installing software the traditional way. 21 There IS a better way …. … and we need to talk about sources and organizational best practices….
  • 23. About Chocolatey Sources 23 “Chocolatey has had the ability to be able to work with packages from one or more sources since its inception back in 2011. With that, Chocolatey comes with a default package repository configured - the Chocolatey Community Package Repository”
  • 24. About Chocolatey Repositories 24 ● Sonatype Nexus OSS; ● Artifactory; ● ProGet; ● Any other NuGet v2 repository; ● NFS/CIFS share can be used to lesser results; ● Chocolatey Quick Deployment Environment; Repository Managers
  • 25. Chocolatey Community Package Repository 25 ● Community Maintained; ● Moderated as of October 2014; ● Everything goes through VirusTotal; ● Not recommended for organizations: ○ Not fully reliable; ○ Distribution rights; ○ Trust; ○ Bandwidth; ● Solution: Package Internalization
  • 26. Chocolatey Package Internalizer 26 ● 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
  • 27. Exercise: Before We Start ● Disable license warning 27 choco feature disable -n=warnOnUpcomingLicenseExpiration
  • 28. Exercise: Using Package Internalizer ● List sources 28 choco download firefox --internalize
  • 29. Exercise: Using Internal Sources ● List sources 29 choco source list
  • 30. Exercise: Using Internal Sources ● Remove the public source 30 choco source remove --name="'chocolatey'"
  • 31. Exercise: Using Internal Sources ● Add the internal source 31 choco source add --name="'nexus'" ` -- source="'http://localhost:8081/repository/internalrepo/'" ` --allow-self-service
  • 32. Exercise: Using Internal Sources ● List packages 32 choco source list
  • 33. Exercise: Using Internal Sources ● Get Nexus Password ● In your browser open http://localhost:8081 and login with the username admin and the password obtained above. ● When logged in, change password when prompted and choose to enable Anonymous access. ○ This is important if the repository is used for installing packages, without authenticating. 33 Get-Content C:my_nexus_pw.txt
  • 34. Exercise: Using Internal Sources ● Get Nexus API Key ● Add the Nexus API Key to Chocolatey - this allows you to push packages 34 $apikey = Get-Content C:my_api_key.txt choco apikey --api-key=$apikey ` -- source="'http://localhost:8081/repository/internalrepo/'
  • 35. Exercise: Using Internal Sources ● Install firefox 35 choco install firefox
  • 37. ● Cross platform on-demand or scheduled task execution ● Easily share scripts amongst team members ● Integrates with Puppet Enterprise RBAC, logging and a simple execution interface ● Easily migrate scripts into Bolt Tasks enabling version control and collaboration
  • 38. • Step based orchestration of commands, scripts, tasks, plans and puppet code. • Easily share workflows among team members. • Integrates with Puppet Enterprise RBAC, logging and a simple execution interface. • Start quickly with YAML plans or use the puppet language for more advanced features.
  • 39. 39
  • 40. Exercise: Install a Package with Bolt ● Change to C:workshop (this is case sensitive) ● Run `bolt plan run choco_workshop::install_edge` ● When completed, run `choco list --lo` 40
  • 41. Exercise: Managing Sources with Puppet DSL ● Change to C:workshop (this is case sensitive) ● Run `bolt plan run choco_workshop::sources` ● When completed, run `choco sources list` 41
  • 43. Background Agent 43 ● Non-admin can install only from approved, configured sources; ● GUI or command line; ● Commands / sources validated prior to running; ● Abuses logged for further review; ● Background mode defaults for install / upgrade - can be configured for other commands;
  • 44. Graphical Interface and Self Service - ChocolateyGUI 44 ● Big clickable buttons; ● Manage software; ● Great for desktop / non- technical users; ● Great for Self-Service Management (C4B)
  • 46. Package Synchronizer - Automatic Sync 46 ● 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 or software that automatically upgrades, such as Chrome;
  • 47. Exercise: Using Automatic Sync ● Run:choco install paint.net -y Get-Cotent C:my_nexus_pw.t 47 choco list --local-only
  • 49. Exercise: Using Automatic Sync ● Open Programs and Features and manually uninstall chocolateygui. ● Run:stall paint.net -y Get-Cotent C:my_nexus 49 choco list --local-only
  • 51. Package Synchronizer 51 ● Programs and Features is only 50-80% of installed software; ● Chocolatey brings management for non-installer packages; ● Supporting legacy inventory reporting systems is now easy; ● No need to build MSI / Installers for internal use just to support legacy reporting
  • 52. Exercise: Using Package Synchroniser ● Run:choco install paint.net -y Get-Cotent C:my_nexus_pw.t 52 choco list --local-only --include-programs
  • 53. Exercise: Using Package Synchroniser ● Run:choco install paint.net -y Get-Cotent C:my_nexus_pw.t 53 choco sync --id="'VLC media player'" --package-id="'vlc'" choco list --local-only --include-programs
  • 55. Exercise: Using Package Synchroniser ● Run:choco install paint.net -y Get-Cotent C:my_nexus_pw.t 55 choco oudated
  • 56. Exercise: Using Package Synchroniser ● Run:choco install paint.net -y Get-Cotent C:my_nexus_pw.t 56 choco upgrade vlc
  • 58. Chocolatey Central Management 58 ● See reports / information across the organization; ● Modules / plugins coming;
  • 60. Continuous Delivery for Puppet Enterprise Events 60
  • 61. Continuous Delivery for Puppet Enterprise Impact Analysis 61
  • 62. 62 See it in action: Continuous Enforcement
  • 63. See it in action: Tasks and Plans in Console