SlideShare a Scribd company logo
1 of 10
Utilizing Vagrant in a Continuous
Integration Test Environment
Marc Bejerano
<marc.bejerano@ticketmaster.com>
What is Vagrant?
Vagrant is a virtual machine management utility that
allows for the scripting and distribution of pre-built (or
imaged) operating system VM’s called “boxes”.
• Ease of Management
• Simple Distribution Model
• Easily Scriptable
• Works with any x86-based OS
• Runs on Windows, Mac OS X, and Linux
Aren’t there better ways?
• Shell scripts
• Chef
• Puppet
• Custom management code deployed via SSH
• Ansible
• VMWare ESXi
• Probably many more…
Ease of management
• You can create a Vagrant box as an initial
system image of a working server (or client)
• Via the default SSH forwarding, it is trivial to
send commands to a VM
• Shared folders can be easily configured
• Any of the VM settings can be initialized or
altered through the configuration file
(Vagrantfile)
Simple Distribution Model
• A Vagrant “box” can be deployed locally or
remotely.
• Remote deployments can manage versions
and be upgraded on an as-needed basis
• Central repository of system images (boxes)
make for quick deployment of new virtual
machines
Easily Scriptable
• Initial configuration can be scripted
• Provisioning can be scripted from within the
Vagrantfile or via an external script
• Vagrant maintains a standard method of
communications with the VM through a port-
forwarded SSH connection
• The Vagrantfile (and the vagrant system) is
written in ruby (is this a selling point?)
Works with any x86-based OS
• Can build a Linux VM on Windows
• Can publish the Vagrant box to a Linux server
• Can deploy this box from the remote server to
a Mac OS X server or workstation
• Any combination of the above will also work
• Works with VMWare and Virtualbox
Multi-Platform Support
• Can deploy a Vagrant box that was created on
Windows to a machine running Mac OS X
• Unlike docker, can work with ANY virtual
machine (even non-x86 VM’s)
• Will happily run on any of its supported
platforms
How does Vagrant help me do CI?
• Virtual Machines can be built “on-the-fly”
• Standard “baseline” configurations of entire
operating systems can be deployed into a test
environment
• Multiple versions of the same VM can be
created and all can be configured to
communicate with the others to test failover,
clustering, etc.
Examples
• Ticketmaster developer workstations
– Mirror of current development server
– Automatic synchronization of shared resources
– Ability to modify environment without concern for
the actual development server
• Skytouch
– SOLR
– ZooKeeper
– memcached

More Related Content

What's hot

Containerization - The DevOps Revolution
Containerization - The DevOps RevolutionContainerization - The DevOps Revolution
Containerization - The DevOps Revolution
Yulian Slobodyan
 
OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...
OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...
OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...
OpenNebula Project
 
Bolts Framework
Bolts FrameworkBolts Framework
Bolts Framework
Sokna Ly
 

What's hot (20)

Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
 
Boulder JS meet up presentation for April 16
Boulder JS meet up presentation for April 16Boulder JS meet up presentation for April 16
Boulder JS meet up presentation for April 16
 
Xenserver Networking
Xenserver NetworkingXenserver Networking
Xenserver Networking
 
Containerization - The DevOps Revolution
Containerization - The DevOps RevolutionContainerization - The DevOps Revolution
Containerization - The DevOps Revolution
 
First Step towards WebAssembly with Rust
First Step towards WebAssembly with RustFirst Step towards WebAssembly with Rust
First Step towards WebAssembly with Rust
 
Vm mobility
Vm mobilityVm mobility
Vm mobility
 
New features in OpenNebula 5.4, Jaime Melis
New features in OpenNebula 5.4, Jaime MelisNew features in OpenNebula 5.4, Jaime Melis
New features in OpenNebula 5.4, Jaime Melis
 
Apache Mesos Distributed Computing Talk
Apache Mesos Distributed Computing Talk Apache Mesos Distributed Computing Talk
Apache Mesos Distributed Computing Talk
 
Feature Based Web Development with Bazaar
Feature Based Web Development with BazaarFeature Based Web Development with Bazaar
Feature Based Web Development with Bazaar
 
Virtualization, the cloud enabler
Virtualization, the cloud enablerVirtualization, the cloud enabler
Virtualization, the cloud enabler
 
Membase Lightning Talk Munich on Rails
Membase Lightning Talk Munich on RailsMembase Lightning Talk Munich on Rails
Membase Lightning Talk Munich on Rails
 
Introduction to DVCSes with Mercurial
Introduction to DVCSes with MercurialIntroduction to DVCSes with Mercurial
Introduction to DVCSes with Mercurial
 
