SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Jenkins User Conference           Herzelia, July 5 2012   #jenkinsconf

                                                          July 5, 2012




                     The Challenge:

                 Testing the oVirt Project
     Eyal Edri
     Software Engineer
     Red Hat Virtualization Management

     2012


                                   1
Jenkins User Conference                                   #jenkinsconf

Agenda                                                    July 5, 2012

 ●   Introduction
 ●   The Problem – How to test a Virtualization project
 ●   The Solution – Integration & Provisioning
 ●   The Building Blocks
      ●   oVirt – the open virtualization project
      ●   Puppet – configuration management
      ●   Foreman – machine life cycle management
 ●   Jenkins job test case
 ●   Videos & screenshots
 ●   Summary
 ●   Q&A


                                          2
Jenkins User Conference                                     #jenkinsconf

Introduction                                                July 5, 2012

 ●   Tired of spending time installing Jenkins slaves all
     day?
 ●   Can't get budget from your manager to buy new hosts?
 ●   Do you sleep in the network room waiting for hosts to
     be installed?
 ●   Does your jenkins environment keep growing ?


       You need a Provisioning
       Framework!



                                 3
Jenkins User Conference                                 #jenkinsconf

The Complexity of testing a virtualization project...   July 5, 2012


   Physical & Virtual
         Servers                     Multiple teams
                                     collaboration and
                                     effort (IT, ENG, QA,
                                     Integration)




                 Hours of manual work
                               4
Jenkins User Conference                                                   #jenkinsconf

Small complexity matrix for testing oVirt/RHEVM                          July 5, 2012


                         OVIRT              RHEVM 3.0            RHEVM 3.1
 Project Version   Ovirt 3.1           RHEVM 3.0              RHEVM 3.1
 Host OS           Fedora 16/17        RHEL 6.2/6.3           RHEL 6.3
 Manager OS        Fedora 16           RHEL 6.2/6.3           RHEL 6.3
 Engine git        gerrit.ovirt.org    rhevm:master           engine:build
 Jboss Version     7.1 AS              5.1.2 EAP              6.0 EAP
 JDK Vesrion       OpenJDK 1.7.0       Sun JDK 6.0            OpenJDK 1.7.0
 Maven Version     3.0.X               2.2.1                  3.0.x
 Vdsm-* rpm        4.9.6-0.63.git258c.. 4.9-112.10.el6.x86_64 4.9.6-6.el6.x86_64
 Libvirt-* rpm     0.9.10-2.fc16       0.9.4-23.el6_2.4       0.9.10-9.el6



                                       5
Jenkins User Conference                             #jenkinsconf

Why bother changing our CI testing framework?       July 5, 2012




 Time Consuming

                                           Costly

                          Error Prone

                                6
Jenkins User Conference                                            #jenkinsconf

The Solution: Framework Introduction                               July 5, 2012


  ●       We combined Foreman, Puppet & oVirt with custom
          python code to build a testing framework for Jenkins.

      ●    Foreman was used for provisioning the hosts or VMs
      ●    Puppet configured hosts with our needed profiles.
      ●    oVirt enabled us to create VMs for running the tests.




                                         7
Jenkins User Conference          #jenkinsconf

Framework: Building Blocks       July 5, 2012




                             8
Jenkins User Conference                                   #jenkinsconf

Puppet: Configuration Management                          July 5, 2012


                Client – Server implementation


                    GIT




  'Adding users', 'installing       Facter produces a profile of
  packages', and 'updating          each host, and makes system
  server configurations'            information available to Puppet
                                    as variables.

                                9
Jenkins User Conference                                   #jenkinsconf

Puppet: Resources                                         July 5, 2012


  ●   The fundamental unit of modeling in Puppet is a resource.
  ●   Resources can be: a file, a service, a package, or
      perhaps even a custom resource that you have developed.




                                  10
Jenkins User Conference                  #jenkinsconf

Foreman: Machine Life Cycle Management   July 5, 2012




                           11
Jenkins User Conference                     #jenkinsconf

oVirt: Create and Manage Virtual Machines   July 5, 2012

 ●   Large scale, centralized
     management solution for server
     and desktop virtualization
 ●   an opensource alternative to
     vCenter/vSphere
 ●   Has multiple APIs:
      ●   Python SDK
      ●   Ruby gem
      ●   Ovirt CLI
      ●   REST




                                      12
