SlideShare a Scribd company logo
Beaker 
Cloud Enabled Acceptance Testing
Life is Hard
About Me 
Alice Nodelman 
alice@puppetlabs.com 
anode (freenode #puppet-dev) 
alicenode (twitter) 
anodelman (github)
Beaker, The Onramp to Easy Street 
Flexible Test Construction 
Cloud Enabled 
Pretty Reports
The Tests
Tests in Ruby and Bash 
The value of using a non-proprietary 
programming language.
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
The Beaker DSL 
It’s a Domain Specific Language!
A Few Carefully Selected Examples 
on host, “echo hello” 
install_pe 
install_puppet 
scp_to host, “s.txt”, “d.txt”, :ignore => [‘.git’]
Test Structure DSL Methods 
test_name “I’m a descriptive test name” 
step “This is a step in a test” 
teardown do 
puts “execute this code on test completion” 
end 
fail_test “Uh oh. This test failed” 
pass_test “Woo! This test passed”
Put It all Together
beaker-rspec 
beaker DSL 
+ 
RSpec 
+ 
Serverspec 
= 
beaker-rspec
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
The Cloud 
Who delivers your boxes?
Beaker’s Virtualization Options 
● Amazon Elastic Compute Cloud 
● Google Compute Engine 
● OpenStack 
● Docker 
● Vsphere 
● Fusion 
● Vagrant
Quick Network Overview 
Beaker Coordinator 
Agent 1 
Agent 3 
Agent 2 
Master 
The Cloud 
Home Network
How we use it at Puppet 
Let’s divide up the pie.
The Report 
Card
The Noisy Scroll 
centos-6-64-1 15:41:59$ env PATH="/opt/puppet/bin:${PATH}" RUBYLIB="${RUBYLIB}" puppet agent --configprint vardir 
/var/opt/lib/pe-puppet 
centos-6-64-1 executed in 1.26 seconds 
centos-6-64-1 15:42:01$ [ -e '/var/opt/lib/pe-puppet/state/agent_catalog_run.lock' ] 
centos-6-64-1 executed in 0.04 seconds 
Exited: 1 
centos-6-64-1 15:42:03$ [ -e /etc/init.d/pe-puppet-agent ] 
centos-6-64-1 executed in 0.04 seconds 
Exited: 1 
centos-6-64-1 15:42:03$ env PATH="/opt/puppet/bin:${PATH}" RUBYLIB="${RUBYLIB}" puppet resource service pe-puppet 
ensure=stopped 
Notice: /Service[pe-puppet]/ensure: ensure changed 'running' to 'stopped' 
service { 'pe-puppet': 
ensure => 'stopped', 
}
Not So Pretty 
- Host Configuration Summary - 
- Test Case Summary for suite 'tests' - 
Total Suite Time: 571.58 seconds 
Average Test Time: 4.40 seconds 
Attempted: 130 
Passed: 70 
Failed: 0 
Errored: 0 
Skipped: 60 
Pending: 0 
Total: 130
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Links of Interest 
● Beaker on GitHub 
● Beaker Wiki 
● Beaker Yard Docs at RubyDoc 
● FOSS Puppet Acceptance Tests 
● Example Beaker Report
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Questions Questions

More Related Content

What's hot (19)

PDF
Take control of your Jenkins jobs via job DSL.
Łukasz Proszek
 
PPTX
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
Martin Etmajer
 
PDF
Continuous infrastructure testing
Daniel Paulus
 
PDF
Test driven infrastructure
XPeppers
 
PDF
Puppet loves RSpec, why you should, too
Dennis Rowe
 
PPT
Learn basic ansible using docker
Larry Cai
 
PDF
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Puppet
 
PDF
DevOps(3) : Ansible - (MOSG)
Soshi Nemoto
 
PDF
Preparation study of_docker - (MOSG)
Soshi Nemoto
 
PDF
Ansible not only for Dummies
Łukasz Proszek
 
PDF
Fabric workshop(1) - (MOSG)
Soshi Nemoto
 
PDF
DevOps(4) : Ansible(2) - (MOSG)
Soshi Nemoto
 
PDF
DevOps(2) : Vagrant - (MOSG)
Soshi Nemoto
 
PDF
Making environment for_infrastructure_as_code
Soshi Nemoto
 
PDF
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
Carlos Sanchez
 
PDF
Cookbook testing with KitcenCI and Serverrspec
Daniel Paulus
 
PDF
Getting started with Ansible
Ivan Serdyuk
 
PDF
Instruction: dev environment
Soshi Nemoto
 
PPTX
Vagrant, Ansible, and OpenStack on your laptop
Lorin Hochstein
 
Take control of your Jenkins jobs via job DSL.
Łukasz Proszek
 
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
Martin Etmajer
 
Continuous infrastructure testing
Daniel Paulus
 
Test driven infrastructure
XPeppers
 
Puppet loves RSpec, why you should, too
Dennis Rowe
 
Learn basic ansible using docker
Larry Cai
 
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Puppet
 
DevOps(3) : Ansible - (MOSG)
Soshi Nemoto
 
Preparation study of_docker - (MOSG)
Soshi Nemoto
 
Ansible not only for Dummies
Łukasz Proszek
 
Fabric workshop(1) - (MOSG)
Soshi Nemoto
 
DevOps(4) : Ansible(2) - (MOSG)
Soshi Nemoto
 
DevOps(2) : Vagrant - (MOSG)
Soshi Nemoto
 
Making environment for_infrastructure_as_code
Soshi Nemoto
 
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
Carlos Sanchez
 
Cookbook testing with KitcenCI and Serverrspec
Daniel Paulus
 
Getting started with Ansible
Ivan Serdyuk
 
Instruction: dev environment
Soshi Nemoto
 
Vagrant, Ansible, and OpenStack on your laptop
Lorin Hochstein
 

Similar to Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014 (20)

PDF
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet
 
PPTX
Continuous integration of_puppet_code
Devoteam Revolve
 
PPT
Puppet
csrocks
 
PDF
ContainerCon - Test Driven Infrastructure
Yury Tsarev
 
PDF
SCM Puppet: from an intro to the scaling
Stanislav Osipov
 
KEY
Stanford Hackathon - Puppet Modules
Puppet
 
PDF
20090514 Introducing Puppet To Sasag
garrett honeycutt
 
PDF
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
DECK36
 
PDF
Docker + jenkins in the enterprise (3)
Kurt Madel
 
PDF
Docker and Puppet for Continuous Integration
Giacomo Vacca
 
PPTX
Puppet meetup testing
Phil Zimmerman
 
PDF
Creating a mature puppet system
rkhatibi
 
PDF
Creating a Mature Puppet System
Puppet
 
PDF
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
NETWAYS
 
PDF
Puppet Camp Berlin 2015: Rapid testing Setups for Puppet
Puppet
 
PDF
Writing and Publishing Puppet Modules - PuppetConf 2014
Puppet
 
PDF
Our Puppet Story (Linuxtag 2014)
DECK36
 
PDF
Configuration manager presentation
jeyg
 
PDF
Security Testing Using Infrastructure-As-Code
Vision Concepts Infrastructure Services Solution
 
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet
 
Continuous integration of_puppet_code
Devoteam Revolve
 
Puppet
csrocks
 
ContainerCon - Test Driven Infrastructure
Yury Tsarev
 
SCM Puppet: from an intro to the scaling
Stanislav Osipov
 
Stanford Hackathon - Puppet Modules
Puppet
 
20090514 Introducing Puppet To Sasag
garrett honeycutt
 
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
DECK36
 
Docker + jenkins in the enterprise (3)
Kurt Madel
 
Docker and Puppet for Continuous Integration
Giacomo Vacca
 
Puppet meetup testing
Phil Zimmerman
 
Creating a mature puppet system
rkhatibi
 
Creating a Mature Puppet System
Puppet
 
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
NETWAYS
 
Puppet Camp Berlin 2015: Rapid testing Setups for Puppet
Puppet
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Puppet
 
Our Puppet Story (Linuxtag 2014)
DECK36
 
Configuration manager presentation
jeyg
 
Security Testing Using Infrastructure-As-Code
Vision Concepts Infrastructure Services Solution
 
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
Puppet
 
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
Puppet
 
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Puppet
 
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
Puppet
 
PPTX
Customizing Reporting with the Puppet Report Processor
Puppet
 
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet
 
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppet
 
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet
 
PDF
Puppet camp2021 testing modules and controlrepo
Puppet
 
PPTX
Puppetcamp r10kyaml
Puppet
 
PDF
2021 04-15 operational verification (with notes)
Puppet
 
PPTX
Puppet camp vscode
Puppet
 
PDF
Modules of the twenties
Puppet
 
PDF
Applying Roles and Profiles method to compliance code
Puppet
 
PPTX
KGI compliance as-code approach
Puppet
 
PDF
Enforce compliance policy with model-driven automation
Puppet
 
PDF
Keynote: Puppet camp compliance
Puppet
 
PPTX
Automating it management with Puppet + ServiceNow
Puppet
 
PPTX
Puppet: The best way to harden Windows
Puppet
 
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Puppet Community Day: Planning the Future Together
Puppet
 
The Evolution of Puppet: Key Changes and Modernization Tips
Puppet
 
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Puppet
 
Bolt Dynamic Inventory: Making Puppet Easier
Puppet
 
Customizing Reporting with the Puppet Report Processor
Puppet
 
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet
 
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppet
 
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet
 
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet
 
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Ad

Recently uploaded (20)

PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 

Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014

  • 1. Beaker Cloud Enabled Acceptance Testing
  • 3. About Me Alice Nodelman [email protected] anode (freenode #puppet-dev) alicenode (twitter) anodelman (github)
  • 4. Beaker, The Onramp to Easy Street Flexible Test Construction Cloud Enabled Pretty Reports
  • 6. Tests in Ruby and Bash The value of using a non-proprietary programming language.
  • 8. The Beaker DSL It’s a Domain Specific Language!
  • 9. A Few Carefully Selected Examples on host, “echo hello” install_pe install_puppet scp_to host, “s.txt”, “d.txt”, :ignore => [‘.git’]
  • 10. Test Structure DSL Methods test_name “I’m a descriptive test name” step “This is a step in a test” teardown do puts “execute this code on test completion” end fail_test “Uh oh. This test failed” pass_test “Woo! This test passed”
  • 11. Put It all Together
  • 12. beaker-rspec beaker DSL + RSpec + Serverspec = beaker-rspec
  • 14. The Cloud Who delivers your boxes?
  • 15. Beaker’s Virtualization Options ● Amazon Elastic Compute Cloud ● Google Compute Engine ● OpenStack ● Docker ● Vsphere ● Fusion ● Vagrant
  • 16. Quick Network Overview Beaker Coordinator Agent 1 Agent 3 Agent 2 Master The Cloud Home Network
  • 17. How we use it at Puppet Let’s divide up the pie.
  • 19. The Noisy Scroll centos-6-64-1 15:41:59$ env PATH="/opt/puppet/bin:${PATH}" RUBYLIB="${RUBYLIB}" puppet agent --configprint vardir /var/opt/lib/pe-puppet centos-6-64-1 executed in 1.26 seconds centos-6-64-1 15:42:01$ [ -e '/var/opt/lib/pe-puppet/state/agent_catalog_run.lock' ] centos-6-64-1 executed in 0.04 seconds Exited: 1 centos-6-64-1 15:42:03$ [ -e /etc/init.d/pe-puppet-agent ] centos-6-64-1 executed in 0.04 seconds Exited: 1 centos-6-64-1 15:42:03$ env PATH="/opt/puppet/bin:${PATH}" RUBYLIB="${RUBYLIB}" puppet resource service pe-puppet ensure=stopped Notice: /Service[pe-puppet]/ensure: ensure changed 'running' to 'stopped' service { 'pe-puppet': ensure => 'stopped', }
  • 20. Not So Pretty - Host Configuration Summary - - Test Case Summary for suite 'tests' - Total Suite Time: 571.58 seconds Average Test Time: 4.40 seconds Attempted: 130 Passed: 70 Failed: 0 Errored: 0 Skipped: 60 Pending: 0 Total: 130
  • 25. Links of Interest ● Beaker on GitHub ● Beaker Wiki ● Beaker Yard Docs at RubyDoc ● FOSS Puppet Acceptance Tests ● Example Beaker Report