Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Chocolatey
The package manager for Windows
Easily Manage Software on
Windows with Chocolatey
Rob Reynolds
@ferventcoder
Rob Reynolds
• Senior Software Engineer at Puppet
• Creator and Founder of Chocolatey
• Enjoys long walks on the beach and...
Agenda
• The Story of Windows
Automation
• Windows Software
Ecosystem
• Chocolatey
• Announcements
Questions at the End
• Lots to cover
• Write your question(s) down
Everybody Stand Up
• Sit down if
• You’ve never used Chocolatey
• You started in Chocolatey with 0.9.9.x
• 0.9.8.3x
• 0.9....
Let’s talk about a story…
possibly your story
The Story of Modern
Automation for Windows
You probably use or have
used traditional tools
Traditional Tools
• Manual Configuration
• Golden Images
• Endpoint management tools
• SCCM / GPO
• Not necessarily bad, j...
Modern Automation
• Feature-Rich
• Infrastructure as Code
• Source Control
• Testable Infrastructure
• Reporting
• Central...
More Modern Automation Tools
• Puppet (Config Management)
• PowerShell DSC
• PowerShell
Power scale
So you settled on Puppet
Puppet + Other Tools
• Puppet - Harness PowerShell
• Puppet - Harness PowerShell DSC
• Puppet and SCCM (GPOs, WSUS server)...
So you modernized your
Windows automation
And it was great. Rainbows
and Unicorns
Something wasn’t quite right…
Automating Windows
software installation was
still hard…
Software management may
account for 50-90% of your
automation
Traditionally Windows was
designed with Visual
Interfaces (GUIs) in mind.
There is no place more evident of
that still than with the Windows
Software Installer ecosystem
Windows Software Ecosystem
• Over 20 installer formats and
thousands of installers in the
wild
• Zips and other archive
fo...
“There has to be a better
way”
So you went looking for a
solution
And you heard of this sweet
tool that manages software.
Chocolatey - Sane Software Management
• Easily manage the software lifecycle
• Native installers, zips, binaries
• PowerSh...
Chocolatey - The Approach
• Single, unifying interface - control
the chaos
• Decentralized - multiple places to
get packag...
Community Package Repository
• https://chocolatey.org/
packages
• Community Feed / Community
Maintained
• Moderated as of ...
Hosting Your Own Package Server
• https://chocolatey.org/docs/how-to-host-feed
• Non-Windows Hosting
• Artifactory
• Sonat...
Chocolatey Packages
• Zip files + Versioning, Dependencies & PowerShell
• Metadata - Software Information / Package Inform...
Creating Packages
• https://chocolatey.org/docs/create-
packages
• choco new
• Generates package files with most of
the wo...
But wait, you have
Chocolatey for Business
Package Builder
Package Builder
• Package Builder automatically creates high quality packaging
from an installer/zip in 5-10 seconds
• Det...
How does it work?
Package Internalizer
Package Internalizer
• Take advantage of existing packages without dependency on
the internet
• Downloads existing package...
Package Synchronizer
You detect a theme for
feature names
Package Synchronizer
• Chocolatey maintains state based on packages. System state
can be manipulated outside of Chocolatey...
How does it work?
Other Enhancements
Other Enhancements
• https://chocolatey.org/docs/release-notes-licensed
• Auto-uninstaller more effective thanks to more
c...
+
puppetlabs/chocolatey
• https://puppet.com/blog/puppet-supported-module-chocolatey
• Everything from chocolatey/chocolatey...
Chocolatey Provider is Supported!
Install Chocolatey
• Install and initial configuration
• Point to internal resources
Package Resource
• installable, uninstallable, upgradeable, versionable, holdable, install_options,
uninstall_options
• St...
Chocolatey Package Resource
• Built in provider requires
manifest maintenance
• Package resource default to
provider => ch...
chocolateysource
• Disable/remove default community repository
• Add your own sources
• user/password 

protected as well
...
chocolateyconfig
• Set config settings
• Full list available by

choco config list or

puppet resource chocolateyconfig
chocolateyfeature
• Enable/disable features
• Full list available by

choco feature list or

