puppetconf 2016: closing the loop: direct change control with puppet – nick lewis, puppet
TRANSCRIPT
![Page 1: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/1.jpg)
Closing the Loop: Direct Change Control with PuppetNick Lewis @nick_lewis [email protected]
"A Mad Tea Party" (CC BY-NC-SA 2.0) by Justin in SD
![Page 2: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/2.jpg)
Hello!Nick Lewis @nick_lewis [email protected]
![Page 3: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/3.jpg)
"shinkansen" (CC BY-SA 2.0) by twicepix
![Page 4: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/4.jpg)
Artisanal, hand-crafted bits• Fast • For a while • Wildly unsafe • Impossible to track
![Page 5: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/5.jpg)
#!/usr/bin/bash
![Page 6: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/6.jpg)
![Page 7: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/7.jpg)
o o o o o o o?
![Page 8: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/8.jpg)
?
![Page 9: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/9.jpg)
Enter: Puppet!
![Page 10: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/10.jpg)
💡
💡
💡
![Page 11: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/11.jpg)
Nodes have a desired state, which is periodically updated and reinforced.
![Page 12: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/12.jpg)
Nodes have a desired state, which is periodically updated and reinforced.
![Page 13: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/13.jpg)
💡
💡
💡
![Page 14: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/14.jpg)
Direct Change
![Page 15: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/15.jpg)
![Page 16: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/16.jpg)
puppet job run --nodes foo.example.com,bar.example.com,baz.example.com
puppet job run --query 'inventory { facts.osfamily = "Debian" }'
puppet job run --query 'resources { type = "Service" and title = "httpd" }'
![Page 17: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/17.jpg)
inventory { facts.osfamily = "Debian" and resources { type = "Service" and title = "httpd" } limit 3 }
nodes { last_report_status = "failed" }
catalogs { ! code_id = "urn:puppet:code-id:1:a393e1b;production" }
![Page 18: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/18.jpg)
![Page 19: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/19.jpg)
💡💡
💡
Orchestrator
![Page 20: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/20.jpg)
💡💡
💡
Orchestrator
![Page 21: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/21.jpg)
Direct Change• The way to make change with Puppet • Up to 10k nodes now, scale-out later • Runs from your laptop
![Page 22: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/22.jpg)
Client Tools• puppet job • puppet access • puppet code • puppet query
![Page 23: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/23.jpg)
Future Work• UI improvements • Smarter puppet run throttling • Open source tooling
![Page 24: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/24.jpg)
Futurer Work• Asynchronous enforcement • Automatic change • Devices, non-root agents
![Page 25: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/25.jpg)
Questions?Direct Puppet and Application Management for the Puppet Platform Ryan Coleman Friday, 1:30 pm @ Terrace Salon (track 6)
![Page 26: PuppetConf 2016: Closing the Loop: Direct Change Control with Puppet – Nick Lewis, Puppet](https://reader031.vdocument.in/reader031/viewer/2022030317/586fb47a1a28abe57d8b71bb/html5/thumbnails/26.jpg)