Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Managing Windows with Puppet
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
200
cfgmgmt2015 - Testing with Beaker
liamjbennett
0
34
Testing with Beaker: The story for windows
liamjbennett
0
38
Other Decks in Technology
See All in Technology
TypeScript入門 2026
recruitengineers
PRO
2
490
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
490
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
530
制約理論(ToC)入門 2026版
recruitengineers
PRO
6
2k
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
180
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
190
Digitization部 紹介資料
sansan33
PRO
2
7.7k
MIRU 2026 チュートリアル
keisuke198619
0
860
ラジオの科学
frievea
0
280
SmartHR Engineering Team Deck
smarthr
1
990
強化学習「理論」入門
enakai00
3
3.6k
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
120
Featured
See All Featured
From π to Pie charts
rasagy
0
260
Into the Great Unknown - MozCon
thekraken
41
2.7k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
Believing is Seeing
oripsolob
1
180
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Automating Front-end Workflow
addyosmani
1370
210k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Docker and Python
trallard
47
4.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
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