vagrant-dotvm 0.29.0 → 0.30.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e164970c2222cd429e2d409fcc66b89fad715086
4
- data.tar.gz: 27f603a71659096bd0e5fca0c413c21b6dcd2efd
3
+ metadata.gz: a6d538d3645fe69b4fda9fc292f0fdaafb222cbf
4
+ data.tar.gz: 4c25a64b1472dd6636f6b180872cf381e6751c48
5
5
  SHA512:
6
- metadata.gz: 4f4d261953cfd446cdf19cc07617c1edadd73978be8e41d218b5cc1bbe7c354a8e017fa38face496dce16a9522321d0f7975eea45bd93f3bfe2f837dd857d3b9
7
- data.tar.gz: c2d566546048daf91b47a6161f078f7ab298ea7fa8e0738db614360759ceccd68a70c246d4ec5afa3377bb6d35402aa745f691009bea418a9fdac1ff04c1ad0a
6
+ metadata.gz: c3e851140912f7c3ad8372dc94477d595d7d578ff42ccefafef1fb7278aa23d0223a919ec63788b850f60b6430e6396c46f0f906227a64ef34d6fa16e1737799
7
+ data.tar.gz: 202f8824f810364eea87a4a08778c32be19e3c64595445d2dd323b65d6bbaca48b982b3652cb2cd76a0de2491655633cde48ca7a7f7120415c3da3b3a8b36d72
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 0.30.0
2
+ * Ability to set pillar data
3
+
1
4
  # 0.29.0
2
5
  * Chef provision
3
6
 
data/lib/vagrant-dotvm.rb CHANGED
@@ -4,7 +4,15 @@ require 'yaml'
4
4
  require 'vagrant-dotvm/plugin'
5
5
  require 'vagrant-dotvm/version'
6
6
  require 'vagrant-dotvm/dotvm'
7
- require 'vagrant-dotvm/configinjecter'
7
+
8
+ require 'vagrant-dotvm/injector/root'
9
+ require 'vagrant-dotvm/injector/machine'
10
+ require 'vagrant-dotvm/injector/provision'
11
+ require 'vagrant-dotvm/injector/authorizedkey'
12
+ require 'vagrant-dotvm/injector/host'
13
+ require 'vagrant-dotvm/injector/sharedfolder'
14
+ require 'vagrant-dotvm/injector/route'
15
+ require 'vagrant-dotvm/injector/network'
8
16
 
9
17
  require 'vagrant-dotvm/config/abstractconfig'
10
18
  require 'vagrant-dotvm/config/root'
@@ -121,6 +121,7 @@ module VagrantPlugins
121
121
  attr_accessor :recipe
122
122
  attr_accessor :recipes # chef
123
123
  attr_accessor :roles # chef
124
+ attr_accessor :pillar
124
125
  end
125
126
  end
126
127
  end
@@ -43,10 +43,8 @@ module VagrantPlugins
43
43
 
44
44
  public
45
45
  def inject(vc)
46
- configs = get_configs()
47
-
48
- configs.each do |config|
49
- ConfigInjecter.inject(config, vc)
46
+ get_configs.each do |config|
47
+ Injector::Root.inject config: config, vc: vc
50
48
  end
51
49
  end
52
50
 
