Vagrant


„Der hygienische raum“




Michal Valoušek@msgre


VMware Fusion


VirtualBox


Minutové představení

Instalace

  1. VirtualBox*www.virtualbox.org
  2. Vagrant — downloads.vagrantup.com





* nebo jiný virtualizační podvozek

Vagrantfile

Vagrantfile



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
end

                    

Produkt příkazu vagrant init precise32 <URL>

Vagrantfile


Nastavení hostname



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.hostname = "tkalcovska-masina"

end

Vagrantfile


Nastavení RAM



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.hostname = "tkalcovska-masina"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "512"]
  end

end
                    

Vagrantfile


Nastavení sítě



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.hostname = "tkalcovska-masina"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "512"]
  end
  config.vm.network :private_network, ip: "192.168.30.12"end
                    

Vagrantfile


Sdílená složka



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.hostname = "tkalcovska-masina"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "512"]
  end
  config.vm.network :private_network, ip: "192.168.30.12"
end

Co je tedy Vagrant?


  • Abstrakce nad virtualizačním „podvozkem“
  • Vagrantfile — vagrant init <name> <url>
  • vagrant up — nastartování mašiny
  • vagrant ssh — přihlášení na mašinu
  • vagrant halt — zastavení mašiny
  • vagrant destroy — zrušení mašiny

Pokročilé techniky

Více mašin

Počítače v počítači, Vagrantfile ve Vagrantfile

Více mašin



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.vm.define "web" do |web|
    web.vm.hostname = "webapp"
    web.vm.network :private_network, ip: "192.168.10.1"
    web.vm.provider :virtualbox do |vb|
        vb.customize ["modifyvm", :id, "--memory", "512"]
    end
  end

  config.vm.define "db" do |db|
    db.vm.hostname = "db"
    db.vm.network :private_network, ip: "192.168.10.2"
  end
end

Ovládání tlupy


vagrant <prikaz> <jmeno-stroje>


  • vagrant up — spustí všechny stroje
  • vagrant ssh web — přihlášení na stroj "web" spustí všechny stroje
  • vagrant halt db — vypnutí mašiny "db" spustí všechny stroje

Provisioning

Provisioning


VirtualBox — „Nastartuj mi Ubuntu s 512 MB RAM.“


VirtualBox + Vagrant + Provisioning — „Nastartuj mi
databázový stroj se vším všudy.“

Provisioning


BASH



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision "shell", path: "script.sh"
end

Provisioning


Chef



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision "chef_solo" do |chef|
    chef.add_recipe "apache"
  end
end

NFS sdílení

NFS sdílení



Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.hostname = "tkalcovska-masina"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "512"]
  end
  config.vm.network :private_network, ip: "192.168.30.12"
  config.vm.synced_folder ".", "/vagrant", nfs: true
end

Pluginy

Pluginy


vagrant plugin install <jmeno>


  • vagrant-hostsupdater
  • vagrant-aws
  • vagrant-salt
  • vagrant-cachier


https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins

Sečteno

Vagrant je kapesní laboratoř.
Zkuste si na něj vzpomenout pokaždé
když potřebujete vyzkoušet novou technologii,
nebo cítíte že by vaše experimenty mohly mít
nechtěné boční efekty.


www.vagrantup.com

www.vagrantbox.es

Díky!




Obrázky použité v prezentaci:

http://rocketdock.com/images/screenshots/Vmware_fusion.png
http://upload.wikimedia.org/wikipedia/commons/d/d5/Virtualbox_logo.png
http://www.hashicorp.com/images/blog/a-new-look-for-vagrant/logo-8b7a4912.png
http://www.vintag.es/2013/03/vintage-photos-of-mini-skirts-behind.html