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.

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