SlideShare una empresa de Scribd logo
1 de 11
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	
  

Más contenido relacionado

La actualidad más candente

Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014th0masr
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflowTomas 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 CoffeeSarah Z
 
Fission: Serverless Functions for Kubernetes
Fission: Serverless Functions for KubernetesFission: Serverless Functions for Kubernetes
Fission: Serverless Functions for KubernetesSoam 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 2017Jeff 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 scriptsk88hudson
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016effie mouzeli
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleOrestes Carracedo
 
Provisioning iOS CI Server with Ansible
Provisioning iOS CI Server with AnsibleProvisioning iOS CI Server with Ansible
Provisioning iOS CI Server with AnsibleShashikant 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
 
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 internalsTomas 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 2014Puppet
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013databus.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 PuppetMichael 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 CapybaraHiroshi SHIBATA
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development WorkflowJeffery Smith
 

La actualidad más candente (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 a VMTH Project

Towards Continuous Deployment with Django
Towards Continuous Deployment with DjangoTowards Continuous Deployment with Django
Towards Continuous Deployment with DjangoRoger Barnes
 
Caching with Varnish
Caching with VarnishCaching with Varnish
Caching with Varnishschoefmax
 
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 binOlve 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 PluginYasuharu Nakano
 
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 adventuresFrits 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 MinutesHiroshi 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 ApplicationsStrongback Consulting
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins PipelinesSteffen Gebert
 
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 platformsFederico Michele Facca
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 
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-stepMichelangelo 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 managerTimur 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 MeetupTobias Schneck
 

Similar a 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
 

Último

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Último (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

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