SlideShare a Scribd company logo
Virtual	
  Machine	
  Test	
  Harness	
  (VMTH)	
  
	
  Presented	
  by	
  Ricardo	
  Sanchez	
  (rsanchez.jayhawk@gmail.com)	
  
On	
  behalf	
  of	
  Greg	
  Retkowski	
  (greg@rage.net)	
  
hEps://github.com/gregretkowski/vmth	
  
	
  
SVDevOps	
  Meetup	
  -­‐	
  05/05/11	
  
Agenda	
  

•            Overview	
  
•            Why	
  VMTH?	
  
•            Workflow	
  
•            Tools	
  of	
  the	
  trade	
  
•            Q&A	
  

	
  


5/6/11	
                                       VMTH	
  Project	
           Page	
  2	
  
Overview	
  

•  Unit-­‐test	
  infrastructure	
  automaXon	
  tool	
  
•  Runs	
  against	
  VM	
  running	
  live	
  system	
  image	
  
             •  qemu	
  +	
  centos	
  
•  Integrates	
  with	
  CI	
  (ConXnuous	
  IntegraXon)	
  servers	
  
             •  Triggered	
  a]er	
  every	
  commit	
  
•  VM	
  snapsho^ng	
  to	
  run	
  quickly	
  through	
  test	
  cases	
  
   (the	
  differenXaXng	
  factor	
  of	
  the	
  tool)	
  
5/6/11	
                                        VMTH	
  Project	
              Page	
  3	
  
Why	
  VMTH?	
  

•  Struggling	
  with	
  tesXng	
  puppet	
  configuraXons	
  
             •    “tesXng	
  your	
  configuraXon	
  management	
  is	
  not	
  that	
  common	
  yet”	
  Patrick	
  Debois	
  03/19/2011	
  

•  TesXng	
  CM	
  in	
  producXon	
  is	
  bad	
  (obviously!)	
  
•  AlternaXves?	
  
             •    Vagrant	
  +	
  vbox	
  (more	
  for	
  dev)	
  
             •    Cucumber-­‐nagios	
  (more	
  of	
  a	
  technique,	
  no	
  framework)	
  
             •    Cucumber-­‐puppet	
  (same	
  as	
  above)	
  
             •    Cucumber-­‐vhost	
  (kickstart/cobbler	
  int.,	
  recently	
  updated)	
  
             •    Not	
  many	
  at	
  the	
  moment,	
  IYO	
  (Invent	
  Your	
  Own)	
  

5/6/11	
                                                                     VMTH	
  Project	
  	
                                             Page	
  4	
  
Workflow	
  (Puppet	
  Example)	
  

•        Develop	
  your	
  CM	
  structure/content	
  w/	
  puppet	
  
•        Put	
  CM	
  under	
  version	
  control	
  (e.g.,	
  svn,	
  git)	
  
•        Prepare	
  VM	
  with	
  image	
  
•        Create	
  config	
  for	
  VMTH	
  (yaml-­‐based	
  DSL)	
  and	
  run	
  it	
  
             •  Stages:	
  prep/applying/tesXng/teardown	
  
                 •    prep:	
  prepare	
  system,	
  update	
  pkgs,	
  checkout	
  CM	
  config	
  
                 •    Applying:	
  iniXalize	
  puppet	
  setup,	
  start	
  puppeXzing	
  
                 •    TesXng:	
  run	
  puppet	
  test	
  
                 •    Teardown:	
  cleanup	
  system	
  
•  Analyze	
  results,	
  rinse	
  CM	
  and	
  repeat!	
  
5/6/11	
                                              VMTH	
  Project	
  –	
  SVDevOps	
  Meetup	
        Page	
  5	
  
VMTH	
  output	
  

