plugging chocolatey into your puppet infrastructure puppetconf2014

34
2014 Presented by Plugging Chocolatey into your Puppet Infrastructure Rob Reynolds Senior Software Engineer | Puppet Labs @ferventcoder

Upload: rob-reynolds

Post on 24-May-2015

1.827 views

Category:

Software


3 download

DESCRIPTION

Are you managing Windows? Longtime Windows system admin? Do you enjoy long walks on the beach thinking about how it would be awesome to have Linux-style package management on Windows? Well you, sir or madam, are in luck! Chocolatey will help you get jiggy with it and get your Puppet package management in much the same way that you already enjoy with other platforms. During this talk we will go over how you can be successful hooking Chocolatey into Puppet, creating your own packages, and setting up an internal package repository. Even if you've seen Chocolatey before, we have something new and Puppety we'll be showing at this talk!

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