2016-11-21 1 views
1

J'utilise Vagrant pour créer trois hôtes. Je veux leur donner le nom node01, node02 et node03.Vagrantfile: nomme les hôtes virtuels dans un seul fichier

En utilisant les éléments suivants Vagrantfile:

# -*- mode: ruby -*- 
# vi: set ft=ruby : 


Vagrant.configure(2) do |config| 

    config.vm.define "node01" do |node01| 
    node01.vm.box = "ubuntu/trusty64" 
    node01.vm.hostname = "node01" 
    end 

    config.vm.define "node02" do |node02| 
    node02.vm.box = "ubuntu/trusty64" 
    node02.vm.hostname = "node02" 
    end 

    config.vm.define "node03" do |node03| 
    node03.vm.box = "ubuntu/trusty64" 
    node03.vm.hostname = "node03" 
    end 


    config.vm.provider "virtualbox" do |vb| 
    vb.memory = "1024" 
    end 
end 

Sur virtualbox, les noms sont énigmatiques (comme ubuntu-3nodes-node01-horodatage ...). Comment puis-je assurer qu'ils sont simplement appelés node01, node02 et node03

Je sais que je peux faire dans le config.vm.provider « VirtualBox » mais je idéalement le faire dans la config.vm.define sections « node01 »

Répondre

2

vous pouvez faire quelque chose comme ça

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure(2) do |config| 

    config.vm.box = "ubuntu/trusty64" 

    (1..3).each do |i| 
    config.vm.define "node0#{i}" do |node| 
     config.vm.provider "virtualbox" do |vb| 
     vb.memory = "1024" 
     vb.name = "node0#{i}" 
     end 
     node.vm.hostname = "node0#{i}" 
    end 
    end 

end 
  • Ceci est un rubis à boucle sur le nœud.
  • Vous devez indiquer le nom de la machine virtuelle VirtualBox dans le bloc virtualbox car cela dépend de virtualbox (vagabond peut gérer un autre fournisseur et ceci serait différent)
0

Vous pouvez également séparer la boucle de la méthode de définition de noeud.

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure(2) do |config| 

    config.vm.box = "ubuntu/trusty64" 

    def define_node(config, node_number) 
    config.vm.define "node0#{node_number}" do |node| 
     node.vm.hostname = "node0#{node_number}" 

     node.vm.provider "virtualbox" do |vb| 
     vb.memory = "1024" 
     vb.name = "node0#{node_number}" 
     end 
    end 
    end 

    for node_number in 1..3 
    define_node config, node_number 
    end 
end