Jenkins User Conference                                 #jenkinsconf

Revising the purpose...                                 July 5, 2012


 So what was the goal of this framework...
 To be able to test a complex virtualization project
 in Jenkins with limited resources, time and effort.       v

  And do it in a reproducible and scalable way.


 OK,
 So how do all these projects integrate with Jenkins?




                               13
Jenkins User Conference                                   #jenkinsconf

Jenkins Integration: Foreman Plugin                      July 5, 2012

 ●   You guessed it... ,it had to be a Jenkins plugin.
 ●   A Jenkins Foreman Plugin that will enable any job to
     request a resource (host or vm) with a specific profile.




                                 14
Jenkins User Conference                                  #jenkinsconf

Jenkins Foreman Plugin Mock-up: configure screen         July 5, 2012

 ●   Configure foreman server details in Jenkins.
 ●   All cloud related info will be set inside foreman




                                  15
Jenkins User Conference        #jenkinsconf

Foreman Plugin Mock             July 5, 2012




                           16
Jenkins User Conference                              #jenkinsconf

The Bare (metal) Essentials...                       July 5, 2012

  ●   Foreman 'Physical Hosts Pool Feature'



                                          RESERVED




                                              FREE




                                 17
Jenkins User Conference        #jenkinsconf

Provision Host CLI             July 5, 2012




                          18
Jenkins User Conference                                  #jenkinsconf

Host Pool: show profiles                                July 5, 2012

   ●   Show me the list of available profiles to use (which
       are in fact 'host-groups' in foreman)




                                 19
Jenkins User Conference                                  #jenkinsconf

Framework: Screen-shots – Command Line Interface        July 5, 2012

 ●   Show me the list of available hosts in pool currently
     free for use




                                20
Jenkins User Conference                                #jenkinsconf

Provision Host: show reserved hosts                    July 5, 2012

  ●   Show me the list of reserved hosts in pool currently
      used. (due to job/debug/error/static assignment)




                                21
Jenkins User Conference                                              #jenkinsconf

Framework: Screen-shots – Command Line Interface                     July 5, 2012

 ●   Request 1 host with profile 'P-RHEL63-CANDIDATE'

         Client requests '1' physical host with 'RHEL 6.3' profile

                Foreman finds 'cinteg27' server avaliable


      Foreman applies new profile to the server & start provisioning

                     Client polls foreman for status


                    Client verifies ssh access to host


           Host is ready to use with new profile (RESERVED)

                                     22
Jenkins User Conference                                                                             #jenkinsconf

Example Flow Diagram                                                                                July 5, 2012

       2     Patch is reviewed, verified
             and approved                                       3     merge patch in the ovirt-engine master
           Gerrit code Review                                         branch




                                                                                        Poll SCM




                                                            4       Found new commit -> trigger job A

  oVirt contributor
                          1     Sends a git patch in ovirt-engine for review




                                                          23
Jenkins User Conference            #jenkinsconf

Example Flow Diagram in Jenkins    July 5, 2012
        JOB A              JOB B




                             24
Jenkins User Conference           #jenkinsconf

DEMO                              July 5, 2012


   LIVE DEMO
  ●   Foreman provisioning
  ●   Ovirt UI
  ●   Foreman CLI code




                             25
Jenkins User Conference                  #jenkinsconf

Videos Examples                          July 5, 2012


   Foreman web server provisioning..
  ●   installing webserver via foreman




                               26
Jenkins User Conference              #jenkinsconf

oVirt: How does it look like?        July 5, 2012




                                27
Jenkins User Conference                #jenkinsconf

Framework: Screen-shots - Hosts view   July 5, 2012




                             28
Jenkins User Conference                                 #jenkinsconf

Framework: Screen-shots - Host-group view               July 5, 2012

   Build a host-group by selecting existing puppet classes




                               29
Jenkins User Conference                      #jenkinsconf

Framework: Screen-shots - Hosts Statistics   July 5, 2012




                              30
Jenkins User Conference                                 #jenkinsconf

Present & Future                                        July 5, 2012


  ●   Jenkins Foreman plugin
  ●   Foreman (Jenkins) slaves manager plugin
  ●   Jenkins Custom Testing Plugin
  ●   Control Jenkins jobs via puppet (job as a resource)
  ●   Extending Jenkinsapi python library




                                31
Jenkins User Conference                                         #jenkinsconf

