Vagrant: Múltiples maquinas virtuales
Mediante Vagrant podemos crear y destruir entornos de pruebas fácilmente, pero cuando las pruebas son más complejas necesitaremos varias maquinas virtuales para un único entorno. Vamos a ver cómo definir con un único Vagrantfile varias maquinas virtuales
Para ello definiremos cada maquina con un nombre:
config.vm.define :ldap do |ldap|
Por lo que podemos modificar individualmente cada maquina virtual mediante dicho nombre:
ldap.vm.host_name = "ldap.vm"
Un ejemplo de configuración con tres maquinas sería:
Vagrant::Config.run do |config| config.vm.define :ldap do |ldap| ldap.vm.box = "centos65-x86_64" ldap.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box" ldap.vm.host_name = "ldap.vm" ldap.vm.network :hostonly, "192.168.56.11" ldap.vm.provision :shell, :path => "puppet.sh" end config.vm.define :ldapslave do |ldapslave| ldapslave.vm.box = "centos65-x86_64" ldapslave.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box" ldapslave.vm.host_name = "ldapslave.vm" ldapslave.vm.network :hostonly, "192.168.56.13" ldapslave.vm.provision :shell, :path => "puppet.sh" end config.vm.define :ldapclient do |ldapclient| ldapclient.vm.box = "centos65-x86_64" ldapclient.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box" ldapclient.vm.host_name = "lclient.vm" ldapclient.vm.network :hostonly, "192.168.56.12" ldapclient.vm.provision :shell, :path => "puppet.sh" end end
Mediante vagrant podemos gestionarlas todas a la vez, por ejemplo:
$ vagrant up
O individualmente indicando el nombre de la maquina que nos interesa:
$ vagrant up ldapslave
Tags: vagrant