SlideShare a Scribd company logo
1 of 73
Effective Testing with Ansible and InSpec
Nathen Harvey
Hello!
Nathen Harvey
VP, Community
Development
Chef
@nathenharvey
@nathenharvey
Today’s Journey
• Test Kitchen
• InSpec
• dev-sec.io
@nathenharvey
Why Testing?
• Move fast with a safety net
• Decrease feedback cycles
• Increase confidence
• Prevent regressions
• Scale
@nathenharvey
Types of Testing
• Static analysis
• Unit testing
• Integration testing
• Compliance testing
@nathenharvey
Testing Playbooks
• Write the playbook
• Execute the playbook on a system
• Verify results
@nathenharvey
The Playbook
- name: Updates apt cache
- name: Installs necessary packages
- name: Push future default virtual host configuration
- name: Deploy the configuration management camp website
- name: Activates the virtualhost
- name: Check that the config is valid
- name: Deactivates the default virtualhost
- name: Deactivates the default ssl virtualhost
https://github.com/turkenh/ansible-interactive-tutorial
@nathenharvey
Test Kitchen
@nathenharvey
kitchen create
Test Kitchen
@nathenharvey
kitchen create
kitchen destroy
Test Kitchen
@nathenharvey
kitchen create
kitchen destroy
Test Kitchen
@nathenharvey
kitchen create
kitchen destroy
driver
Test Kitchen
@nathenharvey
kitchen create
kitchen destroy
driver
Test Kitchen
@nathenharvey
The Test Kitchen
driver:
name: vagrant
platforms:
- name: ubuntu-16.04
suites:
- name: default
kitchen create driver
@nathenharvey
https://youtu.be/Warn6p28spA
List Kitchen(s)
@nathenharvey
https://youtu.be/d14Ma-S78QE
Create Kitchen(s)
@nathenharvey
https://youtu.be/CeJ0egGdQe8
Run the Playbook
@nathenharvey
https://youtu.be/pIbLYLp4z68
Verify the Application
@nathenharvey
Workflow
• kitchen create
• ansible-playbook -i hosts sites.yml
• Manually verify the application
kitchen create
kitchen destroy
driver
ansible-playbook
@nathenharvey
kitchen create
kitchen converge
kitchen destroy
driver
provisioner
Test Kitchen
@nathenharvey
Kitchen Provisioner
provisioner:
hosts: test-kitchen
name: ansible_playbook
roles_path: roles
require_ansible_repo: true
ansible_verbose: true
ansible_version: latest
require_chef_for_busser: false
playbook: site.yml
@nathenharvey
https://youtu.be/PRJi4uR2UJI
Kitchen Converge
@nathenharvey
https://youtu.be/pIbLYLp4z68
Manually Verify
@nathenharvey
Workflow
• kitchen converge
• Manually verify the application
kitchen create
kitchen destroy
driver
kitchen converge provisioner
@nathenharvey
InSpec
• Open-source framework
• Infrastructure testing
• Make assertions about state of resources in the infrastructure
@nathenharvey
Verify the Site with InSpec
describe service('apache2') do
it {should be_running }
end
describe port(80) do
it { should be_listening }
end
describe http('http://localhost', enable_remote_worker: true) do
its('status') { should cmp 200 }
its('body') { should match /Configuration Management Camp/ }
end
Test Locally
$ inspec exec /path/to/profile
Test Remotely
$ inspec exec /path/to/profile -i ssh.key -t ssh://me@myhost
@nathenharvey
https://youtu.be/TKQTEhhwS4c
Execute InSpec on Remote Target
Test Remotely
$ inspec exec /path/to/profile -t winrm://me@myhost --password secret
Test Remotely
$ inspec exec /path/to/profile -t docker://3cc8837bb6a8
@nathenharvey
https://youtu.be/6u4j57ksmSU
Using the InSpec Shell
@nathenharvey
InSpec in Test Kitchen
@nathenharvey
https://youtu.be/v8_e9l4p1K8
Kitchen Verify
@nathenharvey
Workflow
• kitchen verify kitchen create
kitchen destroy
driver
kitchen converge provisioner
kitchen verify verifier
@nathenharvey
Compliance Testing
@nathenharvey
@nathenharvey
InSpec to Detect Policy Violations
• InSpec is great for integration testing
• But it can also be used for security or compliance checks
@nathenharvey
https://youtu.be/udomS3XyxQg
Assert telnetd is not installed
Map Documentation to Controls
control 'sox-404.3.5' do
title 'Network Device to Central Auth Encryption'
impact 1.0
desc "
All communication between network devices and
central auth must be encrypted. Our TACACS+ servers
encrypt all the time and the presence of a
pre-shared key proves it."
describe ini('/etc/tac_plus/tac_plus.conf') do
its('key') { should_not be_nil }
end
end
404.3.5:
Communication
between network
devices and central
authentication systems
must be encrypted at
all times.
Share Context
control 'sox-404.3.5' do
title 'Network Device to Central Auth Encryption'
impact 1.0
desc "
All communication between network devices and
central auth must be encrypted. Our TACACS+ servers
encrypt all the time and the presence of a
pre-shared key proves it."
describe ini('/etc/tac_plus/tac_plus.conf') do
its('key') { should_not be_nil }
end
end
404.3.5:
Communication
between network
devices and central
authentication systems
must be encrypted at
all times.
Automate Test Execution
control 'sox-404.3.5' do
title 'Network Device to Central Auth Encryption'
impact 1.0
desc "
All communication between network devices and
central auth must be encrypted. Our TACACS+ servers
encrypt all the time and the presence of a
pre-shared key proves it."
describe ini('/etc/tac_plus/tac_plus.conf') do
its('key') { should_not be_nil }
end
end
404.3.5:
Communication
between network
devices and central
authentication systems
must be encrypted at
all times.
@nathenharvey
dev-sec.io
@nathenharvey
Add Linux Baseline to Test Kitchen
suites:
- name: default
verifier:
inspec_tests:
- test/integration/default
- https://github.com/dev-sec/linux-baseline
@nathenharvey
https://youtu.be/jP704Io0ikU
Kitchen Verify
@nathenharvey
So many failures
• Stop when the build breaks
• We need to get to green
• What is the best way to get the build green?
@nathenharvey
Wrap it up
• Create a TODO list
• One measure of technical debt
• Get to green by commenting out tests?!
@nathenharvey
Wrapper Profile
name: my-linux-baseline
title: InSpec Profile
maintainer: The Authors
copyright: The Authors
copyright_email: you@example.com
license: Apache-2.0
summary: An InSpec Compliance Profile
version: 0.1.0
depends:
- name: linux-baseline
url: https://github.com/dev-sec/linux-baseline/archive/master.tar.gz
@nathenharvey
Wrapper Profile
include_controls 'linux-baseline' do
skip_control 'os-05'
skip_control 'package-08'
skip_control 'sysctl-05'
...
end
@nathenharvey
https://youtu.be/fp7y3Qj7vMk
Kitchen Verify
@nathenharvey
Hardening Playbook
@nathenharvey
https://youtu.be/eosqOmXde-8
Install the Role
@nathenharvey
Add to the Playbook
- hosts: all
become: true
become_user: root
become_method: sudo
roles:
- { role: apache }
- { role: dev-sec.os-hardening }
@nathenharvey
https://youtu.be/RU4T4wIt76g
Apply the new role
@nathenharvey
https://youtu.be/ZVn6i8Kqq_c
Verify
@nathenharvey
https://youtu.be/eMUuODXOymw
How about those skipped controls?
@nathenharvey
https://youtu.be/WDImV9oYQI4
Back to Green
@nathenharvey
One Commit
@nathenharvey
kitchen create
kitchen converge
kitchen verify
kitchen destroy
driver
provisioner
Test Kitchen
kitchen test
@nathenharvey
kitchen create
kitchen converge
kitchen verify
kitchen destroy
driver
provisioner
Test Kitchen
kitchen test
kitchen destroy
@nathenharvey
kitchen create
kitchen converge
kitchen verify
kitchen destroy
driver
provisioner
Test Kitchen
kitchen test
kitchen destroy
kitchen create
@nathenharvey
kitchen create
kitchen converge
kitchen verify
kitchen destroy
driver
provisioner
Test Kitchen
kitchen test
kitchen destroy
kitchen create
kitchen converge
@nathenharvey
kitchen create
kitchen converge
kitchen verify
kitchen destroy
driver
provisioner
Test Kitchen
kitchen test
kitchen destroy
kitchen create
kitchen converge
kitchen verify
@nathenharvey
kitchen create
kitchen converge
kitchen verify
kitchen destroy
driver
provisioner
Test Kitchen
kitchen test
kitchen destroy
kitchen create
kitchen converge
kitchen verify
kitchen destroy
@nathenharvey
https://youtu.be/BbB7lrihWtM
Kitchen Test
PART OF A PROCESS OF CONTINUOUS COMPLIANCE
Scan for
Compliance
Build & Test
Locally
Build & Test
CI/CD Remediate Verify
A SIMPLE EXAMPLE OF AN INSPEC CIS RULE
InSpec
▪ Translate compliance into Code
▪ Clearly express statements of policy
▪ Move risk to build/test from runtime
▪ Find issues early
▪ Write code quickly
▪ Run code anywhere
▪ Inspect machines, data and APIs
Turn security and
compliance into code
control ‘cis-1.4.1’ do
title ‘1.4.1 Enable SELinux in /etc/grub.conf’
desc ‘
Do not disable SELinux and enforcing in your
GRUB configuration. These are important security features that
prevent attackers from escalating their access to your systems.
For reference see …
‘
impact 1.0
expect(grub_conf.param ‘selinux’).to_not eq ‘0’
expect(grub_conf.param ‘enforcing’).to_not eq ‘0’
end
@nathenharvey
Get Started with InSpec
• Install Chef Development Kit - https://downloads.chef.io/chefdk
Test Kitchen
InSpec
• Install Ansible Provisioner
chef gem install kitchen-ansible
• Install Driver Requirements
Vagrant – VirtualBox & Vagrant
Docker – Docker
EC2 – None, but you need an AWS account
@nathenharvey
Use, Share, Contribute!
• dev-sec.io - https://github.com/dev-sec/
• InSpec – https://github.com/chef/inspec
• Supermarket - https://supermarket.chef.io/tools?type=compliance_profile
• Test Kitchen - https://github.com/test-kitchen
• Test Kitchen Ansible Provisioner - https://github.com/neillturner/kitchen-ansible
• Code from this presentation - https://github.com/nathenharvey/testing-ansible-
with-inspec
Join us on Slack
• http://community-slack.chef.io
• #general (for Chef stuff)
• #inspec
• #test-kitchen
The Chef community
believes that diversity is one
of our biggest strengths!
Ansible users are more than
welcome here!
@nathenharvey
InSpec Hacking - Tomorrow
@nathenharvey
Thank You!
Nathen Harvey
VP, Community
Development
Chef
@nathenharvey

