SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Vagrant para automatizar entornos DEV/PRO
Vagrant + Chef Solo + [VirtualBox, vSphere]
@javier_jeronimo
Objetivos
● Entorno desarrollo = entorno producción
○ Mismo SO
○ Mismas herramientas, bibliotecas, versiones...

● Automatizar entornos
○ Poder destruir y re-generar desde cero
○ Sólo esto asegura DEV=PRO

● Control de versiones para todo
● Gestión de dependencias automática
Vagrant
Gestión de máquinas virtuales desde línea de
comandos:
● vagrant up
● vagrant halt
● vagrant ssh
vagrant up => un sólo comando por primera
vez y la máquina estará lista y en ejecución
Vagrant - Conceptos

1.

Definición
Vagrant - Conceptos (1)
Definición de la máquina virtual
● Carpeta conteniendo un Vagrantfile
● ID de la “caja” base (box). Ej: precise64
● URL de la caja (descarga y cache local)
○ ¡Cuidado con cajas con mismo ID!

● Configuración VM: IP, puertos, etc
● Sintaxis del fichero: Ruby DSL
Vagrant - Conceptos (1)
Vagrant::Config.run do |config| # v1
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Boot with a GUI so you can see the screen. (Default is headless)
# config.vm.boot_mode = :gui
#
#
#
#

Assign this VM to a bridged network, allowing you to connect directly to a
network using the host's network device. This makes the VM appear as another
physical device on your network.
config.vm.network :bridged

# Forward a port from the guest to the host, which allows for outside
# computers to access the VM, whereas host only networking does not.
# config.vm.forward_port 80, 8080
[...]
Vagrant - Conceptos

2.

Proveedor
Vagrant - Conceptos (2)
Proveedor (provider) de la máquina:
● ¿Qué es? => Quien finalmente la ejecuta
Proveedores:
● VirtualBox (incluido en Vagrant)
● VMWare, de pago (Workstation, Fusion)
● Otros mediante plugins: AWS, vSphere, etc.
Vagrant - Conceptos

3.

Aprovisionador
Vagrant - Conceptos (3)
Aprovisionador (provisioner):
● Prepara la máquina: instala paquetes,
configura usuarios, etc.
● Varios disponibles:
○
○
○
○

Shell script
Puppet
Chef Solo
...
Vagrant - Plugins
● Proveedores. Ej: Añadir soporte para AWS,
vSphere, OpenStack, Parallels, ...
● Aprovisionadores. Ej:
○ Chef: gestionar dependencias con Berkshelf o
Librarian, actualizar con OmniBus, …
○ Puppet: gestionar dependencias con Librarian
○ Otros: añadir soporte para Fabric, ...

● Otros. Ej: exec, screenshot, ...
Vagrant - Gestión configuración
Caja base: ID + URL

Vagrantfile

Recetas a ejecutar +
parámetros JSON

1
3
2

Berksfile

