Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Managing Windows with Puppet
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Liam Bennett
September 07, 2015
Technology
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Managing Windows with Puppet
Liam Bennett
September 07, 2015
More Decks by Liam Bennett
See All by Liam Bennett
Everything is an orchestration problem
liamjbennett
2
1.7k
Puppet for Services
liamjbennett
0
210
cfgmgmt2015 - Testing with Beaker
liamjbennett
0
37
Testing with Beaker: The story for windows
liamjbennett
0
41
Other Decks in Technology
See All in Technology
[General] 개발자로 해외 기업에서 일하기
skydoves
1
260
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
330
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
0
190
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
140
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
890
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
420
2拠点SRE活動始めてみた | sogaoh's LT @ ホンマでっかSRE勉強会 #3
sogaoh
PRO
0
230
AIコーディングはじめました
miso
0
130
Patterns in AI Driven Software Development
akosma
PRO
0
440
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.7k
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
560
素人でもできた!AIを使った短編小説創作入門
delhi09
PRO
0
290
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
My Coaching Mixtape
mlcsv
0
380
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
How to build a perfect <img>
jonoalderson
1
6.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
820
Become a Pro
speakerdeck
PRO
31
6.3k
The Curse of the Amulet
leimatthew05
3
16k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Transcript
Managing Windows with Puppet Experiences from the trenches
@liamjbennett
None
None
None
None
Your turn
Not talking about
The puppet tool chain
Powershell
Puppet for all the things
This talk
The basic puppet types for windows The Good … and
some of the new ones
Gotchas for Windows The Bad
Testing on Windows The Ugly
file { 'c:/mysql/my.ini': ensure => 'file', mode => '0660', owner
=> 'mysql', group => 'Administrators', source => 'N:/software/mysql/my.ini', } The Types I Like package { 'Git version 1.8.4': ensure => installed, source => 'N:/software/git-1.8.4.exe', install_options => '0660', } service { 'mysql': ensure => 'running', enable => true, }
exec { 'random script': command =>'cmd.exe /c type c:\path\to\file.txt', }
The Types I Don’t Like user { 'bob': ensure => present, groups => ['Users','Administrators'], password => 'ouch', } schedule_task { 'another task': enable => true, command =>'cmd.exe /c type c:\path\to\file.txt’, trigger => { schedule => daily, } }
windowsfeature { 'Web-WebServer': installsubfeatures => true, } Other useful stuff
registry_key { 'HKLM\System\CurrentControlSet\Services\Puppet': ensure => present, } exec { 'rename-guest': command => '$(SOME_POWERSHELL)', provider => powershell } reboot { 'after': subscribe => Package['SomePackage'] }
Other useful stuff iis::manage_app_pool { 'my_application_pool': enable_32_bit => true, managed_runtime_version
=> 'v4.0' } iis::manage_site { 'www.mysite.com': site_path => 'C:\inetpub\wwwroot\mysite', port => '80', ip_address => '*', host_header => 'www.mysite.com', app_pool => 'my_application_pool', } iis::manage_virtual_application { 'application1': site_name => 'www.mysite.com', site_path => 'C:\inetpub\wwwroot\application1', app_pool => 'my_application_pool', }
The Gotchas
File Paths file { 'c:/path/to/file.txt': } file { 'c:\path\to\file.txt': }
file { "c:\\path\\to\\file.txt": }
file/acl file { 'c:/mysql/my.ini': ensure => 'file', mode => '0660',
owner => 'mysql', group => 'Administrators', source => 'N:/software/mysql/my.ini', } acl { 'c:/mysql/my.ini': permissions => [ { identity => 'Administrator', rights => ['full'] }, { identity => 'Users', rights => ['read','execute'] } ], }
puppetlabs/acl
WOW3264 re-direction C:\Windows\System32\ C:\Windows\SysWOW64\
UAC Manually running puppet in a non- admin context ->
Don’t do this.
WinRM Quotas winrm set winrm/config @{MaxTimeoutms="1800000"} winrm set winrm/config/winrs @{MaxMemoryPerShellMB=""}
Reboots Can’t install a package because of “waiting for reboot”
state
puppetlabs/reboot
WTF Bugs KB2773898 - access denied installing msu KB2918614 -
windows update that broke msi installs KB2842230 - ignores MaxMemoryPerShellMB
Testing
• rspec-puppet • beaker (with winrm) • serverspec • vagrant/packer
• booting 4GB images
Questions? And thanks for listening
@liamjbennett
[email protected]
liamjbennett.me @OpenTableTechUK tech.opentable.co.uk