More Related Content

What's hot

What's hot (20)

[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
안정적인 서비스 운영 2013.08
안정적인 서비스 운영   2013.08안정적인 서비스 운영   2013.08
안정적인 서비스 운영 2013.08
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
Flagger: Istio Progressive Delivery Operator
Flagger: Istio Progressive Delivery OperatorFlagger: Istio Progressive Delivery Operator
Flagger: Istio Progressive Delivery Operator
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT Industry
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
 
Java Web Form Pendaftaran - JSP
Java Web Form Pendaftaran - JSPJava Web Form Pendaftaran - JSP
Java Web Form Pendaftaran - JSP
 
Github basics
Github basicsGithub basics
Github basics
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 

Similar to Effective Testing with Ansible and InSpec

Test kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholTest kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher Nichol
Devopsdays
 

Similar to Effective Testing with Ansible and InSpec (20)

Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
 
Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpec
 
Introduction to Test Kitchen
Introduction to Test KitchenIntroduction to Test Kitchen
Introduction to Test Kitchen
 
Testing servers like software
Testing servers like softwareTesting servers like software
Testing servers like software
 
Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...
 
What is Test Kitchen
What is Test KitchenWhat is Test Kitchen
What is Test Kitchen
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
 
Lookout-Cucumber-Chef
Lookout-Cucumber-ChefLookout-Cucumber-Chef
Lookout-Cucumber-Chef
 
Revoke-Obfuscation
Revoke-ObfuscationRevoke-Obfuscation
Revoke-Obfuscation
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly Workshop
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
 
Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022
 
Automation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 USAutomation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 US
 
Getting Started with Test-Driven Development at PHPtek 2023
Getting Started with Test-Driven Development at PHPtek 2023Getting Started with Test-Driven Development at PHPtek 2023
Getting Started with Test-Driven Development at PHPtek 2023
 
Test kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholTest kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher Nichol
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
 
Testing programmable infrastructure
Testing programmable infrastructureTesting programmable infrastructure
Testing programmable infrastructure
 
Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...
Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...
Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...
 

More from Nathen Harvey

More from Nathen Harvey (11)

Accelerate Your DevOps Journey
Accelerate Your DevOps JourneyAccelerate Your DevOps Journey
Accelerate Your DevOps Journey
 
Continuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud BaltimoreContinuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud Baltimore
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize Work
 
Testing Terraform
Testing TerraformTesting Terraform
Testing Terraform
 
DevOps Days India Keynote
DevOps Days India KeynoteDevOps Days India Keynote
DevOps Days India Keynote
 
Compliance Automation with InSpec
Compliance Automation with InSpecCompliance Automation with InSpec
Compliance Automation with InSpec
 
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
 
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
 
DevOp with Me!
DevOp with Me!DevOp with Me!
DevOp with Me!
 
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
 
Mongo db at_customink
Mongo db at_custominkMongo db at_customink
Mongo db at_customink
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Effective Testing with Ansible and InSpec

Editor's Notes

  1. https://youtu.be/Warn6p28spA
  2. https://youtu.be/d14Ma-S78QE
  3. https://youtu.be/CeJ0egGdQe8
  4. https://youtu.be/pIbLYLp4z68
  5. https://youtu.be/PRJi4uR2UJI
  6. https://youtu.be/pIbLYLp4z68
  7. https://youtu.be/TKQTEhhwS4c
  8. https://youtu.be/6u4j57ksmSU
  9. https://youtu.be/v8_e9l4p1K8
  10. https://youtu.be/udomS3XyxQg
  11. https://youtu.be/jP704Io0ikU
  12. https://youtu.be/fp7y3Qj7vMk
  13. https://youtu.be/eosqOmXde-8
  14. https://youtu.be/RU4T4wIt76g
  15. https://youtu.be/ZVn6i8Kqq_c
  16. https://youtu.be/eMUuODXOymw
  17. https://youtu.be/WDImV9oYQI4
  18. https://youtu.be/BbB7lrihWtM