SlideShare a Scribd company logo
Compliance Automation with InSpec
Learning Lab
Nathen Harvey - @nathenharvey
Join Slack Team & Channel
• http://www.dctechslack.com/
• #devopsdc-meetup
#devopsdc-meetup
Chef DK - The Chef Development Kit
• Definitive tooling for local development of Chef code & Infrastructure as Code development
▪ Validate your Chef code against Chef best
practices
▪ Extend with rules to enforce organizational
Chef development best practices
▪ Enforce compliance & security practices
Foodcritic
Test Your “Chef Style”
▪ Validate your Chef code against Ruby best
practices
▪ Identify potential Ruby errors
Unclosed strings, etc.
▪ Identify style/convention that helps write better
code
Single quotes vs. double quotes
CookStyle
Validate your Ruby
▪ Validate your Chef code will run
▪ Testing for more Chef advanced use cases
▪ Useful for regression testing
ChefSpec
Simulate Chef
▪ Executes your Chef code on an instance or container
▪ Integrates with Cloud and Virtualization providers
▪ Validate your Chef code locally before sharing
▪ Speed development of Chef Cookbooks
Test Kitchen
Let’s do this (almost) for real
▪ Assert the intention of your Chef code
▪ Verify on live systems that your Chef code produced the correct result
▪ Confirm your Chef code didn’t not produce compliance drift
InSpec
Verify automation results & ensure compliance
FAST INEXPENSIVE TESTING
DEEP INTEGRATION TESTING
Continuous Compliance
Chef Automate and InSpec Profiles
Chef Automate – Node View
• View aggregate status of your infrastructure
Overall & trend views of converge status
Overall & trend views of compliance status
Filter & search options
• View details of any node
Status of converged resources
Run List applied to the node
Attributes of the node
Chef Solo
Executes chef-client without relying on a Chef server to
provide configuration policies (cookbooks, environments,
etc.)
https://docs.chef.io/chef_solo.html
Chef Solo
• Local directory for configuration policy
Or a URL from which a .tar.gz file can be downloaded
• Node objects stored as a local JSON file
• Attribute data stored in a JSON file
Local or remote
• Does not pull from a Chef Server
• Can be configured to send data to a Chef Server
Chef Client – Local Mode
Local mode is a way to run the chef-client against the chef-
repo on a local machine as if it were running against the
Chef server.
https://docs.chef.io/ctl_chef_client.html#run-in-local-mode
Review the set-up
tying it all together
Go home
cd ~
List contents
Berksfile config.json firstname-lastname profiles
Berksfile.lock cookbooks nodes
ls
List cookbooks
audit compat_resource
ls cookbooks
Audit Cookbook
• Install InSpec
• Run InSpec profiles
• Report results to Chef Compliance or Chef Visibility
Compat Resource Cookbook
• Adds functionality introduced in the latest chef-client releases to any chef-client
from 12.1 onwards.
• Includes
Custom Resource functionality
notification improvements
new resources added to core chef
• Allows for these new resources in cookbooks without requiring the very latest
Chef client release.
config.json
{
"audit": {
"collector": "chef-visibility",
"inspec_version": "1.15.0",
"profiles": [
{
"name": "ssh",
"path": "/home/chef/profiles/ssh"
}
]
}
}
cat config.json
Local Profiles
profiles/
└── ssh
├── controls
│ └── ssh.rb
├── inspec.lock
└── inspec.yml
2 directories, 3 files
tree profiles
Next Steps
• Remediate the failing control
• Run the audit cookbook to verify the remediation
• View the compliant node in Automate
Remediate the Failing Control
Simple SSH Cookbook
• A server recipe to manage the sshd_config file
• Local test environment configured
Remember…
• Infrastructure policies need testing
↳ Linting
↳ Static Analysis
↳ Unit Testing
↳ Integration Testing
↳ Compliance Testing
"Infrastructure as
Code" should be
tested like ANY
other codebase.
Test-Driven Development
• Write a test, watch it fail
• Write some code
• Write and run more tests
• Code review
• Delivery pipeline to production
• Lowered chance of production failure
Add a test
Run the tests
Make a little change
Run the tests
pass
[development
continues]fail
fail
pass
pass
[development stops]
Testing the change
Test-driven Development
Add a test
Run the tests
Make a little change
Run the tests
pass
[development
continues]fail
fail
pass
pass
[development stops]
Test-driven Development
Add a test
Run the tests
Make a little change
fail
pass
Test-driven Development
Add a test
Run the tests
Make a little change
Run the tests
pass
[development
continues]fail
fail
pass
pass
[development stops]
Test-driven Development
Add a test
Run the tests
Make a little change
Run the tests
pass
[development
continues]fail
fail
pass
pass
[development stops]
What’s next?
• Test-driven development cycle is complete
• Deploy the change
Further Resources
Where to go for additional help
Community Resources
• InSpec Website, includes tutorials and docs - http://inspec.io/
• #inspec channel of the Chef Community Slack - http://community-slack.chef.io/
• InSpec category of the Chef Mailing List - https://discourse.chef.io/c/inspec
• Compliance Profiles on the Supermarket - https://supermarket.chef.io/tools?type=compliance_profile
• Open Source Project - https://github.com/chef/inspec
★ Workshops & Chef Training
★ DevOps Leadership Summit
★ Community Summit
★ Partner Summit
★ Welcome Reception
★ Customer Dinner
★ Analyst Day
• Exhibit Hall Open & Sales suites available • chefconf.chef.io •
DAY 1 // MAY 22
★ Keynotes
★ Technical Sessions
★ Happy Hour
★ Game Night
★ Executive Dinner
DAY 2 // MAY 23
★ Keynotes
★ Technical Sessions
★ Awesome Chef Awards
★ Community Celebration
DAY 3 // MAY 24
★ Hackday
DAY 4 // MAY 25
Compliance Automation with InSpec
Ad

