SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
Vagrant
                              Virtualize your development environment.




Thursday, September 9, 2010
Mitchell Hashimoto
                                  github.com/mitchellh
                                  twitter.com/mitchellh




Thursday, September 9, 2010
$ git clone git://.../website.git
                    ...
                    $ ???WTF!#A@#)!???
                    ...
                    $ script/server
                    ...




Thursday, September 9, 2010
$ git clone git://.../website.git
                    ...
                    $ ???WTF!#A@#)!???
                    ...
                    $ script/server
                    ...




Thursday, September 9, 2010
User space
                                         Browser                   Editor
                                                      Queue                      Other
                              Music                   Server                     Server

            Web                        DB                       App
                                                   IRC                      IM
           Server                     Server                   Server



                                               Operating System




Thursday, September 9, 2010
BIG PROBLEMS




Thursday, September 9, 2010
BIG PROBLEMS
    1. No isolation (Oh sorry, is that Tweetie Server Edition™?)




Thursday, September 9, 2010
BIG PROBLEMS
    1. No isolation (Oh sorry, is that Tweetie Server Edition™?)

    2. Not repeatable (That README ain’t gonna run itself)




Thursday, September 9, 2010
BIG PROBLEMS
    1. No isolation (Oh sorry, is that Tweetie Server Edition™?)

    2. Not repeatable (That README ain’t gonna run itself)

    3. No guarantees (But it works on my computer!!)




Thursday, September 9, 2010
VIRTUALIZATION!

                              EC2, Slicehost, Linode, Xen, KVM, ...




Thursday, September 9, 2010
VIRTUALIZATION!

                              EC2, Slicehost, Linode, Xen, KVM, ...




Thursday, September 9, 2010
User space
                                         Browser                   Editor
                                                      Queue                      Other
                              Music                   Server                     Server

            Web                        DB                       App
                                                   IRC                      IM
           Server                     Server                   Server



                                               Operating System




Thursday, September 9, 2010
User space
                                         Virtualized OS

             Browser          Editor
                                             Web           DB       App
                                            Server        Server   Server

                  IRC          IM



                                       Operating System




Thursday, September 9, 2010
PROBLEMS SOLVED




Thursday, September 9, 2010
PROBLEMS SOLVED
    1. Isolation




Thursday, September 9, 2010
PROBLEMS SOLVED
    1. Isolation

    2. Repeatable




Thursday, September 9, 2010
PROBLEMS SOLVED
    1. Isolation

    2. Repeatable

    3. Guarantees




Thursday, September 9, 2010
BUSINESS BENEFITS




Thursday, September 9, 2010
BUSINESS BENEFITS
    • Lower resource on-boarding time




Thursday, September 9, 2010
BUSINESS BENEFITS
    • Lower resource on-boarding time
    • Version controlled server infrastructure




Thursday, September 9, 2010
BUSINESS BENEFITS
    • Lower resource on-boarding time
    • Version controlled server infrastructure
    • Designers get up and running in minutes




Thursday, September 9, 2010
WHY NOW?
                        (Why haven’t we been doing this all along?)




Thursday, September 9, 2010
WHY NOW?
                        (Why haven’t we been doing this all along?)

     • Big companies have been!




Thursday, September 9, 2010
WHY NOW?
                        (Why haven’t we been doing this all along?)

     • Big companies have been!
     • Only recently possible on local machines




Thursday, September 9, 2010
WHY NOW?
                        (Why haven’t we been doing this all along?)

     • Big companies have been!
     • Only recently possible on local machines
          ๏     Low RAM cost (4 GB standard, 8 GB quickly coming)




Thursday, September 9, 2010
WHY NOW?
                        (Why haven’t we been doing this all along?)

     • Big companies have been!
     • Only recently possible on local machines
          ๏     Low RAM cost (4 GB standard, 8 GB quickly coming)

          ๏     Desktop virtualization API




Thursday, September 9, 2010
Vagrant
                              Virtualize your development environment.




Thursday, September 9, 2010
HIGH LEVEL OVERVIEW
    ‣     Describe environment via versionable Vagrantfile

    ‣     Manage virtual machine lifecycle

    ‣     Share folder from host to guest via NFS

    ‣     Provide SSH access to instance

    ‣     Provision instance using Chef, Puppet, etc.

    ‣     Manage host/guest networking



