Hi there!

I was thinking is maybe is possible to use several shell scripts to 
provision the machine.

I mean, instead to have a big one, use different ones, with the concept 
from configuration management.

I have a nodes. json definition as this one:

{

  "nodes": {

    "vagrant.domain": {

      ":ip": "192.168.32.5",

      "ports": [],

      ":memory": 2048,

      "bootstrap": ["bootstrap-hosts.sh","bootstrap-centos.sh"]

    } 

  }

}

 

And I was trying something like this in my vagrant file ….

# vi: set ft=ruby :

 

# Builds Puppet Master and multiple Puppet Agent Nodes using JSON config 
file

# Author: Gary A. Stafford

 

# read vm and chef configurations from JSON files

nodes_config = (JSON.parse(File.read("nodes.json")))['nodes']

 

VAGRANTFILE_API_VERSION = "2"

 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "centos/7"

 

  nodes_config.each do |node|

    node_name   = node[0] # name of node

    node_values = node[1] # content of node

 

    config.vm.define node_name do |config|    

      # configures all forwarding ports in JSON array

      ports = node_values['ports']

      ports.each do |port|

        config.vm.network :forwarded_port,

          host:  port[':host'],

          guest: port[':guest'],

          id:    port[':id'],

          auto_correct: true

      end

 

      config.vm.hostname = node_name

      config.vm.network :private_network, ip: node_values[':ip']

 

      config.vm.provider :virtualbox do |vb|

        vb.customize ["modifyvm", :id, "--memory", node_values[':memory']]

        vb.customize ["modifyvm", :id, "--name", node_name]

      end

 

      # config.vm.provision :shell, :path => node_values[':bootstrap']

      valores = node_values['bootstrap']

      valores.each do |v|

        #puts v.upcase

        config.vm.provision :shell, path=> v.upcase

      end

    end

  end

end

 

Thanks!

 

 

 

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/vagrant/issues
IRC: #vagrant on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vagrant-up/1bea458f-88df-44eb-8f5c-feff5d2f4bf9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to