More Related Content

What's hot (20)

Compliance Automation with Inspec Part 3
Compliance Automation with Inspec Part 3Compliance Automation with Inspec Part 3
Compliance Automation with Inspec Part 3
Chef
 
Compliance as Code - Using the Open Source InSpec testing Framework
Compliance as Code - Using the Open Source InSpec testing FrameworkCompliance as Code - Using the Open Source InSpec testing Framework
Compliance as Code - Using the Open Source InSpec testing Framework
Sonatype
 
Chef Workflow Demo
Chef Workflow DemoChef Workflow Demo
Chef Workflow Demo
Chef
 
Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery
Chef
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
Chef
 
Devops journey chefpopup-2016.04.26-v2
Devops journey chefpopup-2016.04.26-v2Devops journey chefpopup-2016.04.26-v2
Devops journey chefpopup-2016.04.26-v2
Chef
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlab
Chef
 
Infrastructure as Code with Chef
Infrastructure as Code with ChefInfrastructure as Code with Chef
Infrastructure as Code with Chef
Sarah Hynes Cheney
 
Compliance Automation Workshop
Compliance Automation WorkshopCompliance Automation Workshop
Compliance Automation Workshop
Chef
 
Chef Automate - Wellington DevOps August 2, 2017
Chef Automate - Wellington DevOps August 2, 2017Chef Automate - Wellington DevOps August 2, 2017
Chef Automate - Wellington DevOps August 2, 2017
Matt Ray
 
Chef Delivery
Chef DeliveryChef Delivery
Chef Delivery
Chef
 
Chef Hack Day Denver
Chef Hack Day Denver Chef Hack Day Denver
Chef Hack Day Denver
Chef
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
Mandi Walls
 
Habitat Managed Chef
Habitat Managed ChefHabitat Managed Chef
Habitat Managed Chef
Chef
 
Chef Automate - Infracoders Canberra August 8, 2017
Chef Automate - Infracoders Canberra August 8, 2017Chef Automate - Infracoders Canberra August 8, 2017
Chef Automate - Infracoders Canberra August 8, 2017
Matt Ray
 