20150531 virtualizatino station 2.0 partner's day
20150531 virtualizatino station 2.0 partner's day20150531 virtualizatino station 2.0 partner's day
20150531 virtualizatino station 2.0 partner's day
 
Hyun goo oVirt study - Presentation
Hyun goo oVirt study - PresentationHyun goo oVirt study - Presentation
Hyun goo oVirt study - Presentation
 
OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...
OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...
OpenNebulaConf 2016 - ONEDock: Docker as a hypervisor in ONE by Carlos de Alf...
 
Breaking Down the Barriers through Virtualization - Frank Feldman, Red Hat
Breaking Down the Barriers through Virtualization - Frank Feldman, Red HatBreaking Down the Barriers through Virtualization - Frank Feldman, Red Hat
Breaking Down the Barriers through Virtualization - Frank Feldman, Red Hat
 
Virtual Deep-Dive: Citrix Xen Server
Virtual Deep-Dive: Citrix Xen ServerVirtual Deep-Dive: Citrix Xen Server
Virtual Deep-Dive: Citrix Xen Server
 
Amazon Cloud Overview
Amazon Cloud OverviewAmazon Cloud Overview
Amazon Cloud Overview
 
Bolts Framework
Bolts FrameworkBolts Framework
Bolts Framework
 
[4DEV][Łódź] Michał Szynkiewicz - WildFly Swarm: JavaEE w świecie mikroserwisów
[4DEV][Łódź] Michał Szynkiewicz - WildFly Swarm: JavaEE w świecie mikroserwisów[4DEV][Łódź] Michał Szynkiewicz - WildFly Swarm: JavaEE w świecie mikroserwisów
[4DEV][Łódź] Michał Szynkiewicz - WildFly Swarm: JavaEE w świecie mikroserwisów
 

Viewers also liked

12 05 23 kluwer het nieuwe werken masterclass
12 05 23 kluwer het nieuwe werken masterclass12 05 23 kluwer het nieuwe werken masterclass
12 05 23 kluwer het nieuwe werken masterclass
Peter Van Oevelen
 

Viewers also liked (19)

Solusi diabetes dari alam NEW
Solusi diabetes dari alam NEWSolusi diabetes dari alam NEW
Solusi diabetes dari alam NEW
 
Nieuwsgierig Aagje, Rutger Coucke
Nieuwsgierig Aagje, Rutger CouckeNieuwsgierig Aagje, Rutger Coucke
Nieuwsgierig Aagje, Rutger Coucke
 
Colleyer bross
Colleyer brossColleyer bross
Colleyer bross
 
12 10 19 hr square
12 10 19 hr square12 10 19 hr square
12 10 19 hr square
 
Penyembuh kanker ajaib
Penyembuh kanker ajaibPenyembuh kanker ajaib
Penyembuh kanker ajaib
 
Semana Santa, Rutger Coucke
Semana Santa, Rutger CouckeSemana Santa, Rutger Coucke
Semana Santa, Rutger Coucke
 
Continuous delivery intro by bob small
Continuous delivery intro by bob smallContinuous delivery intro by bob small
Continuous delivery intro by bob small
 
Nutrisi untuk Autis
Nutrisi untuk AutisNutrisi untuk Autis
Nutrisi untuk Autis
 
4life bussines and science
4life bussines and science4life bussines and science
4life bussines and science
 
Notascorte1617
Notascorte1617Notascorte1617
Notascorte1617
 
Tutorial Riset keyword by Arif RH
Tutorial Riset keyword by Arif RHTutorial Riset keyword by Arif RH
Tutorial Riset keyword by Arif RH
 
Tutorial membuat Facebook notes
Tutorial membuat Facebook notesTutorial membuat Facebook notes
Tutorial membuat Facebook notes
 
Kebebasan finansial untuk semua
Kebebasan finansial untuk semuaKebebasan finansial untuk semua
Kebebasan finansial untuk semua
 
Tutorial Membuat dan Optimasi Facebook Fanpage untuk jualan
Tutorial Membuat dan Optimasi Facebook Fanpage untuk jualanTutorial Membuat dan Optimasi Facebook Fanpage untuk jualan
Tutorial Membuat dan Optimasi Facebook Fanpage untuk jualan
 
Ling tien kung
Ling tien kungLing tien kung
Ling tien kung
 
Bimac new year event new working styles
Bimac new year event   new working stylesBimac new year event   new working styles
Bimac new year event new working styles
 
Solusi diabetes dari alam
Solusi diabetes dari alamSolusi diabetes dari alam
Solusi diabetes dari alam
 
