SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Automated Patching
With Bolt
Nick Maludy
@NickMaludy
github.com/nmaludy Encore Technologies
@EncoreTechCincy
github.com/EncoreTechnologies
encoretechnologies.github.io
DevOps Manager, Husband, Dad
Managed Services Provider
Encore
Got 99 Problems and Patching is One
•CVEs and Zero Days
•Manual
•Slow
•Burnout
•Broken Applications
•Snapshots… doh!
•Monitoring? … oops!
Landscape
•Windows
- 2008
- 2012
- 2016
•Linux
- RHEL 6, 7
- Ubuntu 14.04, 16.04, 18.04
Existing Tools…
•Windows
- SCCM
- WSUS
•Everything is a “suggestion”
•Lack of customization
•Linux
- RHEL = Satellite
- Ubuntu = ?
Requirements
•Security
• More often (weekly)
• Fast as possible (<1 day)
• Reports
•DevOps
• HA groups
• Customizable workflows
• Cross-platform
• Windows Update + Chocolatey
encore/patching
•Bolt
•Community
•Eat our own dog food
•forge.puppet.com/encore/patching
Design
•Framework
•Components / building blocks
•Agent-less
•Everything is a Plan and a Task
•Group based
•Common interfaces
•Customizable
•NOT MAGIC
Architecture
Available?
Create
Snapshot
Pre Update Post Reboot
Delete
Snapshot
Workflow
patching::ordered_groups
•Input = Array[TargetSpec]
•patching_order “var” assigns group
•Group by common patching_order
•sort() on patching_order
•Result = sorted array of groups
bolt plan run patching::ordered_groups
---
groups:
- name: patching_a
vars:
patching_order: 1
targets:
- postgres01
- postgres03
- name: patching_b
vars:
patching_order: 2
targets:
- postgres02
[
{
“order”: 1,
“nodes”: [
TargetSpec(“postgres01”),
TargetSpec(“postgres03”)
]
},
{
“order”: 2,
“nodes”: [
TargetSpec(“postgres02”),
]
}
]
inventory.yaml patching::ordered_groups
$ordered_groups = run_plan('patching::ordered_groups’,
nodes => $targets)
$ordered_groups.each |$group_hash| {
run_plan(‘facts’,
nodes => $group_hash['nodes’])
}
Example
patching::available_updates
•Check for available updates
•Windows
- Windows Update Agent API
- choco outdated
•RHEL
- yum -q check-update
•Ubuntu
- apt upgrade –simulate
• Output = Array of updates
bolt plan run patching::available_udpates
{
"updates": [
{
"name": "Definition Update …",
"version": 200,
"server_selection": 0,
"id": "a54401ad-…",
"kb_ids": ["2267602"],
"provider": "windows"
},
{
"name": “notepad++",
"version": “4.0.0",
"pinned": "false",
"provider": "chocolatey"
}
]
}
{
"updates": [
{
"name": "puppet-bolt",
"version": "1.30.1-1.el7",
"repo": "puppet6"
},
]
}
{
"updates": [
{
"name": "puppet-bolt",
"version": "1.30.1-1xenial",
"repo": "Puppetlabs:xenial“
},
]
}
Windows RHEL
Ubuntu
patching::snapshot_vmware
•VMware only (for now)
- Bolt control node
- rbvmomi gem
•Optional
•Customizable
•Pluggable
- Dynamic Dispatch
bolt plan run patching::snapshot_vmware
Dynamic Dispatch in Bolt
plan patching (
TargetSpec $nodes,
String $snapshot_plan,
) {
# lots of things…
run_plan($snapshot_plan,
nodes => $nodes,
action => ‘create’)
}
plan patching::snapshot_vmware (
TargetSpec $nodes,
String $action,
) { … }
bolt plan run patching snapshot_plan=patching::snapshot_vmware
Requirement : Plans must conform to same “interface”
patching::pre_update
•Service health checks
•Backups
•Stop services
•etc
•Runs script on remote node
Linux = /opt/patching/bin/pre_update.sh
Windows = C:ProgramDatapatchingbinpre_update.ps1
•Customizable
bolt plan run patching::pre_update
Customizing with vars---
vars:
patching_pre_patch_plan: ‘mymodule::pre_patch’
patching_pre_update_script_linux: ‘/my/custom/patching/script.sh’
patching_pre_update_script_windows: ‘C:mycustompatchingscript.ps1’
plan patching::pre_update (
Target-spec $n,
String $script_linux = ‘/opt/patching/bin/pre_update.sh’
String $script_windows = ‘C:ProgramDatapatchingbinpre_update.ps1’,
) {
$vars = get_targets($n)[0].vars
$_script_linux = pick($vars[‘patching_pre_update_script_linux’], $script_linux)
$_script_windows = pick($vars[‘patching_pre_update_script_windows’], $script_windows)
# … do things
}
inventory.yaml
plan
Group custom vars
---
vars:
patching_pre_update_script_windows: C:awesomepatch_script.ps1
groups:
- name: regular_nodes
targets:
- tomcat01.domain.tld
- name: sql_nodes
vars:
patching_pre_update_script_windows: C:MSSQLstop_services.ps1
targets:
- sql01.domain.tld
patching::update
•Windows
- Windows Update Agent API
• Special snowflake scheduled task…
- choco upgrade all
•RHEL
- yum update
•Ubuntu
- apt-get dist-upgrade
bolt task run patching::update
Logs and Results
•Linux
- Writes stdout log /var/log/patching.log
- Writes results to /var/log/patching.json
•Windows
- Writes logs to C:ProgramDatapatchinglogpatching.log
- Writes results to C:ProgramDatapatchinglogpatching.json
patching::post_update
•Start services
•Waiting for services
•Health check
•etc
•Pluggable same as pre_upate
- Linux = /opt/patching/bin/post_update.sh
- Windows = C:ProgramDatapatchingbinpost_update.ps1
bolt plan run patching::post_update
patching::reboot_required
•Reboot strategy
•Windows
- https://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/
- https://gist.github.com/altrive/5329377
- http://gallery.technet.microsoft.com/scriptcenter/Get-PendingReboot-Query-bdb79542
•RHEL
- needs-restarting
•Ubuntu
- [ -f /var/run/reboot-required ]
bolt plan run patching::reboot_required
patching
$groups = patching::ordered_groups
$groups.each | $g | {
patching::available_updates
patching::snapshot_vmware # create
patching::pre_update
patching::update
patching::post_update
patching::reboot_required
patching::snapshot_vmware # delete
}
bolt plan run patching
Patching Now
•500+ VMs
• 5x environments
•1 engineer
•< 1 day
•Every week
• Dev = latest
• Prod = Dev last week
Lessons Learned - Bolt
•Simple tasks
•Tie tasks together with plans
•Standardize parameters
•Standardize results
•Keep large binaries out of files/
Lessons Learned - Linux
•Bash lowest common denominator
•+100s of systems in a group
•Remember to update cache
•Careful of /tmp and noexec
Lessons Learned - Windows
•Connect timeouts
- 200+ seconds
•100 nodes max
•Long tasks = bad
•Slow updates
•Slow File Tx WinRM
•PowerShell versions
•WUA = PITA
Roadmap
•Monitoring
•Reporting
•Notifications
•ServiceNow Changes
•Inventory creation from Satellite, WSUS, AD, IPA, VMware, ServiceNow
•More workflows
•Network and VMware patching
•Puppet Remediate Integration
Thanks!
@NickMaludy
github.com/nmaludy
@EncoreTechCincy
github.com/EncoreTechnologies
forge.puppet.com/encore/patching
slack.puppet.com
#puppetize-pdx
@nmaludy

Weitere ähnliche Inhalte

Was ist angesagt?

Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsJohn Smith
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...Puppet
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deploymentq0rban
 
Testable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and DockerTestable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and DockerMandi Walls
 
Obfuscating The Empire
Obfuscating The EmpireObfuscating The Empire
Obfuscating The EmpireRyan Cobb
 
PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...
PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...
PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...Puppet
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance DrupalJeff Geerling
 
Chef and PowerShell Desired State Configuration
Chef and PowerShell Desired State ConfigurationChef and PowerShell Desired State Configuration
Chef and PowerShell Desired State ConfigurationJulian Dunn
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part ITaien Wang
 
Ansible + Drupal: A Fortuitous DevOps Match
Ansible + Drupal: A Fortuitous DevOps MatchAnsible + Drupal: A Fortuitous DevOps Match
Ansible + Drupal: A Fortuitous DevOps MatchJeff Geerling
 
Configuration management with puppet
Configuration management with puppetConfiguration management with puppet
Configuration management with puppetJakub Stransky
 
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt LongLondon Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt LongOpenCredo
 
Automation: PowerShell & DSC
Automation: PowerShell & DSCAutomation: PowerShell & DSC
Automation: PowerShell & DSCJosh Gillespie
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsThomas Jackson
 
PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!Thomas Lee
 

Was ist angesagt? (20)

Git+jenkins+rex presentation
Git+jenkins+rex presentationGit+jenkins+rex presentation
Git+jenkins+rex presentation
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The Basics
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
PuppetConf 2016: Easily Manage Software on Windows with Chocolatey – Rob Reyn...
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
 
Testable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and DockerTestable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and Docker
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Mastering composer
Mastering composerMastering composer
Mastering composer
 
Obfuscating The Empire
Obfuscating The EmpireObfuscating The Empire
Obfuscating The Empire
 
PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...
PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...
PuppetConf 2016: How Not to Freak Out When You Start Writing Puppet Modules f...
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
Chef and PowerShell Desired State Configuration
Chef and PowerShell Desired State ConfigurationChef and PowerShell Desired State Configuration
Chef and PowerShell Desired State Configuration
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I
 
Ansible + Drupal: A Fortuitous DevOps Match
Ansible + Drupal: A Fortuitous DevOps MatchAnsible + Drupal: A Fortuitous DevOps Match
Ansible + Drupal: A Fortuitous DevOps Match
 
Linux HA anno 2014
Linux HA anno 2014Linux HA anno 2014
Linux HA anno 2014
 
Configuration management with puppet
Configuration management with puppetConfiguration management with puppet
Configuration management with puppet
 
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt LongLondon Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
 
Automation: PowerShell & DSC
Automation: PowerShell & DSCAutomation: PowerShell & DSC
Automation: PowerShell & DSC
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertools
 
PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!
 

Ähnlich wie Puppetize PDX 2019 - Automated Patching with Bolt by Nick Maludy

Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
InSpec Workflow for DevOpsDays Riga 2017
InSpec Workflow for DevOpsDays Riga 2017InSpec Workflow for DevOpsDays Riga 2017
InSpec Workflow for DevOpsDays Riga 2017Mandi Walls
 
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...DevOpsDays Riga
 
Automatize everything
Automatize everythingAutomatize everything
Automatize everythingBoris Bucha
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpecAll Things Open
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Mandi Walls
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-wayRobert Lujo
 
InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017Mandi Walls
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 WorkflowsRyan Street
 
InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020Mandi Walls
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityMandi Walls
 
Running CentOS on the Facebook fleet
Running CentOS on the Facebook fleetRunning CentOS on the Facebook fleet
Running CentOS on the Facebook fleetDavide Cavalca
 
программное обеспечение (по)
программное обеспечение (по) программное обеспечение (по)
программное обеспечение (по) victoria_4
 
Adding Security and Compliance to Your Workflow with InSpec
Adding Security and Compliance to Your Workflow with InSpecAdding Security and Compliance to Your Workflow with InSpec
Adding Security and Compliance to Your Workflow with InSpecMandi Walls
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release WorkflowTuenti
 
Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023Scott Keck-Warren
 
Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Cross-Platform Desktop Apps with Electron (CodeStock Edition)Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Cross-Platform Desktop Apps with Electron (CodeStock Edition)David Neal
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroMohammad Shaker
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
 

Ähnlich wie Puppetize PDX 2019 - Automated Patching with Bolt by Nick Maludy (20)

Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
InSpec Workflow for DevOpsDays Riga 2017
InSpec Workflow for DevOpsDays Riga 2017InSpec Workflow for DevOpsDays Riga 2017
InSpec Workflow for DevOpsDays Riga 2017
 
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
 
Automatize everything
Automatize everythingAutomatize everything
Automatize everything
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpec
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
 
Running CentOS on the Facebook fleet
Running CentOS on the Facebook fleetRunning CentOS on the Facebook fleet
Running CentOS on the Facebook fleet
 
программное обеспечение (по)
программное обеспечение (по) программное обеспечение (по)
программное обеспечение (по)
 
Adding Security and Compliance to Your Workflow with InSpec
Adding Security and Compliance to Your Workflow with InSpecAdding Security and Compliance to Your Workflow with InSpec
Adding Security and Compliance to Your Workflow with InSpec
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release Workflow
 
Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023
 
Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Cross-Platform Desktop Apps with Electron (CodeStock Edition)Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Cross-Platform Desktop Apps with Electron (CodeStock Edition)
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - Intro
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Kürzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Puppetize PDX 2019 - Automated Patching with Bolt by Nick Maludy

Hinweis der Redaktion

  1. - NO BUZZ WORDS HERE - - Automated patching with bolt
  2. - IT SERVICES PROVIDER - Cincy - Work in Managed Services - - Goal is to make IT suck less - Solving IT problems with modern tools and techniques - Allowing customers to focus on their business problmes
  3. - How often are YOU patching??? - Weekly, Monthly, Quarterly, Yearly - - 1 year ago - CVEs and Zero Days - Us and our customers - - Manual - Slow (days -> weeks) - Long nights - Apps broken before patching - Lack of shutdowns/startups - Forgotten snapshots - Forgotten monitoring
  4. - Landscape? - Ohio in middle of the Brown Field - - Windows - 2008 - 2012 - 2016 - Linux - RHEL 6 & 7 - Ubuntu 14.04, 16.04, 18.04
  5. - Windows - SCCM - WSUS - RHEL = Satellite - Ubuntu = ?? - - Everything is a “suggestion” - Randomly in a window - No custom steps
  6. - Security - More often (weekly) - Faster (1 day or less) - Reports of available patches - - DevOps - HA groups - Customizable workflows - Cross-platform - Windows Update + Chocolatey
  7. - Built on bolt - - Open source for community - - Eat our own dogfood - - Forge
  8. - Patching NOT one size - Framework of building blocks - Agent-less - Everything is a plan and a task - Task does work - Plan calls Task - “User friendly” output - Group inventory - Common interfaces - Customizable - Vars - Parameters - NOT MAGIC
  9. - Windows clients register to - WSUS - Chocolatey - - Red Hat register to - Satellite (Foreman + Katello) - - Ubunutu - internet - - Bolt orchestrates everything - NOTE: Puppet agent not necessary (customers) - TODO promote content
  10. - Available updates - Create snapshot - Pre - app shutdowns - Update - Post - Reboot - Delete snapshot
  11. - Input of Array[TargetSpec] - Targets have patching_order var - Group by common patching order - sort() on patching order - Result is sorted array of groups (targets)
  12. - Inventory YAML on the left - - Result on the right - - Puts data into a array - - Sorted by patching order - - If multiple inventory groups with same patching_order, result in one group - - Allows inventory to be defined by different dimension, say application
  13. - Runs plan to get ordered groups - - Iterate over each group - - Gather facts for each group - - Facilitates us being able to patch sets of nodes in ORDER
  14. - Queries the node for available updates - - Windows - Windows Update Agent API - choco outdated - - RHEL - yum check-update - - Ubuntu - apt upgrade –simulate - - Output = Array of updates
  15. - Windows output on the left - windows update - chocolatey - “providers” - - RHEL - Debian - - Common - name - version - - Allow data custom to each
  16. - Vmware only, for now - Installs rbvmomi - bolt control node - Optional - Customizable with vars - create - delete - allow us to wait overnight - quiesce - memory - - Pluggable with dynamic dispatch
  17. - Dynamic dispatch from CS - determine path at runtime - - Pass plan/task to execute as string - - Plans/tasks need common “interface” - - Example - run example with plan snapshot - - example runs snapshot plan’ - - snapshot plan has ‘action’ interface
  18. - Custom processes before patching - service health checks (in case it’s already broken) - backups - stop services - etc - Default - runs script on remote node - Customizable
  19. - Inventory file up top - - Vars section for global customizations - - Default = hard coded - - pick() to read from “vars” - - Allows customizing at runtime / CLI - - Order of precedence - CLI - Inventory Var - default in the plan - - Great pattern
  20. - customizing global up top - - regular_nodes group gets that - - customizing for a group - - sql_nodes for graceful SQL failover
  21. - Windows - Choco upagrade all : EASY - Special snowflake windows update - Scheduled task - RHEL - yum update - Ubuntu - apt-get dist-upgrade
  22. - Write logs on every node - Can come query them later - - Great for debugging - - Great for reporting
  23. - Same as pre_patch - different script - - Start services - Wait for sockets/services - Health checks
  24. - Customizable with strategy - never - always - only required - - Windows - check a bunch of registry and other Win32 APIs - - RHEL - needs-restarting - - Ubuntu - existence of “/var/run/reboot-required”
  25. - Opinionated workflow - - Uses all of the components we just talked about - - Customizable / pluggable - vars - dynamic dispatch - - Super easy way to get started - - Fully expect people to make their own workflows
  26. - 500+ Vms - 6x internal and customer environments - - 1 engineer - < 1 day - - Every week - dev = latest - prod = dev from week before
  27. - Simple tasks - Tie tasks together with plans - Standardize parameters - Standardize results - Keep large binaries out of files/ - files/ come from some other module - take advantage of isolated boltdir + puppetfile
  28. - Bash lowest common denominator - python - perl - ruby - - +100s of systems in a group - - Remember to update cache - - Carefule of /tmp and noexec
  29. - Connection timeouts - 200+ seconds - - 100 nodes max per group - - Long tasks can timeout in WinRM randomly - - Updates SUPER slow - - Slow transfer files with WinRM - - PowerShell versions matter - cmdlets don’t exist - - Windows Update API == PITA
  30. - Monitoring - SolarWinds - Prometheus - - Reporting - - Notifications - email - Slack - - ServiceNow change integration - - Inventory from Satellite, WSUS, AD, IPA, Vmware, ServiceNow - - More workflows - Network and VMware patching - Puppet remediate integration
  31. - Thanks! - - Build a patching community - - Twitter, github - - Puppet slack #puppetize-pdx