Automating Compliance with InSpec - AWS North Sydney
Automating Compliance with InSpec - AWS North SydneyAutomating Compliance with InSpec - AWS North Sydney
Automating Compliance with InSpec - AWS North Sydney
Matt Ray
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Andrey Zhupanenko
 
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
 
Delivery pipelines at Symphony Talent - Present and Future
Delivery pipelines at Symphony Talent - Present and FutureDelivery pipelines at Symphony Talent - Present and Future
Delivery pipelines at Symphony Talent - Present and Future
Nathan Jones
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
Jeff Eaton
 
Compliance Automation with Inspec Part 3
Compliance Automation with Inspec Part 3Compliance Automation with Inspec Part 3
Compliance Automation with Inspec Part 3
Chef
 
Compliance as Code - Using the Open Source InSpec testing Framework
Compliance as Code - Using the Open Source InSpec testing FrameworkCompliance as Code - Using the Open Source InSpec testing Framework
Compliance as Code - Using the Open Source InSpec testing Framework
Sonatype
 
Chef Workflow Demo
Chef Workflow DemoChef Workflow Demo
Chef Workflow Demo
Chef
 
Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery
Chef
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
Chef
 
Devops journey chefpopup-2016.04.26-v2
Devops journey chefpopup-2016.04.26-v2Devops journey chefpopup-2016.04.26-v2
Devops journey chefpopup-2016.04.26-v2
Chef
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlab
Chef
 
Infrastructure as Code with Chef
Infrastructure as Code with ChefInfrastructure as Code with Chef
Infrastructure as Code with Chef
Sarah Hynes Cheney
 
Compliance Automation Workshop
Compliance Automation WorkshopCompliance Automation Workshop
Compliance Automation Workshop
Chef
 
Chef Automate - Wellington DevOps August 2, 2017
Chef Automate - Wellington DevOps August 2, 2017Chef Automate - Wellington DevOps August 2, 2017
Chef Automate - Wellington DevOps August 2, 2017
Matt Ray
 
Chef Delivery
Chef DeliveryChef Delivery
Chef Delivery
Chef
 
Chef Hack Day Denver
Chef Hack Day Denver Chef Hack Day Denver
Chef Hack Day Denver
Chef
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
Mandi Walls
 
Habitat Managed Chef
Habitat Managed ChefHabitat Managed Chef
Habitat Managed Chef
Chef
 
Chef Automate - Infracoders Canberra August 8, 2017
Chef Automate - Infracoders Canberra August 8, 2017Chef Automate - Infracoders Canberra August 8, 2017
Chef Automate - Infracoders Canberra August 8, 2017
Matt Ray
 
Automating Compliance with InSpec - AWS North Sydney
Automating Compliance with InSpec - AWS North SydneyAutomating Compliance with InSpec - AWS North Sydney
Automating Compliance with InSpec - AWS North Sydney
Matt Ray
 
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
 
Delivery pipelines at Symphony Talent - Present and Future
Delivery pipelines at Symphony Talent - Present and FutureDelivery pipelines at Symphony Talent - Present and Future
Delivery pipelines at Symphony Talent - Present and Future
Nathan Jones
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
Jeff Eaton
 

Viewers also liked (14)

DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016
DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016
DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016
DevOpsDays Tel Aviv
 
Developing a Rugged Dev Ops Approach to Cloud Security (Updated)
Developing a Rugged Dev Ops Approach to Cloud Security (Updated)Developing a Rugged Dev Ops Approach to Cloud Security (Updated)
Developing a Rugged Dev Ops Approach to Cloud Security (Updated)
Sebastian Taphanel CISSP-ISSEP
 
Configuration Management is Old and Boring
Configuration Management is Old and BoringConfiguration Management is Old and Boring
Configuration Management is Old and Boring
Mandi Walls
 
Evident io Continuous Compliance - Mar 2017
Evident io Continuous Compliance - Mar 2017Evident io Continuous Compliance - Mar 2017
Evident io Continuous Compliance - Mar 2017
Sebastian Taphanel CISSP-ISSEP
 
Continuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesContinuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two Approaches
Ross Snyder
 