@@ -0,0 +1,21 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class AuthorizedKey
5
+ def self.inject(key: nil, machine: nil)
6
+ if key.type == "file"
7
+ pubkey = File.readlines(File.expand_path(key.path)).first.strip
8
+ elsif key.type == "static"
9
+ pubkey = key.key
10
+ end
11
+
12
+ machine.vm.provision "shell" do |s|
13
+ s.path = File.dirname(__FILE__) + "/../../utils/authorize_key.sh"
14
+ s.args = [pubkey]
15
+ s.privileged = false
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,15 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class Host
5
+ def self.inject(host: nil, machine: nil)
6
+ machine.vm.provision "shell", run: "always" do |s|
7
+ s.path = File.dirname(__FILE__) + "/../../utils/add_host.sh"
8
+ s.args = [host.ip, host.host]
9
+ s.privileged = true
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,96 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class Machine
5
+ BOX_OPTIONS = [
6
+ :box,
7
+ :hostname,
8
+ :boot_timeout,
9
+ :box_check_update,
10
+ :box_version,
11
+ :graceful_halt_timeout,
12
+ :post_up_message,
13
+ :box_download_checksum,
14
+ :box_download_checksum_type,
15
+ :box_download_client_cert,
16
+ :box_download_ca_cert,
17
+ :box_download_ca_path,
18
+ :box_download_insecure,
19
+ :box_download_location_trusted,
20
+ :box_url,
21
+ :communicator,
22
+ :guest,
23
+ :usable_port_range,
24
+ ]
25
+
26
+ def self.inject(machine_cfg: nil, vc: nil)
27
+ define_opts = {}
28
+ define_opts[:primary] = machine_cfg.primary unless machine_cfg.primary.nil?
29
+ define_opts[:autostart] = machine_cfg.autostart unless machine_cfg.autostart.nil?
30
+
31
+ vc.vm.define machine_cfg.nick, **define_opts do |machine|
32
+ BOX_OPTIONS.each do |opt|
33
+ val = machine_cfg.send(opt)
34
+ machine.vm.send("#{opt}=", val) unless val.nil?
35
+ end
36
+
37
+ machine.vm.provider "virtualbox" do |vb|
38
+ vb.customize ["modifyvm", :id, "--memory", machine_cfg.memory] unless machine_cfg.memory.nil?
39
+ vb.customize ["modifyvm", :id, "--cpus", machine_cfg.cpus] unless machine_cfg.cpus.nil?
40
+ vb.customize ["modifyvm", :id, "--cpuexecutioncap", machine_cfg.cpucap] unless machine_cfg.cpucap.nil?
41
+ vb.customize ["modifyvm", :id, "--natnet1", machine_cfg.natnet] unless machine_cfg.natnet.nil?
42
+
43
+ machine_cfg.options[:virtualbox].each do |option|
44
+ vb.customize ["modifyvm", :id, option.name, option.value]
45
+ end
46
+ end
47
+
48
+ machine.vm.provider "vmware_fusion" do |vf|
49
+ vf.vmx["memsize"] = machine_cfg.memory unless machine_cfg.memory.nil?
50
+ vf.vmz["numvcpus"] = machine_cfg.cpus unless machine_cfg.cpus.nil?
51
+ end
52
+
53
+ machine_cfg.networks.each do |net|
54
+ Network.inject net: net,
55
+ machine: machine
56
+ end
57
+
58
+ machine_cfg.routes.each do |route|
59
+ Route.inject route: route,
60
+ machine: machine
61
+ end
62
+
63
+ machine_cfg.hosts.each do |host|
64
+ Host.inject host: host,
65
+ machine: machine
66
+ end
67
+
68
+ machine_cfg.provision.each do |provision|
69
+ Provision.inject provision_cfg: provision,
70
+ machine: machine
71
+ end
72
+
73
+ machine_cfg.shared_folders.each do |folder|
74
+ SharedFolder.inject folder: folder,
75
+ machine: machine
76
+ end
77
+
78
+ machine_cfg.authorized_keys.each do |key|
79
+ AuthorizedKey.inject key: key,
80
+ machine: machine
81
+ end
82
+
83
+ if Vagrant.has_plugin?("vagrant-group")
84
+ vc.group.groups = {} unless vc.group.groups.kind_of?(Hash)
85
+
86
+ machine_cfg.groups.each do |group|
87
+ vc.group.groups[group] = [] unless vc.group.groups.has_key?(group)
88
+ vc.group.groups[group] << machine_cfg.nick
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,33 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class Network
5
+ OPTIONS = [
6
+ :type,
7
+ :ip,
8
+ :netmask,
9
+ :virtualbox__intnet,
10
+ :guest,
11
+ :host,
12
+ :protocol,
13
+ :bridge,
14
+ :guest_ip,
15
+ :host_ip,
16
+ :auto_correct,
17
+ :auto_config,
18
+ ]
19
+
20
+ def self.inject(net: nil, machine: nil)
21
+ hash = {}
22
+
23
+ OPTIONS.each do |opt|
24
+ val = net.send(opt)
25
+ hash[opt] = val unless val.nil?
26
+ end
27
+
28
+ machine.vm.network net.net, **hash
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,146 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class Provision
5
+ OPTIONS = [
6
+ :path,
7
+ :inline,
8
+ :args,
9
+ :privileged,
10
+ :source,
11
+ :destination,
12
+ :module_path,
13
+ :manifest_file,
14
+ :manifests_path,
15
+ :binary_path,
16
+ :hiera_config_path,
17
+ :environment,
18
+ :environment_path,
19
+ :binary,
20
+ :upload_path,
21
+ :keep_color,
22
+ :name,
23
+ :powershell_args,
24
+ :facter,
25
+ :options,
26
+ :synced_folder_type,
27
+ :temp_dir,
28
+ :working_directory,
29
+ :client_cert_path,
30
+ :client_private_key_path,
31
+ :puppet_node,
32
+ :puppet_server,
33
+ :minion_config,
34
+ :run_highstate,
35
+ :install_master,
36
+ :no_minion,
37
+ :install_syndic,
38
+ :install_type,
39
+ :install_args,
40
+ :install_command,
41
+ :always_install,
42
+ :bootstrap_script,
43
+ :bootstrap_options,
44
+ :version,
45
+ :minion_key,
46
+ :minion_id,
47
+ :minion_pub,
48
+ :grains_config,
49
+ :masterless,
50
+ :master_config,
51
+ :master_key,
52
+ :master_pub,
53
+ :seed_master,
54
+ :run_highstate,
55
+ :run_overstate,
56
+ :orchestrations,
57
+ :colorize,
58
+ :log_level,
59
+ :am_policy_hub,
60
+ :extra_agent_args,
61
+ :classes,
62
+ :deb_repo_file,
63
+ :deb_repo_line,
64
+ :files_path,
65
+ :force_bootstrap,
66
+ :install,
67
+ :mode,
68
+ :policy_server_address,
69
+ :repo_gpg_key_url,
70
+ :run_file,
71
+ :upload_path,
72
+ :yum_repo_file,
73
+ :yum_repo_url,
74
+ :package_name,
75
+ :groups,
76
+ :inventory_path,
77
+ :playbook,
78
+ :extra_vars,
79
+ :sudo,
80
+ :sudo_user,
81
+ :ask_sudo_pass,
82
+ :ask_vault_pass,
83
+ :vault_password_file,
84
+ :limit,
85
+ :verbose,
86
+ :tags,
87
+ :skip_tags,
88
+ :start_at_task,
89
+ :raw_arguments,
90
+ :raw_ssh_args,
91
+ :host_key_checking,
92
+ :cookbooks_path,
93
+ :data_bags_path,
94
+ :environments_path,
95
+ :recipe_url,
96
+ :roles_path,
97
+ :binary_env,
98
+ :installer_download_path,
99
+ :prerelease,
100
+ :arguments,
101
+ :attempts,
102
+ :custom_config_path,
103
+ :encrypted_data_bag_secret_key_path,
104
+ :formatter,
105
+ :http_proxy,
106
+ :http_proxy_user,
107
+ :http_proxy_pass,
108
+ :no_proxy,
109
+ :json,
110
+ :node_name,
111
+ :provisioning_path,
112
+ :run_list,
113
+ :file_cache_path,
114
+ :file_backup_path,
115
+ :verbose_logging,
116
+ :enable_reporting,
117
+ :client_key_path,
118
+ :validation_client_name,
119
+ :delete_node,
120
+ :delete_client,
121
+ :recipe,
122
+ ]
123
+
124
+ public
125
+ def self.inject(provision_cfg: nil, machine: nil)
126
+ machine.vm.provision provision_cfg.type, run: provision_cfg.run do |p|
127
+ OPTIONS.each do |opt|
128
+ val = provision_cfg.send(opt)
129
+ p.send("#{opt}=", val) unless val.nil?
130
+ end
131
+
132
+ provision_cfg.recipes.to_a.each do |recipe|
133
+ p.add_recipe(recipe)
134
+ end
135
+
136
+ provision_cfg.roles.to_a.each do |role|
137
+ p.add_role(role)
138
+ end
139
+
140
+ p.pillar provision_cfg.pillar unless provision_cfg.pillar.nil?
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,25 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class Root
5
+ def self.inject(config: nil, vc: nil)
6
+ config.options[:ssh].each do |option|
7
+ vc.ssh.send("#{option.name}=", option.value)
8
+ end
9
+
10
+ config.options[:winrm].each do |option|
11
+ vc.winrm.send("#{option.name}=", option.value)
12
+ end
13
+
14
+ config.options[:vagrant].each do |option|
15
+ vc.vagrant.send("#{option.name}=", option.value)
16
+ end
17
+
18
+ config.machines.each do |machine_cfg|
19
+ Machine.inject machine_cfg: machine_cfg, vc: vc
20
+ end
21
+ end
22
+ end # Root
23
+ end # Injector
24
+ end # Dotvm
25
+ end # VagrantPlugins
@@ -0,0 +1,15 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class Route
5
+ def self.inject(route: nil, machine: nil)
6
+ machine.vm.provision "shell", run: "always" do |s|
7
+ s.path = File.dirname(__FILE__) + "/../../../utils/setup_route.sh"
8
+ s.args = [route.destination, route.gateway]
9
+ s.privileged = true
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,39 @@
1
+ module VagrantPlugins
2
+ module Dotvm
3
+ module Injector
4
+ class SharedFolder
5
+ OPTIONS = [
6
+ :disabled,
7
+ :create,
8
+ :type,
9
+ :group,
10
+ :mount_options,
11
+ :owner,
12
+ :nfs_export,
13
+ :nfs_udp,
14
+ :nfs_version,
15
+ :rsync__args,
16
+ :rsync__auto,
17
+ :rsync__chown,
18
+ :rsync__exclude,
19
+ :rsync__rsync_path,
20
+ :rsync__verbose,
21
+ :smb_host,
22
+ :smb_password,
23
+ :smb_username,
24
+ ]
25
+
26
+ def self.inject(folder: nil, machine: nil)
27
+ hash = {}
28
+
29
+ OPTIONS.each do |opt|
30
+ val = folder.send(opt)
31
+ hash[opt] = val unless val.nil?
32
+ end
33
+
34
+ machine.vm.synced_folder folder.host, folder.guest, **hash
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Dotvm
3
- VERSION = "0.29.0"
3
+ VERSION = "0.30.0"
4
4
  end