I, [2011-04-28T05:24:56.063042 #27623] INFO -- : Number of tests run : 60
I, [2011-04-28T05:24:56.063090 #27623] INFO -- : Result of ALL tests: Passed? true
VM Test Harness Results....
Elapsed time to complete testing: 05:16:30
+------------------+------------+------------+----------------+
| Scenario           |   Apply |       Test | Execution Time |
+------------------+------------+------------+----------------+
| 0nulltest        | Passed | Passed |                 00:18:05 |
| analytics         | Passed | Passed |                00:09:56 |
| clientupdate | Passed | Passed |                       00:05:54 |
 …
| weblb            | Passed | Passed |                 00:02:47 |
| websrc            | Passed | Passed |                 00:04:02 |
[05:24:56|greg@xxx:vmth_ol]$

5/6/11	
                                VMTH	
  Project	
                            Page	
  6	
  
Tool:	
  vmth	
  
Usage:	
  vmth	
  [op/ons]	
  
	
  	
  	
  	
  -­‐s,	
  -­‐-­‐service	
  service_name	
  	
  	
  	
  	
  	
  	
  Test	
  this	
  service	
  
	
  	
  	
  	
  -­‐q,	
  -­‐-­‐vmm-­‐cmd-­‐line	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Just	
  output	
  the	
  vm	
  monitor	
  command	
  line	
  and	
  exit	
  
	
  	
  	
  	
  -­‐t,	
  -­‐-­‐console	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Prep	
  a	
  vm	
  and	
  allocate	
  it	
  to	
  a	
  user	
  
	
  	
  	
  	
  -­‐c,	
  -­‐-­‐config-­‐yaml	
  file.yaml	
  	
  	
  	
  	
  	
  The	
  file	
  used	
  to	
  configure	
  the	
  vmth	
  
	
  	
  	
  	
  -­‐d,	
  -­‐-­‐debug	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Run	
  in	
  debugging	
  mode	
  
	
  	
  	
  	
  -­‐n,	
  -­‐-­‐no-­‐vmm	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Run	
  w/o	
  VM	
  management	
  (for	
  dev/debug)	
  
	
  	
  	
  	
  -­‐i	
  /path/to/image.cow	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Specify	
  the	
  vm	
  disk	
  image	
  file	
  
	
  	
  	
  	
  	
  	
  	
  	
  -­‐-­‐image-­‐file	
  
	
  	
  	
  	
  -­‐y,	
  -­‐-­‐yaml	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Output	
  Yaml	
  instead	
  of	
  formaPed	
  text	
  
	
  	
  	
  	
  -­‐e	
  /path/to/scenarios	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Specify	
  the	
  scenarios	
  list	
  file	
  
	
  	
  	
  	
  	
  	
  	
  	
  -­‐-­‐scenarios-­‐file	
  
	
  	
  	
  	
  -­‐o,	
  -­‐-­‐output-­‐file	
  output.yaml	
  	
  	
  	
  Output	
  results	
  to	
  a	
  yaml	
  file	
  
	
  	
  	
  	
  -­‐p	
  /path/to/your/source/dir	
  	
  	
  	
  	
  	
  Path	
  to	
  your	
  source	
  directory	
  
	
  	
  	
  	
  	
  	
  	
  	
  -­‐-­‐path	
  
	
  	
  	
  	
  -­‐h,	
  -­‐?	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Show	
  this	
  message	
  

# sudo vmth -e testable_services.txt -i /data/greg-test.cow
          -p /home/greg/puppet -c testpup26.yaml -d -o testpup26.output.yaml
5/6/11	
                                                                                                                       VMTH	
  Project	
                                                       Page	
  7	
  
Tool:	
  virb	
  

•  virb	
  (vmth	
  interacXve	
  tool)	
  
             •  Debug	
  and	
  browse	
  through	
  results	
  




5/6/11	
                                        VMTH	
  Project	
                 Page	
  8	
  
Resources	
  

•  hEps://github.com/gregretkowski/vmth	
  
•  hEp://rubygems.org/gems/vmth	
  
•  Contact:	
  greg@rage.net	
  




5/6/11	
                 VMTH	
  Project	
               Page	
  9	
  
We	
  are	
  hiring…	
  
hEp://www.onlive.com/corporate/careers	
  
Thanks!	
  
Q&A	
  

More Related Content

What's hot

Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
th0masr
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflow
Tomas Doran
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
Sarah Z
 
Fission: Serverless Functions for Kubernetes
Fission: Serverless Functions for KubernetesFission: Serverless Functions for Kubernetes
Fission: Serverless Functions for Kubernetes
Soam Vasani
 
OpenNebulaconf2017US: Rapid scaling of research computing to over 70,000 cor...
OpenNebulaconf2017US:  Rapid scaling of research computing to over 70,000 cor...OpenNebulaconf2017US:  Rapid scaling of research computing to over 70,000 cor...
OpenNebulaconf2017US: Rapid scaling of research computing to over 70,000 cor...
OpenNebula Project
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
Jeff Geerling
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Idan Tohami
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
k88hudson
 
One
OneOne
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
effie mouzeli
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
Orestes Carracedo
 
Provisioning iOS CI Server with Ansible
Provisioning iOS CI Server with AnsibleProvisioning iOS CI Server with Ansible
Provisioning iOS CI Server with Ansible
Shashikant Jagtap
 
An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony
Roel Sint
 
Noit ocon-2010
Noit ocon-2010Noit ocon-2010
Noit ocon-2010
Theo Schlossnagle
 
Dockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internalsDockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internals
Tomas Doran
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
databus.pro
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
Michael Lessard
 
Leave end-to-end testing to Capybara
Leave end-to-end testing to CapybaraLeave end-to-end testing to Capybara
Leave end-to-end testing to Capybara
Hiroshi SHIBATA
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development Workflow
Jeffery Smith
 

What's hot (20)

Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflow
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
Fission: Serverless Functions for Kubernetes
Fission: Serverless Functions for KubernetesFission: Serverless Functions for Kubernetes
Fission: Serverless Functions for Kubernetes
 
OpenNebulaconf2017US: Rapid scaling of research computing to over 70,000 cor...
OpenNebulaconf2017US:  Rapid scaling of research computing to over 70,000 cor...OpenNebulaconf2017US:  Rapid scaling of research computing to over 70,000 cor...
OpenNebulaconf2017US: Rapid scaling of research computing to over 70,000 cor...
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
 
One
OneOne
One
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
Provisioning iOS CI Server with Ansible
Provisioning iOS CI Server with AnsibleProvisioning iOS CI Server with Ansible
Provisioning iOS CI Server with Ansible
 
An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony
 
Noit ocon-2010
Noit ocon-2010Noit ocon-2010
Noit ocon-2010
 
Dockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internalsDockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internals
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
Leave end-to-end testing to Capybara
Leave end-to-end testing to CapybaraLeave end-to-end testing to Capybara
Leave end-to-end testing to Capybara
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development Workflow
 

Similar to VMTH Project

Towards Continuous Deployment with Django
Towards Continuous Deployment with DjangoTowards Continuous Deployment with Django
Towards Continuous Deployment with Django
Roger Barnes
 
Caching with Varnish
Caching with VarnishCaching with Varnish
Caching with Varnish
schoefmax
 
Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)
Peter Bittner
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx PluginGr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Yasuharu Nakano
 
Test driving-qml
Test driving-qmlTest driving-qml
Test driving-qml
Artem Marchenko
 
Moving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventures
Frits Van Der Holst
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
Hiroshi SHIBATA
 
Containers explained as for cook and a mecanics
 Containers explained as for cook and a mecanics  Containers explained as for cook and a mecanics
Containers explained as for cook and a mecanics
Rachid Zarouali
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS Applications
Strongback Consulting
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
Steffen Gebert
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
itkosmopolit
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
Federico Michele Facca
 
PROCESS WARP
PROCESS WARPPROCESS WARP
PROCESS WARP
祐司 伊藤
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
orkaplan
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
Brian Brazil
 
Continuous Integration Step-by-step
Continuous Integration Step-by-stepContinuous Integration Step-by-step
Continuous Integration Step-by-step
Michelangelo van Dam
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
Amazon Web Services
 
Implementation of community package manager
Implementation of community package managerImplementation of community package manager
Implementation of community package manager
Timur Safin
 
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group MeetupOpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
Tobias Schneck
 

Similar to VMTH Project (20)

Towards Continuous Deployment with Django
Towards Continuous Deployment with DjangoTowards Continuous Deployment with Django
Towards Continuous Deployment with Django
 
Caching with Varnish
Caching with VarnishCaching with Varnish
Caching with Varnish
 
Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx PluginGr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
 
Test driving-qml
Test driving-qmlTest driving-qml
Test driving-qml
 
Moving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventures
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
Containers explained as for cook and a mecanics
 Containers explained as for cook and a mecanics  Containers explained as for cook and a mecanics
Containers explained as for cook and a mecanics
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS Applications
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 
PROCESS WARP
PROCESS WARPPROCESS WARP
PROCESS WARP
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 
Continuous Integration Step-by-step
Continuous Integration Step-by-stepContinuous Integration Step-by-step
Continuous Integration Step-by-step
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Implementation of community package manager
Implementation of community package managerImplementation of community package manager
Implementation of community package manager
 
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group MeetupOpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
 

Recently uploaded

RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 

Recently uploaded (20)

RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 

VMTH Project

  • 1. Virtual  Machine  Test  Harness  (VMTH)    Presented  by  Ricardo  Sanchez  (rsanchez.jayhawk@gmail.com)   On  behalf  of  Greg  Retkowski  (greg@rage.net)   hEps://github.com/gregretkowski/vmth     SVDevOps  Meetup  -­‐  05/05/11  
  • 2. Agenda   •  Overview   •  Why  VMTH?   •  Workflow   •  Tools  of  the  trade   •  Q&A     5/6/11   VMTH  Project   Page  2  
  • 3. Overview   •  Unit-­‐test  infrastructure  automaXon  tool   •  Runs  against  VM  running  live  system  image   •  qemu  +  centos   •  Integrates  with  CI  (ConXnuous  IntegraXon)  servers   •  Triggered  a]er  every  commit   •  VM  snapsho^ng  to  run  quickly  through  test  cases   (the  differenXaXng  factor  of  the  tool)   5/6/11   VMTH  Project   Page  3  
  • 4. Why  VMTH?   •  Struggling  with  tesXng  puppet  configuraXons   •  “tesXng  your  configuraXon  management  is  not  that  common  yet”  Patrick  Debois  03/19/2011   •  TesXng  CM  in  producXon  is  bad  (obviously!)   •  AlternaXves?   •  Vagrant  +  vbox  (more  for  dev)   •  Cucumber-­‐nagios  (more  of  a  technique,  no  framework)   •  Cucumber-­‐puppet  (same  as  above)   •  Cucumber-­‐vhost  (kickstart/cobbler  int.,  recently  updated)   •  Not  many  at  the  moment,  IYO  (Invent  Your  Own)   5/6/11   VMTH  Project     Page  4  
  • 5. Workflow  (Puppet  Example)   •  Develop  your  CM  structure/content  w/  puppet   •  Put  CM  under  version  control  (e.g.,  svn,  git)   •  Prepare  VM  with  image   •  Create  config  for  VMTH  (yaml-­‐based  DSL)  and  run  it   •  Stages:  prep/applying/tesXng/teardown   •  prep:  prepare  system,  update  pkgs,  checkout  CM  config   •  Applying:  iniXalize  puppet  setup,  start  puppeXzing   •  TesXng:  run  puppet  test   •  Teardown:  cleanup  system   •  Analyze  results,  rinse  CM  and  repeat!   5/6/11   VMTH  Project  –  SVDevOps  Meetup   Page  5  
  • 6. VMTH  output   I, [2011-04-28T05:24:56.063042 #27623] INFO -- : Number of tests run : 60 I, [2011-04-28T05:24:56.063090 #27623] INFO -- : Result of ALL tests: Passed? true VM Test Harness Results.... Elapsed time to complete testing: 05:16:30 +------------------+------------+------------+----------------+ | Scenario | Apply | Test | Execution Time | +------------------+------------+------------+----------------+ | 0nulltest | Passed | Passed | 00:18:05 | | analytics | Passed | Passed | 00:09:56 | | clientupdate | Passed | Passed | 00:05:54 | … | weblb | Passed | Passed | 00:02:47 | | websrc | Passed | Passed | 00:04:02 | [05:24:56|greg@xxx:vmth_ol]$ 5/6/11   VMTH  Project   Page  6  
  • 7. Tool:  vmth   Usage:  vmth  [op/ons]          -­‐s,  -­‐-­‐service  service_name              Test  this  service          -­‐q,  -­‐-­‐vmm-­‐cmd-­‐line                              Just  output  the  vm  monitor  command  line  and  exit          -­‐t,  -­‐-­‐console                                        Prep  a  vm  and  allocate  it  to  a  user          -­‐c,  -­‐-­‐config-­‐yaml  file.yaml            The  file  used  to  configure  the  vmth          -­‐d,  -­‐-­‐debug                                            Run  in  debugging  mode          -­‐n,  -­‐-­‐no-­‐vmm                                          Run  w/o  VM  management  (for  dev/debug)          -­‐i  /path/to/image.cow                        Specify  the  vm  disk  image  file                  -­‐-­‐image-­‐file          -­‐y,  -­‐-­‐yaml                                              Output  Yaml  instead  of  formaPed  text          -­‐e  /path/to/scenarios                        Specify  the  scenarios  list  file                  -­‐-­‐scenarios-­‐file          -­‐o,  -­‐-­‐output-­‐file  output.yaml        Output  results  to  a  yaml  file          -­‐p  /path/to/your/source/dir            Path  to  your  source  directory                  -­‐-­‐path          -­‐h,  -­‐?                                                      Show  this  message   # sudo vmth -e testable_services.txt -i /data/greg-test.cow -p /home/greg/puppet -c testpup26.yaml -d -o testpup26.output.yaml 5/6/11   VMTH  Project   Page  7  
  • 8. Tool:  virb   •  virb  (vmth  interacXve  tool)   •  Debug  and  browse  through  results   5/6/11   VMTH  Project   Page  8  
  • 9. Resources   •  hEps://github.com/gregretkowski/vmth   •  hEp://rubygems.org/gems/vmth   •  Contact:  greg@rage.net   5/6/11   VMTH  Project   Page  9  
  • 10. We  are  hiring…   hEp://www.onlive.com/corporate/careers