Árbol Alemán Galván
Árbol Alemán GalvánÁrbol Alemán Galván
Árbol Alemán Galván
Abiram Jaba
 
Social Media for Small Business | Introduction and Follow Up
Social Media for Small Business | Introduction and Follow UpSocial Media for Small Business | Introduction and Follow Up
Social Media for Small Business | Introduction and Follow Up
Omar Masry, AICP
 
EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...
EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...
EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...
Ist. Superiore Marini-Gioia - Enzo Exposyto
 
1.3.9 Система металлических листовых лотков S3 Combitech
1.3.9 Система металлических листовых лотков S3 Combitech1.3.9 Система металлических листовых лотков S3 Combitech
1.3.9 Система металлических листовых лотков S3 Combitech
Igor Golovin
 
1 images-tqf
1 images-tqf1 images-tqf
1 images-tqf
Monaser123
 
Swisscoin Business Presentation
Swisscoin Business Presentation Swisscoin Business Presentation
Swisscoin Business Presentation
Happy Tjahyono
 
Earthsoft brief-team building-v1-0
Earthsoft brief-team building-v1-0Earthsoft brief-team building-v1-0
Earthsoft brief-team building-v1-0
EarthSoft Foundation of Guidance - EFG
 
Bishop reproducibility references nov2016
Bishop reproducibility references nov2016Bishop reproducibility references nov2016
Bishop reproducibility references nov2016
Dorothy Bishop
 
0 pp5 1_1
0 pp5 1_10 pp5 1_1
0 pp5 1_1
Monaser123
 
DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016
DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016
DevOps?! That's not my job! - Nathen Harvey, Chef - DevOpsDays Tel Aviv 2016
DevOpsDays Tel Aviv
 
Developing a Rugged Dev Ops Approach to Cloud Security (Updated)
Developing a Rugged Dev Ops Approach to Cloud Security (Updated)Developing a Rugged Dev Ops Approach to Cloud Security (Updated)
Developing a Rugged Dev Ops Approach to Cloud Security (Updated)
Sebastian Taphanel CISSP-ISSEP
 
Configuration Management is Old and Boring
Configuration Management is Old and BoringConfiguration Management is Old and Boring
Configuration Management is Old and Boring
Mandi Walls
 
Continuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesContinuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two Approaches
Ross Snyder
 
Árbol Alemán Galván
Árbol Alemán GalvánÁrbol Alemán Galván
Árbol Alemán Galván
Abiram Jaba
 
Social Media for Small Business | Introduction and Follow Up
Social Media for Small Business | Introduction and Follow UpSocial Media for Small Business | Introduction and Follow Up
Social Media for Small Business | Introduction and Follow Up
Omar Masry, AICP
 
EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...
EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...
EQUAZIONE di TERZO GRADO - NUOVO METODO - ESEMPIO 1 con NUMERI COMPLESSI - CA...
Ist. Superiore Marini-Gioia - Enzo Exposyto
 
1.3.9 Система металлических листовых лотков S3 Combitech
1.3.9 Система металлических листовых лотков S3 Combitech1.3.9 Система металлических листовых лотков S3 Combitech
1.3.9 Система металлических листовых лотков S3 Combitech
Igor Golovin
 
Swisscoin Business Presentation
Swisscoin Business Presentation Swisscoin Business Presentation
Swisscoin Business Presentation
Happy Tjahyono
 
Bishop reproducibility references nov2016
Bishop reproducibility references nov2016Bishop reproducibility references nov2016
Bishop reproducibility references nov2016
Dorothy Bishop
 
Ad

Similar to Compliance Automation with InSpec (20)

Introduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & RemediationIntroduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & Remediation
Nicole Johnson
 
DOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your InfrastructureDOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your Infrastructure
decode2016
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
adamleff
 
Introduction to Cooking with Chef
Introduction to Cooking with ChefIntroduction to Cooking with Chef
Introduction to Cooking with Chef
John Osborne
 
Chef at EIS
Chef at EISChef at EIS
Chef at EIS
carpnick
 