Summary: Join the fun – Contribute!                             July 5, 2012

   ●    You can get into the action and join any of those
        projects, patches are welcome :)


       Foreman                https://github.com/theforeman/foreman

       oVirt                  http://www.ovirt.org/project/community/

   Puppet                     http://www.ovirt.org/project/community/




                                  32
Jenkins User Conference                           #jenkinsconf

Summary: Links                                    July 5, 2012



  ●   http://ovirt.org
  ●   http://theforeman.org
  ●   http://puppetlabs.com/community/overview/
  ●   http://jenkins-ci.org
  ●   https://github.com/eedri/foreman




                               33
Jenkins User Conference        #jenkinsconf

Q&A                            July 5, 2012




      Still awake..? Good!

        Any Questions?




                          34
Jenkins User Conference        #jenkinsconf

Summary: Thanks                July 5, 2012




       Platinum
       Sponsors




       Silver
       Sponsor




                          35
Jenkins User Conference                           #jenkinsconf

Still got questions?                              July 5, 2012




                  Eyal edri
                  eedri@redhat.com


                  irc.freenode.net
                  #ovirt, #theforeman, #jenkins




                              36

Mais conteúdo relacionado

Mais procurados

Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginSatish Prasad
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
The Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch SadogurskyThe Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch Sadogurskyjaxconf
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on KubernetesNeven Cvetković
 
Softsphere - Development for administrators
Softsphere - Development for administratorsSoftsphere - Development for administrators
Softsphere - Development for administratorsBill Buchan
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsJohn Smith
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkinsKohsuke Kawaguchi
 

Mais procurados (8)

Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins Plugin
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
The Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch SadogurskyThe Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch Sadogursky
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on Kubernetes
 
Softsphere - Development for administrators
Softsphere - Development for administratorsSoftsphere - Development for administrators
Softsphere - Development for administrators
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The Basics
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
 

Destaque

oVirt社区最新活跃度
oVirt社区最新活跃度oVirt社区最新活跃度
oVirt社区最新活跃度Li Jiansheng
 
oVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features OverviewoVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features OverviewAllon Mureinik
 
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginoVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginOved Ourfali
 
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)Allon Mureinik
 
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Allon Mureinik
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageSean Cohen
 
oVirt and OpenStack
oVirt and OpenStackoVirt and OpenStack
oVirt and OpenStackDave Neary
 

Destaque (9)

Understand ovirt
Understand ovirtUnderstand ovirt
Understand ovirt
 
Ovirt deep dive
Ovirt deep diveOvirt deep dive
Ovirt deep dive
 
oVirt社区最新活跃度
oVirt社区最新活跃度oVirt社区最新活跃度
oVirt社区最新活跃度
 
oVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features OverviewoVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features Overview
 
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginoVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
 
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
 
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
 
oVirt and OpenStack
oVirt and OpenStackoVirt and OpenStack
oVirt and OpenStack
 

Semelhante a The challenge - testing the oVirt project

JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsXebiaLabs
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkinsmrooney7828
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJulien Carsique
 
Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Vincent Latombe
 
How Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server JenkinsHow Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server JenkinsNuxeo
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DAnton Weiss
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsNigel Charman
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...CloudBees
 
JUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with JenkinsJUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with JenkinsE. Camden Fisher
 
Running productioninstance 1-localcopy
Running productioninstance 1-localcopyRunning productioninstance 1-localcopy
Running productioninstance 1-localcopyCloudBees
 
Containers not just for production nov8
Containers not just for production nov8Containers not just for production nov8
Containers not just for production nov8HARITHA HARI
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew Bayer
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Henri Gomez
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentMax Klymyshyn
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeBrian Dawson
 
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...QAFest
 

Semelhante a The challenge - testing the oVirt project (20)

Jenkins 1
Jenkins 1Jenkins 1
Jenkins 1
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with Jenkins
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkins
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
 
Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014
 
How Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server JenkinsHow Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server Jenkins
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
 
JUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with JenkinsJUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with Jenkins
 
Running productioninstance 1-localcopy
Running productioninstance 1-localcopyRunning productioninstance 1-localcopy
Running productioninstance 1-localcopy
 
Containers not just for production nov8
Containers not just for production nov8Containers not just for production nov8
Containers not just for production nov8
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
 
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
 
Training web @GITS
Training web @GITSTraining web @GITS
Training web @GITS
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic 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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

