Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vagrant: from zero to VM

Vagrant: from zero to VM

Per uno sviluppatore server side la gestione dell'ambiente di sviluppo è un lavoro sempre più complesso: tante dipendenze, troppe configurazioni, troppe diversità tra l'ambiente di sviluppo e quello di produzione.
Vagrant può dare una risposta a tutti questi problemi, facendo diventare l'ambiente di sviluppo parte integrante del progetto, rendendolo ridistribuibile e ripetibile.

Le slide sono state utilizzate durante l'incontro del 28 Agosto organizzato dal PUG Torino.

Avatar for Antonio Pessolano

Antonio Pessolano

August 29, 2013
Tweet

Other Decks in Technology

Transcript

  1. Chi sono SysAdmin in ambiente M$ dal 2000 al 2004

    Web developer dal 2004 (più o meno) Senior developer @ More info: http://www.linkedin.com/in/antoniopessolano
  2. 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
  3. Installazione http://downloads.vagrantup.com/ 1. Seleziono la versione che mi interessa 2.

    successivamente il sistema operativo che intendo utilizzare
  4. Providers Offrono la possibilità di gestire: • CPU e RAM

    • Networking • Storage Dalla versione 1.1.*: Virtualbox, VMWare, AWS, DigitalOcean, ecc.
  5. Box Lo 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
  6. Provisioning Permette 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.
  7. Comandi principali vagrant  box  <command>  <args> vagrant  box  add  <name>

     <url>  [-­‐-­‐provider  provider] vagrant  box  list vagrant  box  remove  <name>  <provider> vagrant  box  repackage  <name>  <provider>
  8. Comandi principali vagrant  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
  9. La mia prima VM Vagrant.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
  10. Links Vagrant: Up and running Mitchel Hashimoto O’Reilly http://shop.oreilly.com/product/0636920026358.do Vagrant

    Docs http://docs.vagrantup.com/v2/ Vagrant on Twitter https://twitter.com/mitchellh https://twitter.com/vagrantup https://twitter.com/hashicorp Services https://puphpet.com/ http://rove.io/ Esempi https://gist.github.com/apessolano/6360194 https://gist.github.com/apessolano/6360643 https://gist.github.com/apessolano/6360832
  11. Grazie! [email protected] @apessolano Antonio Pessolano Immagini utilizzate: http://www.hashicorp.com/images/blog/a-new-look-for-vagrant/logo-8b7a4912.png http://soloconlamiatesta.files.wordpress.com/2012/10/scimmiapensante.jpg http://cdn.iovideogioco.com/wp-content/uploads/2009/04/lego.jpg

    http://andreazanini.altervista.org/wp-content/uploads/2013/04/auto-in-pezzi-parti-esploso.jpg http://ilsileno.it/wp-content/uploads/2012/03/stupore.jpg http://www.pontos-news.gr/files/3_avga_diakosmisi_pasxa_616793647.jpg