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
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
37
Other Decks in Technology
See All in Technology
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
430
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.9k
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.2k
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
200
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6.3k
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
260
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1k
AI時代の闇と光
tatsuya1970
0
100
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
1
650
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
320
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
530
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
410
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
From π to Pie charts
rasagy
0
230
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Embracing the Ebb and Flow
colly
88
5.1k
Documentation Writing (for coders)
carmenintech
77
5.4k
Agile that works and the tools we love
rasmusluckow
331
22k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
GraphQLとの向き合い方2022年版
quramy
50
15k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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