Thursday, September 9, 2010
Vagrantfile
    • Describes the virtual machine environment in code
          ๏     One per project

          ๏     Commit to version control

          ๏     Pure Ruby - Limitless configuration.




Thursday, September 9, 2010
Vagrantfile
              Vagrant::Config.run do |config|
                config.vm.box = "lucid32"
              end




Thursday, September 9, 2010
Virtual Machine Lifecycle
    ‣     vagrant binary

    ‣     Completely managed from creation to destruction

         ๏     (and creation... and destruction... and creation... and so on!)

                    $         vagrant   up
                    $         vagrant   halt
                    $         vagrant   suspend
                    $         vagrant   destroy
                    $         vagrant   reload
                    $         vagrant   ssh
                    $         vagrant   --help


Thursday, September 9, 2010
Shared Folders via NFS
    ‣     File changes on host are immediately mirrored in the VM

    ‣     Continue using your favorite editor on your machine!

    ‣     By default mounted to /vagrant in VM




Thursday, September 9, 2010
DEMO




Thursday, September 9, 2010
Onto the good stuff...
                                 (let’s make it useful)




Thursday, September 9, 2010
Provisioning
    • Use Chef, Puppet, Bash, etc. to provision your VM
          ๏     Repeatable! (BIG Problem #2, remember?)

          ๏     Use the same tools as production




Thursday, September 9, 2010
Provisioning

              Vagrant::Config.run do |config|
                config.vm.box = "lucid32"
                config.vm.provisioner = :chef_solo
              end




Thursday, September 9, 2010
Networking
    • Assign an IP to your VM
          ๏     Access VM using your own browser




Thursday, September 9, 2010
Networking

              Vagrant::Config.run do |config|
                config.vm.box = "lucid32"
                config.vm.provisioner = :chef_solo
                config.vm.network("33.33.33.10")
              end




Thursday, September 9, 2010
DEMO




Thursday, September 9, 2010
Other stuff...
                              (no demos here, you can experiment)




Thursday, September 9, 2010
Packaging
    • Package built development environments
          ๏     vagrant package

          ๏     Distributable

          ๏     Minimize setup time




Thursday, September 9, 2010
Multi-VM
    • Represent multi-server environments
          ๏     e.g. web + db + utility




Thursday, September 9, 2010
Multi-VM
              Vagrant::Config.run do |config|
                config.vm.define :web do |web|
                  # ...
                end

                config.vm.define :db do |db|
                  # ...
                end
              end




Thursday, September 9, 2010
Rake Integration
    • Use vagrant as a library
          ๏     Invoke command line actions

          ๏     Custom SSH commands




Thursday, September 9, 2010
Rake Integration

              require 'vagrant'

              desc "Restart the web application"
              task :restart do
                env = Vagrant::Environment.load!
                env.ssh.execute do |ssh|
                  ssh.exec!("touch /vagrant/tmp/restart.txt")
                end
              end




Thursday, September 9, 2010
Plugins (0.6)
    • Extend Vagrant using a supported API
    • Add new commands to vagrant binary
    • Add new configuration options
    • Modify existing commands
    • e.g. vagrant rake - Just pass through arguments to rake
          on the VM.




Thursday, September 9, 2010
Review

    • Continue using your existing development tools
    • Run your web app in a VM
    • VM setup file (Vagrantfile) in version control




Thursday, September 9, 2010
LOSE NOTHING. GAIN EVERYTHING.




Thursday, September 9, 2010
Vagrant IN ACTION
                              Virtualize your development environment.




Thursday, September 9, 2010
• Vagrant for all projects since March
    • Around 15 to 20 developers using it all day every day
    • Unexpected: Unique testing not possible before




Thursday, September 9, 2010
• All Rails projects since July on Vagrant
    • Massive reduction in on-boarding difficulty for new hires
    • Looking into using it for Java-based projects in the near future




Thursday, September 9, 2010
• Multi-VM setup (web + db + flash media server)
    • Solved: No easy way to emulate FMS on Mac.
    • Forced devops good practices
    • Example of successful distribution of boxes




Thursday, September 9, 2010
About the Project
    • Current release: 0.5.4
    • Started development in January. First release in March.
    • 0.6 development well under way:
          ๏     179 commits, 226 files changed, 4081 lines added, 5730 lines deleted.

          ๏     Aiming for release in about 4 weeks.

          ๏     Biggest release yet




Thursday, September 9, 2010
Getting Started + More Info
    • Website: vagrantup.com
    • IRC: #vagrant on Freenode
    • Github: http://github.com/mitchellh/vagrant




Thursday, September 9, 2010

Weitere ähnliche Inhalte

Andere mochten auch (8)

Exposicion tic
Exposicion ticExposicion tic
Exposicion tic
 
Henriksen Auto Nyheter Mars 2015
Henriksen Auto Nyheter Mars 2015Henriksen Auto Nyheter Mars 2015
Henriksen Auto Nyheter Mars 2015
 
Teresa alves - selling sickness 2010
Teresa alves -  selling sickness 2010Teresa alves -  selling sickness 2010
Teresa alves - selling sickness 2010
 
Los derechos del niño
Los derechos del niñoLos derechos del niño
Los derechos del niño
 
Formacion para un nuevo estado ipap 2014-
Formacion para un nuevo estado  ipap 2014-Formacion para un nuevo estado  ipap 2014-
Formacion para un nuevo estado ipap 2014-
 
Estamos en el limbo o cloud
Estamos en el limbo o cloudEstamos en el limbo o cloud
Estamos en el limbo o cloud
 
Undergraduate Portfolio
Undergraduate PortfolioUndergraduate Portfolio
Undergraduate Portfolio
 
Presentatie Mercedes-Benz
Presentatie Mercedes-BenzPresentatie Mercedes-Benz
Presentatie Mercedes-Benz
 

Ähnlich wie Vagrant at LA Ruby

Mobile Web App Development
Mobile Web App DevelopmentMobile Web App Development
Mobile Web App Development
Brian LeRoux
 
Mirah & Dubious Talk Ruby|Web 2010
Mirah & Dubious Talk Ruby|Web 2010Mirah & Dubious Talk Ruby|Web 2010
Mirah & Dubious Talk Ruby|Web 2010
baroquebobcat
 
Developing For The Windows Azure Platform
Developing For The Windows Azure PlatformDeveloping For The Windows Azure Platform
Developing For The Windows Azure Platform
drmarcustillett
 
Aegir one drupal to rule them all
Aegir one drupal to rule them allAegir one drupal to rule them all
Aegir one drupal to rule them all
Development Seed
 
BDD and Cucumber at barcampGZ
BDD and Cucumber at barcampGZBDD and Cucumber at barcampGZ
BDD and Cucumber at barcampGZ
leondu
 

Ähnlich wie Vagrant at LA Ruby (20)

Chef in the cloud [dbccg]
Chef in the cloud [dbccg]Chef in the cloud [dbccg]
Chef in the cloud [dbccg]
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web Development
 
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
 
Mobile Web App Development
Mobile Web App DevelopmentMobile Web App Development
Mobile Web App Development
 
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSСупер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
 
Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel Automation
 
The Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to AdobeThe Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to Adobe
 
Mirah & Dubious Talk Ruby|Web 2010
Mirah & Dubious Talk Ruby|Web 2010Mirah & Dubious Talk Ruby|Web 2010
Mirah & Dubious Talk Ruby|Web 2010
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
 
Plone on Amazon EC2
Plone on Amazon EC2Plone on Amazon EC2
Plone on Amazon EC2
 
Developing For The Windows Azure Platform
Developing For The Windows Azure PlatformDeveloping For The Windows Azure Platform
Developing For The Windows Azure Platform
 
Aegir one drupal to rule them all
Aegir one drupal to rule them allAegir one drupal to rule them all
Aegir one drupal to rule them all
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
Linux on System z Disk I/O Performance
Linux on System z Disk I/O PerformanceLinux on System z Disk I/O Performance
Linux on System z Disk I/O Performance
 
Vertically Challenged
Vertically ChallengedVertically Challenged
Vertically Challenged
 
Scaling Django Dc09
Scaling Django Dc09Scaling Django Dc09
Scaling Django Dc09
 
Dojo Mobile
Dojo MobileDojo Mobile
Dojo Mobile
 
HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09
 
How OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
How OpenNTF Open Source Solutions Can Save You Time, Money And Your HairHow OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
How OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
 
BDD and Cucumber at barcampGZ
BDD and Cucumber at barcampGZBDD and Cucumber at barcampGZ
BDD and Cucumber at barcampGZ
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Vagrant at LA Ruby

  • 1. Vagrant Virtualize your development environment. Thursday, September 9, 2010
  • 2. Mitchell Hashimoto github.com/mitchellh twitter.com/mitchellh Thursday, September 9, 2010
  • 3. $ git clone git://.../website.git ... $ ???WTF!#A@#)!??? ... $ script/server ... Thursday, September 9, 2010
  • 4. $ git clone git://.../website.git ... $ ???WTF!#A@#)!??? ... $ script/server ... Thursday, September 9, 2010
  • 5. User space Browser Editor Queue Other Music Server Server Web DB App IRC IM Server Server Server Operating System Thursday, September 9, 2010
  • 7. BIG PROBLEMS 1. No isolation (Oh sorry, is that Tweetie Server Edition™?) Thursday, September 9, 2010
  • 8. BIG PROBLEMS 1. No isolation (Oh sorry, is that Tweetie Server Edition™?) 2. Not repeatable (That README ain’t gonna run itself) Thursday, September 9, 2010
  • 9. BIG PROBLEMS 1. No isolation (Oh sorry, is that Tweetie Server Edition™?) 2. Not repeatable (That README ain’t gonna run itself) 3. No guarantees (But it works on my computer!!) Thursday, September 9, 2010
  • 10. VIRTUALIZATION! EC2, Slicehost, Linode, Xen, KVM, ... Thursday, September 9, 2010
  • 11. VIRTUALIZATION! EC2, Slicehost, Linode, Xen, KVM, ... Thursday, September 9, 2010
  • 12. User space Browser Editor Queue Other Music Server Server Web DB App IRC IM Server Server Server Operating System Thursday, September 9, 2010
  • 13. User space Virtualized OS Browser Editor Web DB App Server Server Server IRC IM Operating System Thursday, September 9, 2010
  • 15. PROBLEMS SOLVED 1. Isolation Thursday, September 9, 2010
  • 16. PROBLEMS SOLVED 1. Isolation 2. Repeatable Thursday, September 9, 2010
  • 17. PROBLEMS SOLVED 1. Isolation 2. Repeatable 3. Guarantees Thursday, September 9, 2010
  • 19. BUSINESS BENEFITS • Lower resource on-boarding time Thursday, September 9, 2010
  • 20. BUSINESS BENEFITS • Lower resource on-boarding time • Version controlled server infrastructure Thursday, September 9, 2010
  • 21. BUSINESS BENEFITS • Lower resource on-boarding time • Version controlled server infrastructure • Designers get up and running in minutes Thursday, September 9, 2010
  • 22. WHY NOW? (Why haven’t we been doing this all along?) Thursday, September 9, 2010
  • 23. WHY NOW? (Why haven’t we been doing this all along?) • Big companies have been! Thursday, September 9, 2010
  • 24. WHY NOW? (Why haven’t we been doing this all along?) • Big companies have been! • Only recently possible on local machines Thursday, September 9, 2010
  • 25. WHY NOW? (Why haven’t we been doing this all along?) • Big companies have been! • Only recently possible on local machines ๏ Low RAM cost (4 GB standard, 8 GB quickly coming) Thursday, September 9, 2010
  • 26. WHY NOW? (Why haven’t we been doing this all along?) • Big companies have been! • Only recently possible on local machines ๏ Low RAM cost (4 GB standard, 8 GB quickly coming) ๏ Desktop virtualization API Thursday, September 9, 2010
  • 27. Vagrant Virtualize your development environment. Thursday, September 9, 2010
  • 28. HIGH LEVEL OVERVIEW ‣ Describe environment via versionable Vagrantfile ‣ Manage virtual machine lifecycle ‣ Share folder from host to guest via NFS ‣ Provide SSH access to instance ‣ Provision instance using Chef, Puppet, etc. ‣ Manage host/guest networking Thursday, September 9, 2010
  • 29. Vagrantfile • Describes the virtual machine environment in code ๏ One per project ๏ Commit to version control ๏ Pure Ruby - Limitless configuration. Thursday, September 9, 2010
  • 30. Vagrantfile Vagrant::Config.run do |config| config.vm.box = "lucid32" end Thursday, September 9, 2010
  • 31. Virtual Machine Lifecycle ‣ vagrant binary ‣ Completely managed from creation to destruction ๏ (and creation... and destruction... and creation... and so on!) $ vagrant up $ vagrant halt $ vagrant suspend $ vagrant destroy $ vagrant reload $ vagrant ssh $ vagrant --help Thursday, September 9, 2010
  • 32. Shared Folders via NFS ‣ File changes on host are immediately mirrored in the VM ‣ Continue using your favorite editor on your machine! ‣ By default mounted to /vagrant in VM Thursday, September 9, 2010
  • 34. Onto the good stuff... (let’s make it useful) Thursday, September 9, 2010
  • 35. Provisioning • Use Chef, Puppet, Bash, etc. to provision your VM ๏ Repeatable! (BIG Problem #2, remember?) ๏ Use the same tools as production Thursday, September 9, 2010
  • 36. Provisioning Vagrant::Config.run do |config| config.vm.box = "lucid32" config.vm.provisioner = :chef_solo end Thursday, September 9, 2010
  • 37. Networking • Assign an IP to your VM ๏ Access VM using your own browser Thursday, September 9, 2010
  • 38. Networking Vagrant::Config.run do |config| config.vm.box = "lucid32" config.vm.provisioner = :chef_solo config.vm.network("33.33.33.10") end Thursday, September 9, 2010
  • 40. Other stuff... (no demos here, you can experiment) Thursday, September 9, 2010
  • 41. Packaging • Package built development environments ๏ vagrant package ๏ Distributable ๏ Minimize setup time Thursday, September 9, 2010
  • 42. Multi-VM • Represent multi-server environments ๏ e.g. web + db + utility Thursday, September 9, 2010
  • 43. Multi-VM Vagrant::Config.run do |config| config.vm.define :web do |web| # ... end config.vm.define :db do |db| # ... end end Thursday, September 9, 2010
  • 44. Rake Integration • Use vagrant as a library ๏ Invoke command line actions ๏ Custom SSH commands Thursday, September 9, 2010
  • 45. Rake Integration require 'vagrant' desc "Restart the web application" task :restart do env = Vagrant::Environment.load! env.ssh.execute do |ssh| ssh.exec!("touch /vagrant/tmp/restart.txt") end end Thursday, September 9, 2010
  • 46. Plugins (0.6) • Extend Vagrant using a supported API • Add new commands to vagrant binary • Add new configuration options • Modify existing commands • e.g. vagrant rake - Just pass through arguments to rake on the VM. Thursday, September 9, 2010
  • 47. Review • Continue using your existing development tools • Run your web app in a VM • VM setup file (Vagrantfile) in version control Thursday, September 9, 2010
  • 48. LOSE NOTHING. GAIN EVERYTHING. Thursday, September 9, 2010
  • 49. Vagrant IN ACTION Virtualize your development environment. Thursday, September 9, 2010
  • 50. • Vagrant for all projects since March • Around 15 to 20 developers using it all day every day • Unexpected: Unique testing not possible before Thursday, September 9, 2010
  • 51. • All Rails projects since July on Vagrant • Massive reduction in on-boarding difficulty for new hires • Looking into using it for Java-based projects in the near future Thursday, September 9, 2010
  • 52. • Multi-VM setup (web + db + flash media server) • Solved: No easy way to emulate FMS on Mac. • Forced devops good practices • Example of successful distribution of boxes Thursday, September 9, 2010
  • 53. About the Project • Current release: 0.5.4 • Started development in January. First release in March. • 0.6 development well under way: ๏ 179 commits, 226 files changed, 4081 lines added, 5730 lines deleted. ๏ Aiming for release in about 4 weeks. ๏ Biggest release yet Thursday, September 9, 2010
  • 54. Getting Started + More Info • Website: vagrantup.com • IRC: #vagrant on Freenode • Github: http://github.com/mitchellh/vagrant Thursday, September 9, 2010