Vagrant from zero to VM

Preview:

DESCRIPTION

 

Citation preview

Vagrantfrom zero to VM (in seconds)

antonio.pessolano@gmail.com

@apessolano

Chi sonoSysAdmin in ambiente M$ dal 2000 al 2004

Web developer dal 2004 (più o meno)

Senior developer @

More info: http://www.linkedin.com/in/antoniopessolano

Perchè Vagrant?

Prima di tutto...

Qualche anno fa

Oggi

“Keep development, staging and production as similar as possible”

http://12factor.net

Dev/Prod Parity

Problemi principali

• Switchare tra diversi progetti non è semplice

• Il setup dei pacchetti richiesti per ogni progetto non è sempre immediato

• L’ambiente di sviluppo rischia di divergere troppo da quello di produzione

La soluzione?

Installazione

Le fondamenta

Installazionehttps://www.virtualbox.org/wiki/Downloads

Installazionehttp://downloads.vagrantup.com/

1. Seleziono la versione che mi interessa

2. successivamente il sistema operativo

che intendo utilizzare

I componenti

Come funziona?

ProvidersOffrono la possibilità di gestire:

• CPU e RAM

• Networking

• Storage

Dalla versione 1.1.*: Virtualbox, VMWare, AWS, DigitalOcean, ecc.

BoxLo scheletro a partire dal quale Vagrant costruisce le virtual machine.

• Le box sono dipendenti dal provider specificato.

• Meccanismo per limitare il tempo di bootstrap di una VM

vagrant box add [label] [uri]

vagrant box add precise64 http://file.vagrantup.com/precise64.box

ProvisioningPermette di:

• Permette di installare software, modificare le configurazioni.

• Permette di rendere ripetibile e ridistribuibile la VM.

Vagrant offre diverse soluzioni di provisioning. Tra queste: Shell Script, Chef, Puppet, ecc.

Comandi principali

vagrant  box  <command>  <args>

vagrant  box  add  <name>  <url>  [-­‐-­‐provider  provider]vagrant  box  listvagrant  box  remove  <name>  <provider>vagrant  box  repackage  <name>  <provider>

Comandi principalivagrant  up

vagrant  ssh

vagrant  halt

vagrant  suspend

vagrant  destroy

lanciare la macchina virtuale

effettua il login via ssh alla VM

spegne la vm (senza cancellare i file)

Salva lo stato della vm e la spegne. Permette un riavvio più rapido

distrugge completamente la VM eliminando tutti i file

Tutto chiaro?!

Vagrantfile

Andiamo al sodo...

La mia prima VMVagrant.configure("2") do |config|

config.vm.box = "precise64"

config.vm.synced_folder "project", "/vagrant"

config.vm.network :forwarded_port, guest:80, host: 8080

config.vm.provider :virtualbox do |vb|

vb.gui = false

vb.customize ["modifyvm", :id, "--memory", "1024"]

end

config.vm.provision :shell, :path => "provision.sh"

end

https://gist.github.com/apessolano/6360194

Live demo

Facciamo qualcosa?

LinksVagrant: Up and runningMitchel HashimotoO’Reillyhttp://shop.oreilly.com/product/0636920026358.do

Vagrant Docshttp://docs.vagrantup.com/v2/

Vagrant on Twitterhttps://twitter.com/mitchellhhttps://twitter.com/vagrantuphttps://twitter.com/hashicorp

Serviceshttps://puphpet.com/http://rove.io/

Esempihttps://gist.github.com/apessolano/6360194https://gist.github.com/apessolano/6360643https://gist.github.com/apessolano/6360832

Grazie!

antonio.pessolano@gmail.com@apessolano

Antonio Pessolano

Immagini utilizzate:http://www.hashicorp.com/images/blog/a-new-look-for-vagrant/logo-8b7a4912.pnghttp://soloconlamiatesta.files.wordpress.com/2012/10/scimmiapensante.jpghttp://cdn.iovideogioco.com/wp-content/uploads/2009/04/lego.jpghttp://andreazanini.altervista.org/wp-content/uploads/2013/04/auto-in-pezzi-parti-esploso.jpghttp://ilsileno.it/wp-content/uploads/2012/03/stupore.jpghttp://www.pontos-news.gr/files/3_avga_diakosmisi_pasxa_616793647.jpg

Recommended