package management on windows with chocolatey

28
Package Management on Windows With Chocolatey Kenaz Kwa Sr. Product Manager Rob Reynolds Sr. Software Engineer, creator of Chocolatey

Upload: puppet

Post on 16-Jan-2017

959 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Package Management on Windows with Chocolatey

Package Management on WindowsWith Chocolatey

Kenaz KwaSr. Product Manager

Rob ReynoldsSr. Software Engineer, creator of Chocolatey

Page 2: Package Management on Windows with Chocolatey

Agenda• How Puppet Enterprise works• Why Chocolatey• Chocolatey Puppet Provider• Creating Packages• Hosting Your Own Server• Demo• Puppet Labs Windows support• Resources• Q&A

Page 3: Package Management on Windows with Chocolatey

Our software automates the provisioning,

configuration & ongoing management

of your machines & the applications, services & software running on them.

Page 4: Package Management on Windows with Chocolatey

Puppet Deployment

Ubuntu Server

PUPPET MASTER

Windows Server Cisco Switch

Page 5: Package Management on Windows with Chocolatey

How Puppet Enterprise Works

Page 6: Package Management on Windows with Chocolatey

Why Chocolatey

Page 7: Package Management on Windows with Chocolatey

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

Page 8: Package Management on Windows with Chocolatey

Chocolatey == Universal Software Packaging

Page 9: Package Management on Windows with Chocolatey

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

Page 10: Package Management on Windows with Chocolatey

Chocolatey Puppet Provider

Page 11: Package Management on Windows with Chocolatey

Puppet Provider• puppet module install

chocolatey/chocolatey• Approved module, supported

module coming• Manages install of Chocolatey• Packages• Soon manages full

configuration of Chocolatey

Page 12: Package Management on Windows with Chocolatey

Install Chocolatey

• Install and initial configuration• Point to internal resources

Page 13: Package Management on Windows with Chocolatey

Package Resource

• installable, uninstallable, upgradeable, versionable, holdable, install_options, uninstall_options

• Still later: virtual_packages

Page 14: Package Management on Windows with Chocolatey

Why Chocolatey Provider?• This is the built-in

provider• Note the following:

• Name of package• Source

• Manifest maintenance

Page 15: Package Management on Windows with Chocolatey

Why Chocolatey Provider?• Package resource

default to provider => chocolatey for Windows.

• Platform agnostic packaging

Page 16: Package Management on Windows with Chocolatey

Creating Packages

Page 17: Package Management on Windows with Chocolatey

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

Page 18: Package Management on Windows with Chocolatey

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

Page 19: Package Management on Windows with Chocolatey

chocolateyInstall.ps1• Helpers / Functions• Reduce work• PowerShell, you can

do anything• Function reference

https://bit.ly/choco-functions

Page 20: Package Management on Windows with Chocolatey

Hosting Your Own Server

Page 21: Package Management on Windows with Chocolatey

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

Page 22: Package Management on Windows with Chocolatey

DEMO

Page 23: Package Management on Windows with Chocolatey

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.

Page 24: Package Management on Windows with Chocolatey

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

Page 25: Package Management on Windows with Chocolatey

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

Page 26: Package Management on Windows with Chocolatey

Windows Webinar SeriesRegister 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

Page 27: Package Management on Windows with Chocolatey

Questions &Answers

Page 28: Package Management on Windows with Chocolatey

ResourcesPuppetConf 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• Puppet Fundamentals