Managing Servers with Chef
Managing Servers with ChefManaging Servers with Chef
Managing Servers with Chef
Joe Kepley
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011
Brian Ritchie
 
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdfSELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
Pallavi Sharma
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
Jennifer Davis
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Robert Greiner
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Software, Inc.
 
Patterns and Practices of a Successful DevOps Transformation
Patterns and Practices of a Successful DevOps TransformationPatterns and Practices of a Successful DevOps Transformation
Patterns and Practices of a Successful DevOps Transformation
Chef
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
Eklove Mohan
 
Zero to Test Driven Infrastructure
Zero to Test Driven Infrastructure Zero to Test Driven Infrastructure
Zero to Test Driven Infrastructure
Mike Rosado, DevOps, CSM®, CASM™
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
Geoff Harcourt
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey
 
Chef onlinuxonpower
Chef onlinuxonpowerChef onlinuxonpower
Chef onlinuxonpower
Moya Brannan
 
IIS Cookbook
IIS CookbookIIS Cookbook
IIS Cookbook
Daniel Sablosky
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
Michaela Murray
 
Introduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & RemediationIntroduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & Remediation
Nicole Johnson
 
DOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your InfrastructureDOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your Infrastructure
decode2016
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
adamleff
 
Introduction to Cooking with Chef
Introduction to Cooking with ChefIntroduction to Cooking with Chef
Introduction to Cooking with Chef
John Osborne
 
Chef at EIS
Chef at EISChef at EIS
Chef at EIS
carpnick
 
Managing Servers with Chef
Managing Servers with ChefManaging Servers with Chef
Managing Servers with Chef
Joe Kepley
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011
Brian Ritchie
 
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdfSELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
Pallavi Sharma
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
Jennifer Davis
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Robert Greiner
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Software, Inc.
 
Patterns and Practices of a Successful DevOps Transformation
Patterns and Practices of a Successful DevOps TransformationPatterns and Practices of a Successful DevOps Transformation
Patterns and Practices of a Successful DevOps Transformation
Chef
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
Eklove Mohan
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
Geoff Harcourt
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey
 
Chef onlinuxonpower
Chef onlinuxonpowerChef onlinuxonpower
Chef onlinuxonpower
Moya Brannan
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
Michaela Murray
 
Ad

More from Nathen Harvey (12)

Accelerate Your DevOps Journey
Accelerate Your DevOps JourneyAccelerate Your DevOps Journey
Accelerate Your DevOps Journey
Nathen Harvey
 
Continuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud BaltimoreContinuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud Baltimore
Nathen Harvey
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize Work
Nathen Harvey
 
Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpec
Nathen Harvey
 
Introduction to Test Kitchen
Introduction to Test KitchenIntroduction to Test Kitchen
Introduction to Test Kitchen
Nathen Harvey
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
Nathen Harvey
 
Testing Terraform
Testing TerraformTesting Terraform
Testing Terraform
Nathen Harvey
 
DevOps Days India Keynote
DevOps Days India KeynoteDevOps Days India Keynote
DevOps Days India Keynote
Nathen Harvey
 
Step AFK: Practical Advice for Career Adavancement
Step AFK: Practical Advice for Career AdavancementStep AFK: Practical Advice for Career Adavancement
Step AFK: Practical Advice for Career Adavancement
Nathen Harvey
 
DevOp with Me!
DevOp with Me!DevOp with Me!
DevOp with Me!
Nathen Harvey
 
Walk This Way - An Introduction to DevOps
Walk This Way - An Introduction to DevOpsWalk This Way - An Introduction to DevOps
Walk This Way - An Introduction to DevOps
Nathen Harvey
 
Mongo db at_customink
Mongo db at_custominkMongo db at_customink
Mongo db at_customink
Nathen Harvey
 
Accelerate Your DevOps Journey
Accelerate Your DevOps JourneyAccelerate Your DevOps Journey
Accelerate Your DevOps Journey
Nathen Harvey
 
Continuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud BaltimoreContinuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud Baltimore
Nathen Harvey
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize Work
Nathen Harvey
 
Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpec
Nathen Harvey
 