./cookbooks/*

./databags/*
Gestión de
configuración de las
recetas Chef

URL-de-la-caja

./roles/*

Proveedor
VirtualBox
(instalación local)
vSphere (servidor)
Vagrant - Diferentes entornos
Desarrollo:
● VirtualBox
● Detalles:
○ Redes host-guest,
guest-guest
○ DNS en /etc/hosts

● Entorno aislado en
ordenador

Producción:
● VMware vSphere
● Detalles:
○ Red virtualizada en
CPD
○ DNS por servidor

● Entorno CPD
virtualizado
Vagrant - Gestión configuración
Repositorio:
●
●
●
●

●

●

●
●

cookbooks/
databags/
roles/
boxes/
○ vsphere.box <== (caja vacía: sólo metadatos provider)
○ precise64_virtualbox.box<== (VirtualBox VM: disco duro con datos, definición...)
production/
○ server01/
■ Vagrantfile <== (provider=vSphere, box=vsphere.box)
■ Berksfile <== (gestión de dependencias Chef)
development/
○ server01/
■ Vagrantfile <== (provider=VirtualBox, box=precise64_virtualbox.box)
■ Berksfile <== (gestión de dependencias Chef)
Gemfile <== (gestión de dependencias Ruby)
plugins.json <== (gestión de dependencias: plugins Vagrant)
Vagrant - Entorno desarrollo
web.example.com
sql.example.com
tasks.example.com
...

VirtualBox: VMs

Ordenador
Ingeniero SW

Red virtual

Red virtual

Red virtual

Red virtual
Vagrant - Entorno desarrollo
Chef-Solo

6

Instalación de la máquina
virtual: recetas, datos...
Plugin: Chef OmniBus installer

5
5
4

4
CLI
Virtualbox

6

VM Boot + configuración
básica: IP, puertos, carpetas
compartidas, ...

2

3
Plugin: Berkshelf

incluido en
vagrant

CLI
2

Creación de la máquina
virtual

Vagrant

1

Descarga y cache local
de la caja: *_virtualbox

3
1
Vagrant - Entorno producción
web.example.com
sql.example.com
tasks.example.com
...

Ordenador
Ingeniero SW

Servidor vSphere ESXi
Vagrant - Entorno producción
Chef-Solo

7

Instalación de la máquina
virtual: recetas, datos...
Plugin: Chef OmniBus installer

6
1

vSphere
plugin vagrant

VM Boot + configuración
5 básica: IP, puertos, carpetas
API compartidas, ...
Plugin: Berkshelf
API
Creación de la máquina
3
virtual: template + spec
2

Creación: template +
customization spec

1

Descarga de una
máquina VMWare

vSphere

6

7
2

4
5

3

4
Objetivos
● Entorno desarrollo = entorno producción
○ Distinta máquina: IPs, VirtualBox vs vSphere...
○ Mismas recetas Chef: gestión de configuración

● Automatizar entornos
○ vagrant up / vagrant provision / vagrant destroy

● Control de versiones para todo
● Gestión de dependencias automática
○ Bundler (Gemfile), Berkshelf (Berksfile +
cookbooks/*/metadata.rb)
Referencias
Vagrant - Plugins: https://github.
com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins
Vagrant - Cajas: http://www.vagrantbox.es/
Berkshelf: http://berkshelf.com
vSphere - Templates: http://goo.gl/H8jdxQ
vSphere - Customization specs: http://goo.gl/OUVcTo

Mais conteúdo relacionado

Mais procurados

Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
Any Saula
 

Mais procurados (20)

Vagrant
VagrantVagrant
Vagrant
 
MythTV Mediacenter on an IGEPv2
MythTV Mediacenter on an IGEPv2 MythTV Mediacenter on an IGEPv2
MythTV Mediacenter on an IGEPv2
 
Una introducción a vagrant
Una introducción a vagrantUna introducción a vagrant
Una introducción a vagrant
 
Cloud Computing. Gestión de configuraciones. Ansible
Cloud Computing. Gestión de configuraciones. AnsibleCloud Computing. Gestión de configuraciones. Ansible
Cloud Computing. Gestión de configuraciones. Ansible
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Cloud Computing. Virtualización. qemu
Cloud Computing. Virtualización. qemuCloud Computing. Virtualización. qemu
Cloud Computing. Virtualización. qemu
 
Cloud Computing. Gestión de configuraciones. Vagrant
Cloud Computing. Gestión de configuraciones. VagrantCloud Computing. Gestión de configuraciones. Vagrant
Cloud Computing. Gestión de configuraciones. Vagrant
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
 
Armitage pruebas
Armitage pruebasArmitage pruebas
Armitage pruebas
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
 
Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...
Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...
Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...
 
Cloud Computing. Virtualización
Cloud Computing. VirtualizaciónCloud Computing. Virtualización
Cloud Computing. Virtualización
 
Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
Introducción a Ansible
Introducción a AnsibleIntroducción a Ansible
Introducción a Ansible
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Dev ops infraestructura agil con open source
Dev ops   infraestructura agil con open sourceDev ops   infraestructura agil con open source
Dev ops infraestructura agil con open source
 

Destaque

Curso puppet lenguaje_2
Curso puppet lenguaje_2Curso puppet lenguaje_2
Curso puppet lenguaje_2
martacdehesa
 
Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...
Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...
Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...
Dawen Liang
 

Destaque (12)

Discovering New Apps
Discovering New AppsDiscovering New Apps
Discovering New Apps
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Curso puppet lenguaje_2
Curso puppet lenguaje_2Curso puppet lenguaje_2
Curso puppet lenguaje_2
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Dev ops. Rompiendo Barreras
Dev ops. Rompiendo BarrerasDev ops. Rompiendo Barreras
Dev ops. Rompiendo Barreras
 
How to improve your moodle site performance
How to improve your moodle site performanceHow to improve your moodle site performance
How to improve your moodle site performance
 