5
5
  end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Krzysztof Magosa"]
10
10
  spec.email = ["krzysztof@magosa.pl"]
11
11
  spec.summary = "Easy YAML based multi machine config approach for Vagrant."
12
- spec.homepage = "http://github.com/krzysztof-magosa/vagrant-dotvm"
12
+ spec.homepage = "http://github.com/vagrant-dotvm/vagrant-dotvm"
13
13
  spec.license = "MIT"
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-dotvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0
4
+ version: 0.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Magosa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-24 00:00:00.000000000 Z
11
+ date: 2015-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,15 +70,22 @@ files:
70
70
  - lib/vagrant-dotvm/config/root.rb
71
71
  - lib/vagrant-dotvm/config/route.rb
72
72
  - lib/vagrant-dotvm/config/sharedfolder.rb
73
- - lib/vagrant-dotvm/configinjecter.rb
74
73
  - lib/vagrant-dotvm/dotvm.rb
74
+ - lib/vagrant-dotvm/injector/authorizedkey.rb
75
+ - lib/vagrant-dotvm/injector/host.rb
76
+ - lib/vagrant-dotvm/injector/machine.rb
77
+ - lib/vagrant-dotvm/injector/network.rb
78
+ - lib/vagrant-dotvm/injector/provision.rb
79
+ - lib/vagrant-dotvm/injector/root.rb
80
+ - lib/vagrant-dotvm/injector/route.rb
81
+ - lib/vagrant-dotvm/injector/sharedfolder.rb
75
82
  - lib/vagrant-dotvm/plugin.rb