puppet resource chocolateyfea...
Demo
Announcements
Roadmap
• WSA support / Windows Nano Support
• More Security / More UX
• Package enhancements
• Package signing / security...
Package Builder
<intentionally left blank>
b/c Demo
Package Builder vNext
• choco new —from-programs-and-features
• Currently supports MSI
• Support for other types 

will co...
Package Internalizer
Package Internalizer
• Also a visual interface
• Provides a better transition towards command line
interfaces
Package Synchronizer
Package Synchronizer v2
• Bring software not managed with Chocolatey into managed
packages
• choco sync
• Find existing pa...
Package Modernizer
Package Modernizer
• You have existing packages
• Bring them up to best practices
• Modernizer will upgrade packaging file...
Self-Service Install (Non-
Administrators)
Self-Service Installer
• 1st feature not named Package *
• Non-admins can choose what to install
• Runs as an administrati...
Questions
+
• Rob
• @ferventcoder
• ferventcoder at
gmail
Evaluate Chocolatey for Business in your environment - special discount un...
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet
Nächste SlideShare
Wird geladen in …5
×

PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet

194 Aufrufe

Veröffentlicht am

Here are the slides from Rob Reynold's PuppetConf 2016 presentation called Easily Manage Software on Windows with Chocolatey. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reynolds, Puppet

  1. 1. Chocolatey The package manager for Windows Easily Manage Software on Windows with Chocolatey Rob Reynolds @ferventcoder
  2. 2. Rob Reynolds • Senior Software Engineer at Puppet • 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
  3. 3. Agenda • The Story of Windows Automation • Windows Software Ecosystem • Chocolatey • Announcements
  4. 4. Questions at the End • Lots to cover • Write your question(s) down
  5. 5. Everybody Stand Up • Sit down if • You’ve never used Chocolatey • You started in Chocolatey with 0.9.9.x • 0.9.8.3x • 0.9.8.24 • 0.9.8.x • Who is left?
  6. 6. Let’s talk about a story… possibly your story
  7. 7. The Story of Modern Automation for Windows
  8. 8. You probably use or have used traditional tools
  9. 9. Traditional Tools • Manual Configuration • Golden Images • Endpoint management tools • SCCM / GPO • Not necessarily bad, just are harder to fit into modern automation
  10. 10. Modern Automation • Feature-Rich • Infrastructure as Code • Source Control • Testable Infrastructure • Reporting • Centralized Management
  11. 11. More Modern Automation Tools • Puppet (Config Management) • PowerShell DSC • PowerShell Power scale
  12. 12. So you settled on Puppet
  13. 13. Puppet + Other Tools • Puppet - Harness PowerShell • Puppet - Harness PowerShell DSC • Puppet and SCCM (GPOs, WSUS server) • Use the complements where they are strong
  14. 14. So you modernized your Windows automation
  15. 15. And it was great. Rainbows and Unicorns
  16. 16. Something wasn’t quite right…
  17. 17. Automating Windows software installation was still hard…
  18. 18. Software management may account for 50-90% of your automation
  19. 19. Traditionally Windows was designed with Visual Interfaces (GUIs) in mind.
  20. 20. There is no place more evident of that still than with the Windows Software Installer ecosystem
  21. 21. Windows Software Ecosystem • Over 20 installer formats and thousands of installers in the wild • Zips and other archive formats • Software installers are messy • It’s like the Wild West
  22. 22. “There has to be a better way”
  23. 23. So you went looking for a solution
  24. 24. And you heard of this sweet tool that manages software.
  25. 25. Chocolatey - Sane Software Management • Easily manage the software lifecycle • Native installers, zips, binaries • PowerShell module simplifies work • Packages are independent building blocks • Integrates with configuration management • Business friendly features
  26. 26. Chocolatey - The Approach • Single, unifying interface - control the chaos • Decentralized - multiple places to get packages, including internal • PowerShell • Flexible • Secure • Reliable 5+ years - proven technology
  27. 27. Community Package Repository • https://chocolatey.org/ packages • Community Feed / Community Maintained • Moderated as of October 2014 • Everything goes through VirusTotal • Organizations Should Not Depend b/c Trust and Control
  28. 28. 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
  29. 29. Chocolatey Packages • Zip files + Versioning, Dependencies & PowerShell • Metadata - Software Information / Package Information • PowerShell - https://chocolatey.org/docs/helpers-reference • 30+ Built-in functions - turn hard tasks into 1 liners • Handle additional missing installer logic (like add to PATH) • Add options missing from installer arguments • Files - drop in binaries, native installers
  30. 30. Creating Packages • https://chocolatey.org/docs/create- packages • choco new • Generates package files with most of the work done • Create your own packaging templates!
  31. 31. But wait, you have Chocolatey for Business
  32. 32. Package Builder
  33. 33. Package Builder • 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
  34. 34. How does it work?
  35. 35. Package Internalizer
  36. 36. Package Internalizer • 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
  37. 37. Package Synchronizer
  38. 38. You detect a theme for feature names
  39. 39. Package Synchronizer • Chocolatey maintains state based on packages. System state can be manipulated outside of Chocolatey • Any Chocolatey command will trigger synchronization in Chocolatey for Business • Package Synchronizer syncs with manual software removal • Syncs w/software that automatically upgrades, such as Chrome
  40. 40. How does it work?
  41. 41. Other Enhancements
  42. 42. Other Enhancements • https://chocolatey.org/docs/release-notes-licensed • Auto-uninstaller more effective thanks to more checks and Package Synchronizer • Install/upgrade passing secrets • Uninstall non-Chocolatey managed software • Similar to built-in provider but ‘Git *’
  43. 43. +
  44. 44. puppetlabs/chocolatey • https://puppet.com/blog/puppet-supported-module-chocolatey • Everything from chocolatey/chocolatey - drop in replacement • package resource • ensure Chocolatey install • Full configuration for Chocolatey • chocolateysource • chocolateyconfig • chocolateyfeature
  45. 45. Chocolatey Provider is Supported!
  46. 46. Install Chocolatey • Install and initial configuration • Point to internal resources
  47. 47. Package Resource • installable, uninstallable, upgradeable, versionable, holdable, install_options, uninstall_options • Still later: virtual_packages
  48. 48. Chocolatey Package Resource • Built in provider requires manifest maintenance • Package resource default to provider => chocolatey for Windows. • Platform agnostic packaging
  49. 49. chocolateysource • Disable/remove default community repository • Add your own sources • user/password 
 protected as well • puppet resource
 chocolateysource
  50. 50. chocolateyconfig • Set config settings • Full list available by
 choco config list or
 puppet resource chocolateyconfig
  51. 51. chocolateyfeature • Enable/disable features • Full list available by
 choco feature list or
 puppet resource chocolateyfeature
  52. 52. Demo
  53. 53. Announcements
  54. 54. Roadmap • WSA support / Windows Nano Support • More Security / More UX • Package enhancements • Package signing / security enhancements • Extend Nuspec further - name, version, release, architecture
  55. 55. Package Builder
  56. 56. <intentionally left blank> b/c Demo
  57. 57. Package Builder vNext • choco new —from-programs-and-features • Currently supports MSI • Support for other types 
 will come later • Package Builder visual 
 interface • Transition from existing 
 tools/processes
  58. 58. Package Internalizer
  59. 59. Package Internalizer • Also a visual interface • Provides a better transition towards command line interfaces
  60. 60. Package Synchronizer
  61. 61. Package Synchronizer v2 • Bring software not managed with Chocolatey into managed packages • choco sync • Find existing packages • Optionally generate packages for sync
  62. 62. Package Modernizer
  63. 63. Package Modernizer • You have existing packages • Bring them up to best practices • Modernizer will upgrade packaging files in place • choco modernize
  64. 64. Self-Service Install (Non- Administrators)
  65. 65. Self-Service Installer • 1st feature not named Package * • Non-admins can choose what to install • Runs as an administrative background service • Also choco upgrade all on your schedule
  66. 66. Questions
  67. 67. + • Rob • @ferventcoder • ferventcoder at gmail Evaluate Chocolatey for Business in your environment - special discount until December 31, 2016 for Puppet Enterprise customers (mention PuppetConf2016) - https://chocolatey.org/compare

×