5. What is management?
Management is simply the process of getting
the good stuff that we want into computers and
removing the bad stuff that we dont want.
6. How do we typically get stuff onto
computers?
Imaging – bake everything in and when it grows
stale and unwieldy, reimage (re-bake) it
It’s how we do it. It’s how we’ve done it
….but can we do it better?
7. How do we typically get stuff onto
computers?
Deploy packages:
→ Store installer packages somewhere
(external drive, file server, etc.)
→ Use some method to push the packages to
the computers and install them (scripts, AD
Group Policy, PDQ Deploy, etc.)
Better….but is there yet a better way?
8. Get Chocolatey
It’s way better… why?
Chocolatey is aware of what it installs
It’s also aware when there’s a new version
9. Get Chocolatey – The Install
from CMD.exe as Administrator:
@powershell -NoProfile -ExecutionPolicy unrestricted -
Command "iex ((new-object net.webclient).DownloadString
('https://chocolatey.org/install.ps1'))" && SET PATH=%
PATH%;%ALLUSERSPROFILE%chocolateybin
– OR –
via Powershell as Administrator:
iex ((new-object net.webclient).DownloadString('https:
//chocolatey.org/install.ps1'))
Reads like Dickens, doesnt it?!
10. Run Chocolatey
Install the current java vm
c:> cinst javaruntime
Uninstall an old version
c:> cuninst javaruntime -Version 6.0.31.1
Upgrade to the latest version
c:> cup javaruntime
11. It even does Windows Features
List all available Windows Features
c:> clist -source windowsfeatures
Install TFTP Client
c:> cinst -source windowsfeatures TFTP
(Generally more useful for Windows server)
12. Why Puppet?
Because we’re humans...
Humans are inventive and resourceful and...
Humans are HORRIBLE at repetitive tasks
Computers and software are way better at
repeated tasks… once they’re told what to do
13. What is Puppet?
A configuration management/reporting system
Ookay...what’s that?
Puppet provides a way of telling Windows how
it should run and what it should do
14. How does Puppet interact with
Windows?
Puppet uses a Master which is simply a linux
hosted program that interacts with an Agent
process running on the client machine.
The Master collects Facts from the client and
uses that information to compile a catalog of
instructions that declare the ultimate state of
how Resources should look on the client.
15. How does Puppet interact with
Windows?
The client runs the instructions and reports its
activity as well as any errors back to the Master
Client: “Hey Master, I did what you said and here’s how it went...”
Master: “Atta boy! That’s a good Puppet!”
16.
17. What are Resources?
Resources are the things that Puppet
manages
Resources can be: Files, Services, Packages,
Users, Groups, Scheduled Tasks...
Puppet uses instructions contained in simple
text files called Manifests to declare the end
state of Resources
18. What is a Manifest?
A Manifest is a plain text file containing
instructions written in a declarative language
that Puppet uses to define how Resources
should be
package { 'javaruntime':
ensure => 'latest’,
provider => ‘chocolatey’,
}
“Tell Chocolatey, he
had better make
sure my java is fresh
in the morning!!”
19. So what’s this Provider thing?
...and what does Chocolatey have to do with all
this?
Chocolatey is a Provider for Puppet, which
means it’s a method used to install programs
which are represented as a type of resource
referred to as Packages
21. Everybody needs somebody
Where to get help?
Docs: http://docs.puppetlabs.com/
Training: https://puppetlabs.com/learn
Youtube: http://j.mp/puppetlabs-youtube
Puppet Group: http://j.mp/puppet-users-group
Chocolatey Group: http://j.mp/chocolatey-group
PuppetNYC Meetup: http://j.mp/puppet-nyc-meetup
Podcast: http://j.mp/puppetlabs-podcast
IRC: #puppet and #chocolatey on Freenode
22. Useful things to watch
What is Puppet?
http://youtu.be/j8ImF23jZAg
Getting Started with the Learning Puppet VM
http://youtu.be/8wTiFUZDVfo
Getting Started with Puppet
http://youtu.be/TdAmAj3eaFI