Vagrant - den bästa nyheten sedan skivat bröd
Vagrant är ett verktyg för att på ett smidigt sätt via kommandoraden kunna hantera olika virtuella boxar (Oracle VirtualBox). Vagrant används för att skapa och konfigurera lättviktiga, reproducerbara och portabla utvecklingsmiljöer.
Grundkrav
- VirtualBox – Installation av VirtualBox sker via nedladdning från https://www.virtualbox.org/wiki/Downloads
- Vagrant – Installation av Vagrant sker via Vagrants egen installer eller via följande gem:
$ gem install vagrant
Sätt igång
Då är vi redo att börja. För att skapa en ny virtuell box med Ubuntu 12.04 LTS kör du bara följande kommandon:
$ vagrant box add precise64 http://files.vagrantup.com/precise64.box
$ mkdir -p testenv
$ cd testenv
$ vagrant init precise64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Kommandot på rad 1 laddar ned en färdig box med Ubuntu 12.04 LTS. Denna box namnges till precise64
och kan sedan återanvändas för flera virtuella maskiner. Nedladdning sker endast en gång. Rad 2 och 3 skapar en katalog där din virtuella maskin sparas. Kommandot på rad 4 skapar en så kallad Vagrantfile
som beskriver hur just din box ska konfigureras (bland annat port forwarding). Vagrant själva skriver att:
"A Vagrantfile is to Vagrant as a Makefile is to Make"
Innehållet i vår nyskapade Vagrantfile
ser ut ungefär så här:
Vagrant::Config.run do |config|
# Setup the box
config.vm.box = "precise64"
end
Den katalogen som innehåller Vagrantfile
mappas (per default) upp som en shared folder så din maskin och den virtuella boxen kan dela filer där på ett smidigt sätt.
För att sedan starta vår virtuella server används följande kommando:
$ vagrant up
Och för att koppla upp dig via SSH mot servern körs detta kommando:
$ vagrant ssh
När du kopplat upp dig via SSH kan du accessa dina delade filer i foldern /vagrant
Om du gör förändringar av din virtuella box som du sedan vill återanvända kan du skapa egna paket (boxar) som du senare kan utgå från. Detta sker enkelt via kommandot:
$ vagrant package
Då skapas en box – package.box
– som kan läggas till bland dina befintliga boxar med hjälp av
$ vagrant box add my_box /path/to/package.box
När du känner att du är färdig med din virtuella box kan du använda följande kommando för att stänga ned maskinen (och därmed spara CPU/RAM):
$ vagrant halt
Alternativt, om du bara vill göra en suspend (det går snabbare att starta maskinen senare isf):
$ vagrant suspend
För att starta maskinen efter halt
eller suspend
är det bara att köra:
$ vagrant up
Om du vill ta bort din virtuella box från disken helt och hållet kör du bara kommandot:
$ vagrant destroy
Vagrant erbjuder också stöd för mer avancerade features såsom provisioning mha Chef eller Puppet. Allt detta finns att läsa på Vagrants hemsida.
Så, superenkel hantering av virtuella boxar med hjälp av Vagrant – rekommenderas varmt!
Lathund:
vagrant init
Skapar enVagrantfile
vagrant up
Startar en virtuell boxvagrant halt
Stoppar den virtuella boxenvagrant suspend
Pausar den virtuella boxenvagrant destroy
Stoppar och tar bort den virtuella boxen från diskenvagrant package
Skapar ett nytt box-paket baserat på en befintlig boxvagrant box add my_box /path/to/package.box
Lägger till en ny box-typ (my_box) som pekas ut via path eller HTTPvagrant box list
Listar tillgängliga boxar för din lokala miljö. En lista över boxar nedladdningsbara boxar [finns här](http://www.vagrantbox.es/).