Introduction to Test Kitchen
Introduction to Test KitchenIntroduction to Test Kitchen
Introduction to Test Kitchen
Nathen Harvey
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
Nathen Harvey
 
DevOps Days India Keynote
DevOps Days India KeynoteDevOps Days India Keynote
DevOps Days India Keynote
Nathen Harvey
 
Step AFK: Practical Advice for Career Adavancement
Step AFK: Practical Advice for Career AdavancementStep AFK: Practical Advice for Career Adavancement
Step AFK: Practical Advice for Career Adavancement
Nathen Harvey
 
Walk This Way - An Introduction to DevOps
Walk This Way - An Introduction to DevOpsWalk This Way - An Introduction to DevOps
Walk This Way - An Introduction to DevOps
Nathen Harvey
 
Mongo db at_customink
Mongo db at_custominkMongo db at_customink
Mongo db at_customink
Nathen Harvey
 

Recently uploaded (20)

Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 

Compliance Automation with InSpec

  • 1. Compliance Automation with InSpec Learning Lab Nathen Harvey - @nathenharvey
  • 2. Join Slack Team & Channel • http://www.dctechslack.com/ • #devopsdc-meetup #devopsdc-meetup
  • 3. Chef DK - The Chef Development Kit • Definitive tooling for local development of Chef code & Infrastructure as Code development ▪ Validate your Chef code against Chef best practices ▪ Extend with rules to enforce organizational Chef development best practices ▪ Enforce compliance & security practices Foodcritic Test Your “Chef Style” ▪ Validate your Chef code against Ruby best practices ▪ Identify potential Ruby errors Unclosed strings, etc. ▪ Identify style/convention that helps write better code Single quotes vs. double quotes CookStyle Validate your Ruby ▪ Validate your Chef code will run ▪ Testing for more Chef advanced use cases ▪ Useful for regression testing ChefSpec Simulate Chef ▪ Executes your Chef code on an instance or container ▪ Integrates with Cloud and Virtualization providers ▪ Validate your Chef code locally before sharing ▪ Speed development of Chef Cookbooks Test Kitchen Let’s do this (almost) for real ▪ Assert the intention of your Chef code ▪ Verify on live systems that your Chef code produced the correct result ▪ Confirm your Chef code didn’t not produce compliance drift InSpec Verify automation results & ensure compliance FAST INEXPENSIVE TESTING DEEP INTEGRATION TESTING
  • 5. Chef Automate – Node View • View aggregate status of your infrastructure Overall & trend views of converge status Overall & trend views of compliance status Filter & search options • View details of any node Status of converged resources Run List applied to the node Attributes of the node
  • 6. Chef Solo Executes chef-client without relying on a Chef server to provide configuration policies (cookbooks, environments, etc.) https://docs.chef.io/chef_solo.html
  • 7. Chef Solo • Local directory for configuration policy Or a URL from which a .tar.gz file can be downloaded • Node objects stored as a local JSON file • Attribute data stored in a JSON file Local or remote • Does not pull from a Chef Server • Can be configured to send data to a Chef Server
  • 8. Chef Client – Local Mode Local mode is a way to run the chef-client against the chef- repo on a local machine as if it were running against the Chef server. https://docs.chef.io/ctl_chef_client.html#run-in-local-mode
  • 9. Review the set-up tying it all together
  • 11. List contents Berksfile config.json firstname-lastname profiles Berksfile.lock cookbooks nodes ls
  • 13. Audit Cookbook • Install InSpec • Run InSpec profiles • Report results to Chef Compliance or Chef Visibility
  • 14. Compat Resource Cookbook • Adds functionality introduced in the latest chef-client releases to any chef-client from 12.1 onwards. • Includes Custom Resource functionality notification improvements new resources added to core chef • Allows for these new resources in cookbooks without requiring the very latest Chef client release.
  • 15. config.json { "audit": { "collector": "chef-visibility", "inspec_version": "1.15.0", "profiles": [ { "name": "ssh", "path": "/home/chef/profiles/ssh" } ] } } cat config.json
  • 16. Local Profiles profiles/ └── ssh ├── controls │ └── ssh.rb ├── inspec.lock └── inspec.yml 2 directories, 3 files tree profiles
  • 17. Next Steps • Remediate the failing control • Run the audit cookbook to verify the remediation • View the compliant node in Automate
  • 19. Simple SSH Cookbook • A server recipe to manage the sshd_config file • Local test environment configured
  • 20. Remember… • Infrastructure policies need testing ↳ Linting ↳ Static Analysis ↳ Unit Testing ↳ Integration Testing ↳ Compliance Testing "Infrastructure as Code" should be tested like ANY other codebase.
  • 21. Test-Driven Development • Write a test, watch it fail • Write some code • Write and run more tests • Code review • Delivery pipeline to production • Lowered chance of production failure Add a test Run the tests Make a little change Run the tests pass [development continues]fail fail pass pass [development stops]
  • 23. Test-driven Development Add a test Run the tests Make a little change Run the tests pass [development continues]fail fail pass pass [development stops]
  • 24. Test-driven Development Add a test Run the tests Make a little change fail pass
  • 25. Test-driven Development Add a test Run the tests Make a little change Run the tests pass [development continues]fail fail pass pass [development stops]
  • 26. Test-driven Development Add a test Run the tests Make a little change Run the tests pass [development continues]fail fail pass pass [development stops]
  • 27. What’s next? • Test-driven development cycle is complete • Deploy the change
  • 28. Further Resources Where to go for additional help
  • 29. Community Resources • InSpec Website, includes tutorials and docs - http://inspec.io/ • #inspec channel of the Chef Community Slack - http://community-slack.chef.io/ • InSpec category of the Chef Mailing List - https://discourse.chef.io/c/inspec • Compliance Profiles on the Supermarket - https://supermarket.chef.io/tools?type=compliance_profile • Open Source Project - https://github.com/chef/inspec
  • 30. ★ Workshops & Chef Training ★ DevOps Leadership Summit ★ Community Summit ★ Partner Summit ★ Welcome Reception ★ Customer Dinner ★ Analyst Day • Exhibit Hall Open & Sales suites available • chefconf.chef.io • DAY 1 // MAY 22 ★ Keynotes ★ Technical Sessions ★ Happy Hour ★ Game Night ★ Executive Dinner DAY 2 // MAY 23 ★ Keynotes ★ Technical Sessions ★ Awesome Chef Awards ★ Community Celebration DAY 3 // MAY 24 ★ Hackday DAY 4 // MAY 25

