YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

2014

Presented by

Plugging Chocolatey into your Puppet Infrastructure

Rob Reynolds Senior Software Engineer | Puppet Labs @ferventcoder

Page 2: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Rob Reynolds• Developer at Puppet Labs

• Creator of Chocolatey

• All around nice guy

• Making your Windows world a better place

• Windows, it’s a technique

Page 3: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Agenda• Chocolatey?

• Chocolatey Provider

• Why Chocolatey?

• Creating Packages

• Host your own package server

• Announcements

Page 4: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

What Exactly is Chocolatey?

Page 5: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Package Manager for Windows• Behaves much like yum

• Microsoft validated

• Technologies: PowerShell + NuGet packaging framework

• Does not violate distribution rights

Chocolatey

Page 6: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

chocolatey.org• Community feed

• Community maintained

• Trust issues?

• Recommendation: A business should run their own internal feed

5 Million Downloads!

Page 7: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Chocolatey Puppet Provider

Page 8: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Puppet Provider• puppet module install

rismoney/chocolatey

• Rich is a committer

• Doesn’t yet install chocolatey

Page 9: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Package Resource

• installable, uninstallable, upgradeable, versionable, install_options

• Soon: holdable, uninstall_options

• Later: virtual_packages

Page 10: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Why Chocolatey provider versus the built in provider?

Page 11: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Use case: git• Name of

package

• Source

• Manifest maintenance

Page 12: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Why Chocolatey Provider?• Synonymous with other package managers

• No edge cases like version in application names

• No edge cases like unicode symbols (em-dash, em-I-rite?) in app names

• No source needing to point to the installer. Can I get a WAT

Page 13: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Make Chocolatey your default!• Set Package resource

default for provider to chocolatey on Windows

• Note: There might be better ways of doing this, follow those guidelines when conflicting :)

Page 14: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Chocolatey Provider Demo

Page 15: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Creating Packages

Page 16: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Creating Packages• *.nuspec

• chocolateyInstall.ps1

• Other resources like binaries / config files, etc

• Getting started / reference at https://bit.ly/createchocolateypackages

Page 17: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

packagename.nuspec• This is a nuget

packaging specification

• Later: choco adding infrastructure, os versions, etc

Page 18: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

chocolateyInstall.ps1• Helpers / Functions

• Reduce work

• PowerShell, you can do *anything*

• Function reference http://bit.ly/chocolateyfunctionreference

Page 19: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Create Packages Visually• Nuget Package Explorer

(choco install nugetpackageexplorer)

• Ignore its warnings, it is geared towards NuGet proper

• NO content folder

Page 20: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Create Packages Demo

Page 21: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Host Your Own Chocolatey Package Server

Page 22: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Host Chocolatey Packages• Now it’s easy to set up your

own package feed

• Make it custom/internal for business purposes.

• chocolatey.server package

• Beta

• Simple server

Page 23: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Chocolatey Package Server Demo

Page 24: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Announcements

Page 25: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

So it’s been a year• A year ago we:

• were on Choco v0.9.8.20

• the chocolatey puppet module was just fixed

• and no easy way to install a private choco server

Page 26: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Getting Chocolatey• Chocolatey Executable

• First public viewing here today

• Stability / Performance improvements

• Help menu improvements (like, there is one now)

• Lots of command switches

• Global Noop

Page 27: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Just how much faster is it?• Checking upgrades across 114 packages

!

!

!

• Almost 600% increase!!! Granted this is still slow, but package indexes are coming later

Page 28: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Okay how about no network?• choco list -lo

!

!

!

• 300% increase!

Page 29: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Chocolatey Puppet Provider• How many of you would like to see the

current provider get better?

• How many of you think it would be awesome if it were a Puppet Labs supported module?

• How many of you just want chocolate?

Page 30: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Supported Module• Yes, we plan to provide a Puppet Labs supported

module!

Page 31: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

chocolatey.org Improvements• Mark outdated

• Mark bad

• Security improvements still coming

Page 32: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Demo of new Chocolatey!

Page 33: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Questions?• Join the newsletter for announcements - https://

chocolatey.org/#newsletter

• ferventcoder { twitter, github, gmail }, also [email protected]

Page 34: Plugging Chocolatey into your Puppet Infrastructure PuppetConf2014

Presented by

Thank you!• Other awesome things involving Windows:

• Getting started w/Puppet on Windows (Josh Cooper) - Wed 2:20PM - Golden Gate B

• Workshop: Puppet for Windows Users (Ethan Brown) - Wed 3:10 - Salon 2-3

• Puppet Demo: Managing Windows with Puppet Enterprise - today/tomorrow - Nob Hill


Related Documents