SlideShare a Scribd company logo
2014 
Presented by 
Getting Started 
with Puppet on 
Windows 
Josh Cooper 
Principal Engineer | Puppet Labs 
@coopjn 
Thursday, September 25, 14
Presented by 
What not to do 
1 @echo off 
2 net stop w32time 
3 w32tm /config /syncfromflags:manual  
/manualpeerlist:"0.pool.ntp.org,1.pool.ntp.org" 
4 net start w32time 
Thursday, September 25, 14
Presented by 
Thursday, September 25, 14
Presented by 
Overview 
What is Puppet? 
Getting started 
Effectively managing Windows with Puppet 
Thursday, September 25, 14
Presented by 
What is Puppet? 
Thursday, September 25, 14
#puppetize 
registry_value { 'HKLMSystem...W32TimeParametersNtpServer': 
ensure => present, 
type => array, 
data => ['0.pool.ntp.org','1.pool.ntp.org'], 
notify => Service['w32time'], 
} 
service { 'w32time': 
ensure => running, 
enable => true, 
} 
Presented by 
Thursday, September 25, 14
registry_value { 'HKLMSystem...W32TimeParametersNtpServer': 
ensure => present, 
type => array, 
data => ['0.pool.ntp.org','1.pool.ntp.org'], 
notify => Service['w32time'], 
} 
Presented by 
Thursday, September 25, 14
Presented by 
service { 'w32time': 
ensure => running, 
enable => true, 
} 
Thursday, September 25, 14
Relationships 
registry_value { 'HKLMSystem...W32TimeParametersNtpServer': 
... 
notify => Service['w32time'], 
} 
service { 'w32time': 
... 
} 
Presented by 
Thursday, September 25, 14
Presented by 
Getting Started 
• Supported Platforms 
• Installation 
• Applications 
• Resources 
Thursday, September 25, 14
Presented by 
to 
Thursday, September 25, 14
Presented by 
Thursday, September 25, 14
Presented by 
Thursday, September 25, 14
Presented by 
Thursday, September 25, 14
Presented by 
Applications 
• resource 
• apply 
• agent 
Thursday, September 25, 14
Presented by 
puppet resource 
Thursday, September 25, 14
Presented by 
packages 
Thursday, September 25, 14
Presented by 
puppet apply 
Thursday, September 25, 14
Presented by 
puppet agent 
Thursday, September 25, 14
Presented by 
Resources 
• Core 
• Supported Modules 
• Community Modules 
• Tooling 
Thursday, September 25, 14
Presented by 
Core Resources 
exec 
file 
host 
user 
group 
package 
service 
scheduled_task 
Thursday, September 25, 14
Presented by 
Supported Modules 
acl 
powershell 
reboot 
registry 
concat 
stdlib 
inifile 
java_ks 
Thursday, September 25, 14
Community Modules 
https://forge.puppetlabs.com/modules?sort=downloads&q=windows 
Paul Stack & Liam Bennett (OpenTable) 
Rich Siegel 
Marc Sutter 
Presented by 
Thursday, September 25, 14
Presented by 
puppet module 
maybe we skip this? 
Thursday, September 25, 14
Presented by 
https://docs.puppetlabs.com/geppetto/latest/ 
Thursday, September 25, 14
Presented by 
http://bit.ly/1o9E2EH 
Thursday, September 25, 14
Presented by 
https://portal.azure.com 
Thursday, September 25, 14
Presented by http://lego-technique.blogspot.com/ 
Thursday, September 25, 14
Presented by 
Quotes & Interpolation 
$taskmgr = 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution 
Optionstaskmgr.exe' 
registry_value { "${taskmgr}Debugger": 
ensure => present, 
type => string, 
data => 'c:sysinternalsprocexp.exe', 
require => Package['sysinternals'], 
} 
Thursday, September 25, 14
Presented by 
Windows Accounts 
group { 'Administrators': 
ensure => present, 
members => ['Administrator', 'S-1-5-19', 'NT AUTHORITYNetwork Service'], 
} 
Thursday, September 25, 14
Presented by 
Case Sensitivity 
package { 'javaruntime': 
ensure => installed, 
provider => chocolatey, 
before => Service['jenkinsslave'], 
} 
service { 'jenkinsslave': 
ensure => running, 
enable => true, 
} 
Thursday, September 25, 14
Presented by 
Why oh Why 
file { 'C:Windowssystem32': 
ensure => directory 
} 
file { 'C:Windowssysnative': 
ensure => directory 
} 
Thursday, September 25, 14
Presented by 
UAC is sort of like sudoish... 
Thursday, September 25, 14
Presented by 
Where’s my data? 
Thursday, September 25, 14
Presented by 
platform { 'windows': 
ensure => firstclass 
} 
Thursday, September 25, 14
Next Steps 
Documentation: http://docs.puppetlabs.com/windows 
Training: Puppet Essentials for Windows 
Google Groups: puppet-users & puppet-dev 
https://ask.puppetlabs.com 
https://tickets.puppetlabs.com 
Presented by 
Thursday, September 25, 14
Do You Speak ? 
http://puppetlabs.com/jobs 
Thursday, September 25, 14
Thank You! 
Josh Cooper 
josh@puppetlabs.com 
@coopjn 
Thursday, September 25, 14

More Related Content

Getting Started with Puppet on Windows PuppetConf 2014