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
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
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
メルペイ 会計システム概要と歴史
mewuto
0
190
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
320
自律型 AI をセキュアに実装!Gemini と MIG で作る動的コード実行環境
recruitengineers
PRO
1
220
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
230
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
350
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
形式手法を使って仕様をコーディングしよう
mikanichinose
0
190
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.4k
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
310
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
310
Deep Data Security 機能解説
oracle4engineer
PRO
2
720
Featured
See All Featured
Everyday Curiosity
cassininazir
0
350
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
The agentic SEO stack - context over prompts
schlessera
0
970
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
For a Future-Friendly Web
brad_frost
184
10k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
From π to Pie charts
rasagy
1
390
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
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