12 05 23 kluwer het nieuwe werken masterclass
12 05 23 kluwer het nieuwe werken masterclass12 05 23 kluwer het nieuwe werken masterclass
12 05 23 kluwer het nieuwe werken masterclass
 
Tutorial membuat dan optimasi akun Facebook jualan
Tutorial membuat dan optimasi akun Facebook jualanTutorial membuat dan optimasi akun Facebook jualan
Tutorial membuat dan optimasi akun Facebook jualan
 

Similar to Vagrant for ci

Powering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantPowering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with Vagrant
Coen Jacobs
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
 
Virtualization 101 - DeepDive
Virtualization 101 - DeepDiveVirtualization 101 - DeepDive
Virtualization 101 - DeepDive
Amit Agarwal
 
Virtualization concepts 2.pptx
Virtualization concepts 2.pptxVirtualization concepts 2.pptx
Virtualization concepts 2.pptx
shruti533256
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 

Similar to Vagrant for ci (20)

Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Local development environment through virtualisation
Local development environment through virtualisationLocal development environment through virtualisation
Local development environment through virtualisation
 
Powering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantPowering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with Vagrant
 
Virtual machines and their architecture
Virtual machines and their architectureVirtual machines and their architecture
Virtual machines and their architecture
 
Proxmox for DevOps
Proxmox for DevOpsProxmox for DevOps
Proxmox for DevOps
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
What's new in System Center 2012 R2: Virtual Machine Manager
What's new in System Center 2012 R2: Virtual Machine ManagerWhat's new in System Center 2012 R2: Virtual Machine Manager
What's new in System Center 2012 R2: Virtual Machine Manager
 
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding APIDevoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
 
Virtualization 101 - DeepDive
Virtualization 101 - DeepDiveVirtualization 101 - DeepDive
Virtualization 101 - DeepDive
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Virtualization concepts 2.pptx
Virtualization concepts 2.pptxVirtualization concepts 2.pptx
Virtualization concepts 2.pptx
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
VMUG St Louis - SDN in the Real World
VMUG St Louis - SDN in the Real WorldVMUG St Louis - SDN in the Real World
VMUG St Louis - SDN in the Real World
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
 
Virtual machines and containers
Virtual machines and containersVirtual machines and containers
Virtual machines and containers
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 

Vagrant for ci

  • 1. Utilizing Vagrant in a Continuous Integration Test Environment Marc Bejerano <marc.bejerano@ticketmaster.com>
  • 2. What is Vagrant? Vagrant is a virtual machine management utility that allows for the scripting and distribution of pre-built (or imaged) operating system VM’s called “boxes”. • Ease of Management • Simple Distribution Model • Easily Scriptable • Works with any x86-based OS • Runs on Windows, Mac OS X, and Linux
  • 3. Aren’t there better ways? • Shell scripts • Chef • Puppet • Custom management code deployed via SSH • Ansible • VMWare ESXi • Probably many more…
  • 4. Ease of management • You can create a Vagrant box as an initial system image of a working server (or client) • Via the default SSH forwarding, it is trivial to send commands to a VM • Shared folders can be easily configured • Any of the VM settings can be initialized or altered through the configuration file (Vagrantfile)
  • 5. Simple Distribution Model • A Vagrant “box” can be deployed locally or remotely. • Remote deployments can manage versions and be upgraded on an as-needed basis • Central repository of system images (boxes) make for quick deployment of new virtual machines
  • 6. Easily Scriptable • Initial configuration can be scripted • Provisioning can be scripted from within the Vagrantfile or via an external script • Vagrant maintains a standard method of communications with the VM through a port- forwarded SSH connection • The Vagrantfile (and the vagrant system) is written in ruby (is this a selling point?)
  • 7. Works with any x86-based OS • Can build a Linux VM on Windows • Can publish the Vagrant box to a Linux server • Can deploy this box from the remote server to a Mac OS X server or workstation • Any combination of the above will also work • Works with VMWare and Virtualbox
  • 8. Multi-Platform Support • Can deploy a Vagrant box that was created on Windows to a machine running Mac OS X • Unlike docker, can work with ANY virtual machine (even non-x86 VM’s) • Will happily run on any of its supported platforms
  • 9. How does Vagrant help me do CI? • Virtual Machines can be built “on-the-fly” • Standard “baseline” configurations of entire operating systems can be deployed into a test environment • Multiple versions of the same VM can be created and all can be configured to communicate with the others to test failover, clustering, etc.
  • 10. Examples • Ticketmaster developer workstations – Mirror of current development server – Automatic synchronization of shared resources – Ability to modify environment without concern for the actual development server • Skytouch – SOLR – ZooKeeper – memcached