The challenge - testing the oVirt project

  • 1. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf July 5, 2012 The Challenge: Testing the oVirt Project Eyal Edri Software Engineer Red Hat Virtualization Management 2012 1
  • 2. Jenkins User Conference #jenkinsconf Agenda July 5, 2012 ● Introduction ● The Problem – How to test a Virtualization project ● The Solution – Integration & Provisioning ● The Building Blocks ● oVirt – the open virtualization project ● Puppet – configuration management ● Foreman – machine life cycle management ● Jenkins job test case ● Videos & screenshots ● Summary ● Q&A 2
  • 3. Jenkins User Conference #jenkinsconf Introduction July 5, 2012 ● Tired of spending time installing Jenkins slaves all day? ● Can't get budget from your manager to buy new hosts? ● Do you sleep in the network room waiting for hosts to be installed? ● Does your jenkins environment keep growing ? You need a Provisioning Framework! 3
  • 4. Jenkins User Conference #jenkinsconf The Complexity of testing a virtualization project... July 5, 2012 Physical & Virtual Servers Multiple teams collaboration and effort (IT, ENG, QA, Integration) Hours of manual work 4
  • 5. Jenkins User Conference #jenkinsconf Small complexity matrix for testing oVirt/RHEVM July 5, 2012 OVIRT RHEVM 3.0 RHEVM 3.1 Project Version Ovirt 3.1 RHEVM 3.0 RHEVM 3.1 Host OS Fedora 16/17 RHEL 6.2/6.3 RHEL 6.3 Manager OS Fedora 16 RHEL 6.2/6.3 RHEL 6.3 Engine git gerrit.ovirt.org rhevm:master engine:build Jboss Version 7.1 AS 5.1.2 EAP 6.0 EAP JDK Vesrion OpenJDK 1.7.0 Sun JDK 6.0 OpenJDK 1.7.0 Maven Version 3.0.X 2.2.1 3.0.x Vdsm-* rpm 4.9.6-0.63.git258c.. 4.9-112.10.el6.x86_64 4.9.6-6.el6.x86_64 Libvirt-* rpm 0.9.10-2.fc16 0.9.4-23.el6_2.4 0.9.10-9.el6 5
  • 6. Jenkins User Conference #jenkinsconf Why bother changing our CI testing framework? July 5, 2012 Time Consuming Costly Error Prone 6
  • 7. Jenkins User Conference #jenkinsconf The Solution: Framework Introduction July 5, 2012 ● We combined Foreman, Puppet & oVirt with custom python code to build a testing framework for Jenkins. ● Foreman was used for provisioning the hosts or VMs ● Puppet configured hosts with our needed profiles. ● oVirt enabled us to create VMs for running the tests. 7
  • 8. Jenkins User Conference #jenkinsconf Framework: Building Blocks July 5, 2012 8
  • 9. Jenkins User Conference #jenkinsconf Puppet: Configuration Management July 5, 2012 Client – Server implementation GIT 'Adding users', 'installing Facter produces a profile of packages', and 'updating each host, and makes system server configurations' information available to Puppet as variables. 9
  • 10. Jenkins User Conference #jenkinsconf Puppet: Resources July 5, 2012 ● The fundamental unit of modeling in Puppet is a resource. ● Resources can be: a file, a service, a package, or perhaps even a custom resource that you have developed. 10
  • 11. Jenkins User Conference #jenkinsconf Foreman: Machine Life Cycle Management July 5, 2012 11
  • 12. Jenkins User Conference #jenkinsconf oVirt: Create and Manage Virtual Machines July 5, 2012 ● Large scale, centralized management solution for server and desktop virtualization ● an opensource alternative to vCenter/vSphere ● Has multiple APIs: ● Python SDK ● Ruby gem ● Ovirt CLI ● REST 12
  • 13. Jenkins User Conference #jenkinsconf Revising the purpose... July 5, 2012 So what was the goal of this framework... To be able to test a complex virtualization project in Jenkins with limited resources, time and effort. v And do it in a reproducible and scalable way. OK, So how do all these projects integrate with Jenkins? 13
  • 14. Jenkins User Conference #jenkinsconf Jenkins Integration: Foreman Plugin July 5, 2012 ● You guessed it... ,it had to be a Jenkins plugin. ● A Jenkins Foreman Plugin that will enable any job to request a resource (host or vm) with a specific profile. 14
  • 15. Jenkins User Conference #jenkinsconf Jenkins Foreman Plugin Mock-up: configure screen July 5, 2012 ● Configure foreman server details in Jenkins. ● All cloud related info will be set inside foreman 15
  • 16. Jenkins User Conference #jenkinsconf Foreman Plugin Mock July 5, 2012 16
  • 17. Jenkins User Conference #jenkinsconf The Bare (metal) Essentials... July 5, 2012 ● Foreman 'Physical Hosts Pool Feature' RESERVED FREE 17
  • 18. Jenkins User Conference #jenkinsconf Provision Host CLI July 5, 2012 18
  • 19. Jenkins User Conference #jenkinsconf Host Pool: show profiles July 5, 2012 ● Show me the list of available profiles to use (which are in fact 'host-groups' in foreman) 19
  • 20. Jenkins User Conference #jenkinsconf Framework: Screen-shots – Command Line Interface July 5, 2012 ● Show me the list of available hosts in pool currently free for use 20
  • 21. Jenkins User Conference #jenkinsconf Provision Host: show reserved hosts July 5, 2012 ● Show me the list of reserved hosts in pool currently used. (due to job/debug/error/static assignment) 21
  • 22. Jenkins User Conference #jenkinsconf Framework: Screen-shots – Command Line Interface July 5, 2012 ● Request 1 host with profile 'P-RHEL63-CANDIDATE' Client requests '1' physical host with 'RHEL 6.3' profile Foreman finds 'cinteg27' server avaliable Foreman applies new profile to the server & start provisioning Client polls foreman for status Client verifies ssh access to host Host is ready to use with new profile (RESERVED) 22
  • 23. Jenkins User Conference #jenkinsconf Example Flow Diagram July 5, 2012 2 Patch is reviewed, verified and approved 3 merge patch in the ovirt-engine master Gerrit code Review branch Poll SCM 4 Found new commit -> trigger job A oVirt contributor 1 Sends a git patch in ovirt-engine for review 23
  • 24. Jenkins User Conference #jenkinsconf Example Flow Diagram in Jenkins July 5, 2012 JOB A JOB B 24
  • 25. Jenkins User Conference #jenkinsconf DEMO July 5, 2012 LIVE DEMO ● Foreman provisioning ● Ovirt UI ● Foreman CLI code 25
  • 26. Jenkins User Conference #jenkinsconf Videos Examples July 5, 2012 Foreman web server provisioning.. ● installing webserver via foreman 26
  • 27. Jenkins User Conference #jenkinsconf oVirt: How does it look like? July 5, 2012 27
  • 28. Jenkins User Conference #jenkinsconf Framework: Screen-shots - Hosts view July 5, 2012 28
  • 29. Jenkins User Conference #jenkinsconf Framework: Screen-shots - Host-group view July 5, 2012 Build a host-group by selecting existing puppet classes 29
  • 30. Jenkins User Conference #jenkinsconf Framework: Screen-shots - Hosts Statistics July 5, 2012 30
  • 31. Jenkins User Conference #jenkinsconf Present & Future July 5, 2012 ● Jenkins Foreman plugin ● Foreman (Jenkins) slaves manager plugin ● Jenkins Custom Testing Plugin ● Control Jenkins jobs via puppet (job as a resource) ● Extending Jenkinsapi python library 31
  • 32. Jenkins User Conference #jenkinsconf Summary: Join the fun – Contribute! July 5, 2012 ● You can get into the action and join any of those projects, patches are welcome :) Foreman https://github.com/theforeman/foreman oVirt http://www.ovirt.org/project/community/ Puppet http://www.ovirt.org/project/community/ 32
  • 33. Jenkins User Conference #jenkinsconf Summary: Links July 5, 2012 ● http://ovirt.org ● http://theforeman.org ● http://puppetlabs.com/community/overview/ ● http://jenkins-ci.org ● https://github.com/eedri/foreman 33
  • 34. Jenkins User Conference #jenkinsconf Q&A July 5, 2012 Still awake..? Good! Any Questions? 34
  • 35. Jenkins User Conference #jenkinsconf Summary: Thanks July 5, 2012 Platinum Sponsors Silver Sponsor 35
  • 36. Jenkins User Conference #jenkinsconf Still got questions? July 5, 2012 Eyal edri eedri@redhat.com irc.freenode.net #ovirt, #theforeman, #jenkins 36