AWS Community Day CPH - Three problems of Terraform
Package Management on Windows with Chocolatey
1. Package Management on Windows
With Chocolatey
Kenaz Kwa
Sr. Product Manager
Rob Reynolds
Sr. Software Engineer, creator of Chocolatey
2. Agenda
• How Puppet Enterprise works
• Why Chocolatey
• Chocolatey Puppet Provider
• Creating Packages
• Hosting Your Own Server
• Demo
• Puppet Labs Windows support
• Resources
• Q&A
3. Our software
automates the provisioning,
configuration &
ongoing management
of your machines & the applications,
services & software running on them.
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
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
17. 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
18. 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
19. chocolateyInstall.ps1
• Helpers / Functions
• Reduce work
• PowerShell, you can
do anything
• Function reference
https://bit.ly/choco-functions
23. Puppet Labs Windows Support
• 32- & 64-bit Support – Native MSI packages for x64 as of Puppet
Enterprise 3.7
• Broad Platform Support - Windows 2008, 2012, 7, 8
• Windows Provisioning - Provision Windows OSes with Razor
• Puppet Supported & Approved Modules for Windows – Including
Windows Module Pack, Supported SQL Sever & DSC modules
• Azure Integration – Microsoft Azure extension handler for
bootstrapping Puppet installs. Supported Azure module.
24. Puppet Supported Modules
• SQL Server – Installs & manages MS SQL Server 2012 & 2014 on
Windows systems
• WSUS Client – Configure clients to point to update servers; schedule
updates
• DSC – Manages PowerShell DSC resources
• Azure – Provision and manage Azure VMs
• ACL – manage permissions with Windows ACLs
• Registry – manage Registry keys and values
• PowerShell – execute PowerShell commands with Puppet
• Reboot – Automatically reboot after install
25. Puppet Approved Modules
• IIS – install and manage IIS
• Chocolatey – package manager
• windows_env – manage Windows environment variables
• Windows Java – Install and manage Oracle Java on Windows
• pget – PowerShell alternative to wget or curl
26. Windows Webinar Series
Register for upcoming webinars at: http://info.puppetlabs.com/1885-
Windows-Series-Main_LP-Registration.html
• Managing PowerShell DSC with Puppet
• Patch Management on Windows with Puppet
• Setting up Windows for System and Application Monitoring
• Getting Up and Running with the Windows Module Pack
• Get Started on Azure with Puppet
28. Resources
PuppetConf 2015 Windows Track
• Chocolatey and Puppet - Rob Reynolds
• Azure for the Non-Microsoft Person - Rob Reynolds & Scott Hanselman, MSFT
• Better Together: Managing Windows with Puppet and DSC - Ethan Brown & Bruce Payette,
MSFT
• Beyond the Registry - Matthew Stone, T-Mobile
• The Wild World of Windows: Developing for Puppet on Windows - Travis Fields, Nike
Blog
• Chocolatey blog series
• PowerShell DSC blog series
Docs
• Managing Windows Configurations
Education
• Learning VM
• Puppet Essentials for Windows – Instructor-led
• Puppet Essentials for Windows - Virtual
Notes de l'éditeur
Sales Presentation Deck – 4Q FY2016 –v7
Installing packages
Choco / Choco module; or use Puppet base resource types
Managing Services
Windows time, creating registry keys
Disable services with PE and create scheduled tasks
PowerShell
- How to use with Puppet; use puppet with PowerShell
Our software helps you automate the configuration and ongoing management of your machines and the software running on them, so you spend less time fighting fires and more time deploying great software.
We help you make rapid, repeatable changes and automatically enforce the consistency of systems and devices–across physical and virtual machines, on prem or in the cloud.
First, we think it’s critical to adopt automation technology that helps you model and enforce the desired state of the services you deliver.
Second, we think that you should automate those processes (among others) from your core infrastructure up through your applications, all in one place for full enforcement, traceability and auditability.
Third, we think you should automate across the entire lifecycle, from initial provisioning of infrastructure through decommissioning.
Finally, you should do this across everything. If it has an IP address, you should automate the management of it.
Let’s dig into each of these.
First, we think it’s critical to adopt automation technology that helps you model and enforce the desired state of the services you deliver.
Second, we think that you should automate those processes (among others) from your core infrastructure up through your applications, all in one place for full enforcement, traceability and auditability.
Third, we think you should automate across the entire lifecycle, from initial provisioning of infrastructure through decommissioning.
Finally, you should do this across everything. If it has an IP address, you should automate the management of it.
Let’s dig into each of these.
First, we think it’s critical to adopt automation technology that helps you model and enforce the desired state of the services you deliver.
Second, we think that you should automate those processes (among others) from your core infrastructure up through your applications, all in one place for full enforcement, traceability and auditability.
Third, we think you should automate across the entire lifecycle, from initial provisioning of infrastructure through decommissioning.
Finally, you should do this across everything. If it has an IP address, you should automate the management of it.
Let’s dig into each of these.
First, we think it’s critical to adopt automation technology that helps you model and enforce the desired state of the services you deliver.
Second, we think that you should automate those processes (among others) from your core infrastructure up through your applications, all in one place for full enforcement, traceability and auditability.
Third, we think you should automate across the entire lifecycle, from initial provisioning of infrastructure through decommissioning.
Finally, you should do this across everything. If it has an IP address, you should automate the management of it.
Let’s dig into each of these.
First, we think it’s critical to adopt automation technology that helps you model and enforce the desired state of the services you deliver.
Second, we think that you should automate those processes (among others) from your core infrastructure up through your applications, all in one place for full enforcement, traceability and auditability.
Third, we think you should automate across the entire lifecycle, from initial provisioning of infrastructure through decommissioning.
Finally, you should do this across everything. If it has an IP address, you should automate the management of it.
Let’s dig into each of these.