Editor's Notes

  • #3: >>> INSTRUCTOR NOTE – Update the slack channel name
  • #4: Definitive tooling for local development of Chef code: Fast inexpensive testing tools: Food Critic Cook Style ChefSpec Deeper integration testing: Test Kitchen Inspec Designed to speed Infrastructure as Code development
  • #8: Describe some of the differences between chef-client and chef-solo Next, we’ll look at our own chef-solo setup
  • #9: Chef Client is local mode acts in a very similar way to chef-solo. The Automate server does not distinguish between chef-solo and chef-client --local-mode
  • #16: Node-specific attributes are specified in a JSON file. These attributes are used by the audit cookbook.
  • #24: Technically, we haven’t written any tests just yet. However, one could argue that a passing ‘kitchen converge’ is, itself, a worthwhile test. By setting up test kitchen we’ve not added a test, run the test, seen the tests pass. But we’re not done so it’s time to restart the loop.
  • #25: Technically, we haven’t written any tests just yet. However, one could argue that a passing ‘kitchen converge’ is, itself, a worthwhile test. By setting up test kitchen we’ve not added a test, run the test, seen the tests pass. But we’re not done so it’s time to restart the loop.
  • #26: Technically, we haven’t written any tests just yet. However, one could argue that a passing ‘kitchen converge’ is, itself, a worthwhile test. By setting up test kitchen we’ve not added a test, run the test, seen the tests pass. But we’re not done so it’s time to restart the loop.
  • #27: We’ve completed the cycle. But are we done?
  • #31: Texas, austin, bathroom law