76
83
  - lib/vagrant-dotvm/version.rb
77
84
  - utils/add_host.sh
78
85
  - utils/authorize_key.sh
79
86
  - utils/setup_route.sh
80
87
  - vagrant-dotvm.gemspec
81
- homepage: http://github.com/krzysztof-magosa/vagrant-dotvm
88
+ homepage: http://github.com/vagrant-dotvm/vagrant-dotvm
82
89
  licenses:
83
90
  - MIT
84
91
  metadata: {}
@@ -1,162 +0,0 @@
1
- module VagrantPlugins
2
- module Dotvm
3
- class ConfigInjecter
4
-
5
- public
6
- def self.inject(config, vc)
7
- config.options[:ssh].each do |option|
8
- vc.ssh.send("#{option.name}=", option.value)
9
- end
10
-
11
- config.options[:winrm].each do |option|
12
- vc.winrm.send("#{option.name}=", option.value)
13
- end
14
-
15
- config.options[:vagrant].each do |option|
16
- vc.vagrant.send("#{option.name}=", option.value)
17
- end
18
-
19
- config.machines.each do |machine_cfg|
20
- define_opts = {}
21
- define_opts[:primary] = machine_cfg.primary unless machine_cfg.primary.nil?
22
- define_opts[:autostart] = machine_cfg.autostart unless machine_cfg.autostart.nil?
23
-
24
- vc.vm.define machine_cfg.nick, **define_opts do |machine|
25
- [
26
- :box, :hostname, :boot_timeout, :box_check_update, :box_version, :graceful_halt_timeout, :post_up_message,
27
- :box_download_checksum, :box_download_checksum_type, :box_download_client_cert, :box_download_ca_cert,
28
- :box_download_ca_path, :box_download_insecure, :box_download_location_trusted, :box_url, :communicator,
29
- :guest, :usable_port_range
30
- ].each do |opt|
31
- val = machine_cfg.send(opt)
32
- machine.vm.send("#{opt}=", val) unless val.nil?
33
- end
34
-
35
- machine.vm.provider "virtualbox" do |vb|
36
- vb.customize ["modifyvm", :id, "--memory", machine_cfg.memory] unless machine_cfg.memory.nil?
37
- vb.customize ["modifyvm", :id, "--cpus", machine_cfg.cpus] unless machine_cfg.cpus.nil?
38
- vb.customize ["modifyvm", :id, "--cpuexecutioncap", machine_cfg.cpucap] unless machine_cfg.cpucap.nil?
39
- vb.customize ["modifyvm", :id, "--natnet1", machine_cfg.natnet] unless machine_cfg.natnet.nil?
40
-
41
- machine_cfg.options[:virtualbox].each do |option|
42
- vb.customize ["modifyvm", :id, option.name, option.value]
43
- end
44
- end
45
-
46
- machine.vm.provider "vmware_fusion" do |vf|
47
- vf.vmx["memsize"] = machine_cfg.memory unless machine_cfg.memory.nil?
48
- vf.vmz["numvcpus"] = machine_cfg.cpus unless machine_cfg.cpus.nil?
49
- end
50
-
51
- machine_cfg.networks.each do |net|
52
- hash = {}
53
-
54
- [
55
- :type, :ip, :netmask, :virtualbox__intnet, :guest, :host, :protocol, :bridge,
56
- :guest_ip, :host_ip, :auto_correct, :auto_config,
57
- ].each do |opt|
58
- val = net.send(opt)
59
- hash[opt] = val unless val.nil?
60
- end
61
-
62
- machine.vm.network net.net, **hash
63
- end
64
-
65
- machine_cfg.routes.each do |route|
66
- machine.vm.provision "shell", run: "always" do |s|
67
- s.path = File.dirname(__FILE__) + "/../../utils/setup_route.sh"
68
- s.args = [route.destination, route.gateway]
69
- s.privileged = true
70
- end
71
- end
72
-
73
- machine_cfg.hosts.each do |host|
74
- machine.vm.provision "shell", run: "always" do |s|
75
- s.path = File.dirname(__FILE__) + "/../../utils/add_host.sh"
76
- s.args = [host.ip, host.host]
77
- s.privileged = true
78
- end
79
- end
80
-
81
- machine_cfg.provision.each do |provision|
82
- machine.vm.provision provision.type, run: provision.run do |p|
83
- [
84
- :path, :inline, :args, :privileged, :source, :destination, :module_path, :manifest_file,
85
- :manifests_path, :binary_path, :hiera_config_path, :environment, :environment_path,
86
- :binary, :upload_path, :keep_color, :name, :powershell_args, :facter, :options,
87
- :synced_folder_type, :temp_dir, :working_directory, :client_cert_path, :client_private_key_path,
88
- :puppet_node, :puppet_server, :minion_config, :run_highstate, :install_master, :no_minion,
89
- :install_syndic, :install_type, :install_args, :install_command, :always_install, :bootstrap_script,
90
- :bootstrap_options, :version, :minion_key, :minion_id, :minion_pub, :grains_config, :masterless,
91
- :master_config, :master_key, :master_pub, :seed_master, :run_highstate, :run_overstate,
92
- :orchestrations, :colorize, :log_level, :am_policy_hub, :extra_agent_args, :classes,
93
- :deb_repo_file, :deb_repo_line, :files_path, :force_bootstrap, :install, :mode,
94
- :policy_server_address, :repo_gpg_key_url, :run_file, :upload_path, :yum_repo_file,
95
- :yum_repo_url, :package_name, :groups, :inventory_path, :playbook, :extra_vars,
96
- :sudo, :sudo_user, :ask_sudo_pass, :ask_vault_pass, :vault_password_file, :limit,
97
- :verbose, :tags, :skip_tags, :start_at_task, :raw_arguments, :raw_ssh_args, :host_key_checking,
98
- :cookbooks_path, :data_bags_path, :environments_path, :recipe_url, :roles_path, :binary_env,
99
- :installer_download_path, :prerelease, :arguments, :attempts, :custom_config_path,
100
- :encrypted_data_bag_secret_key_path, :formatter, :http_proxy, :http_proxy_user,
101
- :http_proxy_pass, :no_proxy, :json, :node_name, :provisioning_path, :run_list,
102
- :file_cache_path, :file_backup_path, :verbose_logging, :enable_reporting,
103
- :client_key_path, :validation_client_name, :delete_node, :delete_client, :recipe,
104
- ].each do |opt|
105
- val = provision.send(opt)
106
- p.send("#{opt}=", val) unless val.nil?
107
- end
108
-
109
- provision.recipes.to_a.each do |recipe|
110
- p.add_recipe(recipe)
111
- end
112
-
113
- provision.roles.to_a.each do |role|
114
- p.add_role(role)
115
- end
116
- end
117
- end
118
-
119
- machine_cfg.shared_folders.each do |folder|
120
- hash = {}
121
-
122
- [
123
- :disabled, :create, :type, :group, :mount_options, :owner, :nfs_export, :nfs_udp, :nfs_version,
124
- :rsync__args, :rsync__auto, :rsync__chown, :rsync__exclude, :rsync__rsync_path, :rsync__verbose,
125
- :smb_host, :smb_password, :smb_username
126
- ].each do |opt|
127
- val = folder.send(opt)
128
- hash[opt] = val unless val.nil?
129
- end
130
-
131
- machine.vm.synced_folder folder.host, folder.guest, **hash
132
- end
133
-
134
- machine_cfg.authorized_keys.each do |key|
135
- if key.type == "file"
136
- pubkey = File.readlines(File.expand_path(key.path)).first.strip
137
- elsif key.type == "static"
138
- pubkey = key.key
139
- end
140
-
141
- machine.vm.provision "shell" do |s|
142
- s.path = File.dirname(__FILE__) + "/../../utils/authorize_key.sh"
143
- s.args = [pubkey]
144
- s.privileged = false
145
- end
146
- end
147
-
148
- if Vagrant.has_plugin?("vagrant-group")
149
- vc.group.groups = {} unless vc.group.groups.kind_of?(Hash)
150
-
151
- machine_cfg.groups.each do |group|
152
- vc.group.groups[group] = [] unless vc.group.groups.has_key?(group)
153
- vc.group.groups[group] << machine_cfg.nick
154
- end
155
- end
156
- end
157
- end
158
- end
159
-
160
- end # ConfigInjecter
161
- end # Dotvm
162
- end # VagrantPlugins