Graylog Engineering - Design Your Architecture
Graylog Engineering - Design Your ArchitectureGraylog Engineering - Design Your Architecture
Graylog Engineering - Design Your Architecture
 
Past, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry PerspectivePast, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry Perspective
 
Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...
Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...
Factorization Meets the Item Embedding: Regularizing Matrix Factorization wit...
 
(Some) pitfalls of distributed learning
(Some) pitfalls of distributed learning(Some) pitfalls of distributed learning
(Some) pitfalls of distributed learning
 
Balancing Discovery and Continuation in Recommendations
Balancing Discovery and Continuation in RecommendationsBalancing Discovery and Continuation in Recommendations
Balancing Discovery and Continuation in Recommendations
 
Gestionando servidores con Puppet
Gestionando servidores con PuppetGestionando servidores con Puppet
Gestionando servidores con Puppet
 

Semelhante a Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere

El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
betabeers
 
La maquina virtual_paralela_pvm
La maquina virtual_paralela_pvmLa maquina virtual_paralela_pvm
La maquina virtual_paralela_pvm
ingdianabaquero
 

Semelhante a Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere (20)

El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Oracle VM VirtualBox Hacked
Oracle VM VirtualBox HackedOracle VM VirtualBox Hacked
Oracle VM VirtualBox Hacked
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
3 3 virtual_box
3 3 virtual_box3 3 virtual_box
3 3 virtual_box
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
Documentacion vnc
Documentacion vncDocumentacion vnc
Documentacion vnc
 
Virtualbox
VirtualboxVirtualbox
Virtualbox
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
 
Laboratorio 1
Laboratorio 1Laboratorio 1
Laboratorio 1
 
[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)
[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)
[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)
 
La Estación de Virtualización
La Estación de VirtualizaciónLa Estación de Virtualización
La Estación de Virtualización
 
Virtualization Station
Virtualization StationVirtualization Station
Virtualization Station
 
Curso linux clase_2_2012
Curso linux clase_2_2012Curso linux clase_2_2012
Curso linux clase_2_2012
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Entornos de desarrollo portables, reproducibles y ligeros
Entornos de desarrollo portables, reproducibles y ligerosEntornos de desarrollo portables, reproducibles y ligeros
Entornos de desarrollo portables, reproducibles y ligeros
 
Seguridad de las Redes
Seguridad de las RedesSeguridad de las Redes
Seguridad de las Redes
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
La maquina virtual_paralela_pvm
La maquina virtual_paralela_pvmLa maquina virtual_paralela_pvm
La maquina virtual_paralela_pvm
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere

  • 1. Vagrant para automatizar entornos DEV/PRO Vagrant + Chef Solo + [VirtualBox, vSphere] @javier_jeronimo
  • 2. Objetivos ● Entorno desarrollo = entorno producción ○ Mismo SO ○ Mismas herramientas, bibliotecas, versiones... ● Automatizar entornos ○ Poder destruir y re-generar desde cero ○ Sólo esto asegura DEV=PRO ● Control de versiones para todo ● Gestión de dependencias automática
  • 3. Vagrant Gestión de máquinas virtuales desde línea de comandos: ● vagrant up ● vagrant halt ● vagrant ssh vagrant up => un sólo comando por primera vez y la máquina estará lista y en ejecución
  • 5. Vagrant - Conceptos (1) Definición de la máquina virtual ● Carpeta conteniendo un Vagrantfile ● ID de la “caja” base (box). Ej: precise64 ● URL de la caja (descarga y cache local) ○ ¡Cuidado con cajas con mismo ID! ● Configuración VM: IP, puertos, etc ● Sintaxis del fichero: Ruby DSL
  • 6. Vagrant - Conceptos (1) Vagrant::Config.run do |config| # v1 # All Vagrant configuration is done here. The most common configuration # options are documented and commented below. For a complete reference, # please see the online documentation at vagrantup.com. # Boot with a GUI so you can see the screen. (Default is headless) # config.vm.boot_mode = :gui # # # # Assign this VM to a bridged network, allowing you to connect directly to a network using the host's network device. This makes the VM appear as another physical device on your network. config.vm.network :bridged # Forward a port from the guest to the host, which allows for outside # computers to access the VM, whereas host only networking does not. # config.vm.forward_port 80, 8080 [...]
  • 8. Vagrant - Conceptos (2) Proveedor (provider) de la máquina: ● ¿Qué es? => Quien finalmente la ejecuta Proveedores: ● VirtualBox (incluido en Vagrant) ● VMWare, de pago (Workstation, Fusion) ● Otros mediante plugins: AWS, vSphere, etc.
  • 10. Vagrant - Conceptos (3) Aprovisionador (provisioner): ● Prepara la máquina: instala paquetes, configura usuarios, etc. ● Varios disponibles: ○ ○ ○ ○ Shell script Puppet Chef Solo ...
  • 11. Vagrant - Plugins ● Proveedores. Ej: Añadir soporte para AWS, vSphere, OpenStack, Parallels, ... ● Aprovisionadores. Ej: ○ Chef: gestionar dependencias con Berkshelf o Librarian, actualizar con OmniBus, … ○ Puppet: gestionar dependencias con Librarian ○ Otros: añadir soporte para Fabric, ... ● Otros. Ej: exec, screenshot, ...
  • 12. Vagrant - Gestión configuración Caja base: ID + URL Vagrantfile Recetas a ejecutar + parámetros JSON 1 3 2 Berksfile ./cookbooks/* ./databags/* Gestión de configuración de las recetas Chef URL-de-la-caja ./roles/* Proveedor VirtualBox (instalación local) vSphere (servidor)
  • 13. Vagrant - Diferentes entornos Desarrollo: ● VirtualBox ● Detalles: ○ Redes host-guest, guest-guest ○ DNS en /etc/hosts ● Entorno aislado en ordenador Producción: ● VMware vSphere ● Detalles: ○ Red virtualizada en CPD ○ DNS por servidor ● Entorno CPD virtualizado
  • 14. Vagrant - Gestión configuración Repositorio: ● ● ● ● ● ● ● ● cookbooks/ databags/ roles/ boxes/ ○ vsphere.box <== (caja vacía: sólo metadatos provider) ○ precise64_virtualbox.box<== (VirtualBox VM: disco duro con datos, definición...) production/ ○ server01/ ■ Vagrantfile <== (provider=vSphere, box=vsphere.box) ■ Berksfile <== (gestión de dependencias Chef) development/ ○ server01/ ■ Vagrantfile <== (provider=VirtualBox, box=precise64_virtualbox.box) ■ Berksfile <== (gestión de dependencias Chef) Gemfile <== (gestión de dependencias Ruby) plugins.json <== (gestión de dependencias: plugins Vagrant)
  • 15. Vagrant - Entorno desarrollo web.example.com sql.example.com tasks.example.com ... VirtualBox: VMs Ordenador Ingeniero SW Red virtual Red virtual Red virtual Red virtual
  • 16. Vagrant - Entorno desarrollo Chef-Solo 6 Instalación de la máquina virtual: recetas, datos... Plugin: Chef OmniBus installer 5 5 4 4 CLI Virtualbox 6 VM Boot + configuración básica: IP, puertos, carpetas compartidas, ... 2 3 Plugin: Berkshelf incluido en vagrant CLI 2 Creación de la máquina virtual Vagrant 1 Descarga y cache local de la caja: *_virtualbox 3 1
  • 17. Vagrant - Entorno producción web.example.com sql.example.com tasks.example.com ... Ordenador Ingeniero SW Servidor vSphere ESXi
  • 18. Vagrant - Entorno producción Chef-Solo 7 Instalación de la máquina virtual: recetas, datos... Plugin: Chef OmniBus installer 6 1 vSphere plugin vagrant VM Boot + configuración 5 básica: IP, puertos, carpetas API compartidas, ... Plugin: Berkshelf API Creación de la máquina 3 virtual: template + spec 2 Creación: template + customization spec 1 Descarga de una máquina VMWare vSphere 6 7 2 4 5 3 4
  • 19. Objetivos ● Entorno desarrollo = entorno producción ○ Distinta máquina: IPs, VirtualBox vs vSphere... ○ Mismas recetas Chef: gestión de configuración ● Automatizar entornos ○ vagrant up / vagrant provision / vagrant destroy ● Control de versiones para todo ● Gestión de dependencias automática ○ Bundler (Gemfile), Berkshelf (Berksfile + cookbooks/*/metadata.rb)
  • 20. Referencias Vagrant - Plugins: https://github. com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins Vagrant - Cajas: http://www.vagrantbox.es/ Berkshelf: http://berkshelf.com vSphere - Templates: http://goo.gl/H8jdxQ vSphere - Customization specs: http://goo.gl/OUVcTo