vagrant-dotvm 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/vagrant-dotvm/config/abstractconfig.rb +0 -44
- data/lib/vagrant-dotvm/config/instance.rb +30 -0
- data/lib/vagrant-dotvm/config/machine.rb +7 -2
- data/lib/vagrant-dotvm/config/project.rb +23 -0
- data/lib/vagrant-dotvm/dotvm.rb +51 -49
- data/lib/vagrant-dotvm/injector/authorizedkey.rb +1 -0
- data/lib/vagrant-dotvm/injector/host.rb +1 -0
- data/lib/vagrant-dotvm/injector/instance.rb +19 -0
- data/lib/vagrant-dotvm/injector/project.rb +13 -0
- data/lib/vagrant-dotvm/injector/route.rb +1 -0
- data/lib/vagrant-dotvm/paths.rb +1 -0
- data/lib/vagrant-dotvm/replacer.rb +76 -0
- data/lib/vagrant-dotvm/variables.rb +11 -0
- data/lib/vagrant-dotvm/version.rb +1 -1
- data/lib/vagrant-dotvm.rb +7 -2
- metadata +8 -12
- data/examples/.gitignore +0 -1
- data/examples/Vagrantfile +0 -10
- data/examples/config/projects/playground/Puppetfile +0 -6
- data/examples/config/projects/playground/bootstrap.sh +0 -15
- data/examples/config/projects/playground/config.ini +0 -0
- data/examples/config/projects/playground/default.pp +0 -9
- data/examples/config/projects/playground/main.yaml +0 -52
- data/examples/config/projects/playground/modules/.gitkeep +0 -0
- data/lib/vagrant-dotvm/config/root.rb +0 -29
- data/lib/vagrant-dotvm/injector/root.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af05a860691da0d88715617d01a46581b0f4c5f7
|
4
|
+
data.tar.gz: ac1f7084700a621c080c90f52195246f667292aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00c8661dc1b6b789bc25c64e900c28e73fd5f3efadb4bcdd8080ed475e1195f01d6d99bff97b3584552718da845b76539bd754e6205fc59185aa0987f0d706a4
|
7
|
+
data.tar.gz: 708a029dc4ddea5d30777b2a951fb0eb16d444726a18fd86ee2d6cda00b8418cbbdc100feb583d4b03361948f9575bd50bef7b4e7f7efa9e3baf1d6a72d13c84
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.34.0
|
2
|
+
* New configuration directory layout
|
3
|
+
* Removed local variables
|
4
|
+
* Introduced project variables
|
5
|
+
* Removed examples, will be stored in separate repository
|
6
|
+
* Technical improvements
|
7
|
+
|
8
|
+
# 0.33.0
|
9
|
+
* Better handling of errors in configuration
|
10
|
+
* Fixed ability to set vCPUs in VMWare Fusion
|
11
|
+
* Technical improvements
|
12
|
+
|
1
13
|
# 0.32.1
|
2
14
|
* Bugfix for situation when configuration file is empty
|
3
15
|
* Bugfix for situation when configuration doesn't have machines
|
@@ -32,50 +32,6 @@ module VagrantPlugins
|
|
32
32
|
|
33
33
|
result
|
34
34
|
end
|
35
|
-
|
36
|
-
# Replaces variables in target object.
|
37
|
-
#
|
38
|
-
# @param vars [Hash] Hash of variables to be replaced.
|
39
|
-
# @param target [Object] Object to operate on.
|
40
|
-
# @return [Number] Number of performed replaces.
|
41
|
-
def replace_vars(vars, target)
|
42
|
-
replaced = 0
|
43
|
-
|
44
|
-
if target.kind_of?(Array)
|
45
|
-
target.each do |item|
|
46
|
-
replaced += replace_vars(vars, item)
|
47
|
-
end
|
48
|
-
elsif target.kind_of?(Hash)
|
49
|
-
target.each do |name, item|
|
50
|
-
replaced += replace_vars(vars, item)
|
51
|
-
end
|
52
|
-
elsif target.kind_of?(String)
|
53
|
-
vars.each do |k, v|
|
54
|
-
pattern = "%#{k}%"
|
55
|
-
replaced += 1 unless (target.gsub! pattern, v).kind_of?(NilClass)
|
56
|
-
end
|
57
|
-
elsif target.kind_of?(AbstractConfig)
|
58
|
-
replaced += target.replace_vars!(vars)
|
59
|
-
end
|
60
|
-
|
61
|
-
replaced
|
62
|
-
end
|
63
|
-
|
64
|
-
# Search for variables within this object
|
65
|
-
# and performs replaces of them.
|
66
|
-
#
|
67
|
-
# @param vars [Hash] Hash of variables to be replaced.
|
68
|
-
# @return [Number] Number of performed replaces.
|
69
|
-
def replace_vars!(vars)
|
70
|
-
replaced = 0
|
71
|
-
|
72
|
-
instance_variables.each do |var_name|
|
73
|
-
var = instance_variable_get(var_name)
|
74
|
-
replaced += replace_vars(vars, var)
|
75
|
-
end
|
76
|
-
|
77
|
-
replaced
|
78
|
-
end
|
79
35
|
end
|
80
36
|
end
|
81
37
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
module Config
|
4
|
+
# Class represents whole instance of DotVm.
|
5
|
+
class Instance < AbstractConfig
|
6
|
+
include OptionsSetter
|
7
|
+
|
8
|
+
OPTIONS_CATEGORIES = [
|
9
|
+
:ssh,
|
10
|
+
:winrm,
|
11
|
+
:vagrant,
|
12
|
+
]
|
13
|
+
|
14
|
+
attr_reader :projects
|
15
|
+
attr_reader :options # mixin
|
16
|
+
attr_reader :variables
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
@projects = []
|
20
|
+
@variables = Variables.new
|
21
|
+
end
|
22
|
+
|
23
|
+
def new_project
|
24
|
+
projects << (project = Project.new self)
|
25
|
+
project
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -8,6 +8,7 @@ module VagrantPlugins
|
|
8
8
|
:virtualbox,
|
9
9
|
]
|
10
10
|
|
11
|
+
attr_reader :parent
|
11
12
|
attr_accessor :nick
|
12
13
|
attr_accessor :hostname # name
|
13
14
|
attr_accessor :box
|
@@ -42,6 +43,10 @@ module VagrantPlugins
|
|
42
43
|
attr_accessor :guest
|
43
44
|
attr_reader :usable_port_range
|
44
45
|
|
46
|
+
def initialize(parent)
|
47
|
+
@parent = parent
|
48
|
+
end
|
49
|
+
|
45
50
|
def name=(value)
|
46
51
|
@hostname = value
|
47
52
|
end
|
@@ -91,8 +96,8 @@ module VagrantPlugins
|
|
91
96
|
@shared_folders = convert_array(shared_folders, SharedFolder.name)
|
92
97
|
|
93
98
|
settings = {
|
94
|
-
'host' => '
|
95
|
-
'guest' => '
|
99
|
+
'host' => @parent.variables['host.project_dir'],
|
100
|
+
'guest' => @parent.variables['guest.project_dir'],
|
96
101
|
'disabled' => false,
|
97
102
|
'create' => false,
|
98
103
|
'type' => nil,
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
module Config
|
4
|
+
# Class represents one project
|
5
|
+
class Project < AbstractConfig
|
6
|
+
attr_reader :parent
|
7
|
+
attr_reader :variables
|
8
|
+
attr_reader :machines
|
9
|
+
|
10
|
+
def initialize(parent)
|
11
|
+
@parent = parent
|
12
|
+
@variables = Variables.new
|
13
|
+
@machines = Array.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def new_machine
|
17
|
+
machines << (machine = Machine.new self)
|
18
|
+
machine
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/vagrant-dotvm/dotvm.rb
CHANGED
@@ -8,79 +8,81 @@ module VagrantPlugins
|
|
8
8
|
end
|
9
9
|
|
10
10
|
private
|
11
|
-
def
|
12
|
-
|
11
|
+
def parse_variables(path)
|
12
|
+
result = {}
|
13
13
|
|
14
|
-
Dir[
|
14
|
+
Dir[path].each do |fname|
|
15
15
|
yaml = YAML::load(File.read(fname)) || {}
|
16
16
|
yaml.each do |name, value|
|
17
|
-
|
17
|
+
raise "Variable #{name} already exists." if result.has_key? name
|
18
|
+
result[name] = value
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
21
|
-
|
22
|
+
result
|
22
23
|
end
|
23
24
|
|
24
25
|
private
|
25
|
-
def
|
26
|
-
|
26
|
+
def init_instance
|
27
|
+
@instance = Config::Instance.new
|
28
|
+
@instance.variables.append_group 'env', ENV
|
29
|
+
@instance.variables.append_group 'global', (parse_variables "#{@path}/variables/*.yaml")
|
30
|
+
end
|
27
31
|
|
28
|
-
|
29
|
-
|
32
|
+
private
|
33
|
+
def load_options
|
34
|
+
Dir["#{@path}/options/*.yaml"].each do |file|
|
35
|
+
@instance.options = Replacer.new
|
36
|
+
.on(YAML::load(File.read(file)) || {})
|
37
|
+
.using(@instance.variables)
|
38
|
+
.result
|
30
39
|
end
|
31
|
-
|
32
|
-
result
|
33
40
|
end
|
34
41
|
|
35
42
|
private
|
36
|
-
def
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
vars = {}
|
44
|
-
vars.merge! prefix_vars(ENV, 'env.')
|
45
|
-
vars.merge! prefix_vars(get_globals, 'global.')
|
46
|
-
vars.merge! prefix_vars(conf.vars.to_h, 'local.')
|
47
|
-
vars.merge!(
|
43
|
+
def load_projects
|
44
|
+
Dir["#{@path}/projects/*"].each do |dir|
|
45
|
+
project = @instance.new_project
|
46
|
+
project.variables.append_group 'project', (parse_variables "#{dir}/variables/*.yaml")
|
47
|
+
project.variables.append_group(
|
48
|
+
'host',
|
48
49
|
{
|
49
|
-
'
|
50
|
-
'
|
50
|
+
'project_dir' => dir,
|
51
|
+
'files_dir' => "#{dir}/files",
|
52
|
+
}
|
53
|
+
)
|
54
|
+
project.variables.append_group(
|
55
|
+
'guest',
|
56
|
+
{
|
57
|
+
'project_dir' => DOTVM_PROJECT_PATH,
|
58
|
+
'files_dir' => "#{DOTVM_PROJECT_PATH}/files"
|
51
59
|
}
|
52
60
|
)
|
53
61
|
|
54
|
-
|
55
|
-
|
56
|
-
|
62
|
+
Dir["#{dir}/machines/*.yaml"].each do |file|
|
63
|
+
begin
|
64
|
+
yaml = Replacer.new
|
65
|
+
.on(YAML::load(File.read(file)) || [])
|
66
|
+
.using(@instance.variables.merge(project.variables))
|
67
|
+
.result
|
68
|
+
|
69
|
+
yaml.each do |machine_yaml|
|
70
|
+
machine = project.new_machine
|
71
|
+
machine.populate machine_yaml
|
72
|
+
end
|
73
|
+
rescue VagrantPlugins::Dotvm::Config::InvalidConfigError => e
|
74
|
+
raise Vagrant::Errors::VagrantError.new, "DotVM: #{file}: #{e.message}"
|
75
|
+
end
|
57
76
|
end
|
58
|
-
|
59
|
-
raise 'Too deep variables relations, possible recurrence.' unless last == 0
|
60
|
-
rescue VagrantPlugins::Dotvm::Config::InvalidConfigError => e
|
61
|
-
file = fname[(@path.length + '/projects/'.length)..-1]
|
62
|
-
raise Vagrant::Errors::VagrantError.new, "DotVM: #{file}: #{e.message}"
|
63
|
-
end
|
64
|
-
|
65
|
-
conf
|
66
|
-
end
|
67
|
-
|
68
|
-
private
|
69
|
-
def get_configs
|
70
|
-
configs = []
|
71
|
-
|
72
|
-
Dir[@path + '/projects/*/*.yaml'].each do |fname|
|
73
|
-
configs << process_config(fname)
|
74
77
|
end
|
75
|
-
|
76
|
-
return configs
|
77
78
|
end
|
78
79
|
|
79
80
|
public
|
80
81
|
def inject(vc)
|
81
|
-
|
82
|
-
|
83
|
-
|
82
|
+
init_instance
|
83
|
+
load_options
|
84
|
+
load_projects
|
85
|
+
Injector::Instance.inject @instance, vc
|
84
86
|
end
|
85
87
|
|
86
88
|
end # DotVm
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
module Injector
|
4
|
+
class Instance < AbstractInjector
|
5
|
+
def self.inject(instance, vc)
|
6
|
+
instance.options.to_h.each do |category, options|
|
7
|
+
options.to_a.each do |option|
|
8
|
+
vc.send(category).send("#{option.name}=", option.value)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
instance.projects.each do |project|
|
13
|
+
Injector::Project.inject project, vc
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
module Injector
|
4
|
+
class Project < AbstractInjector
|
5
|
+
def self.inject(project, vc)
|
6
|
+
project.machines.to_a.each do |machine_cfg|
|
7
|
+
Machine.inject machine_cfg: machine_cfg, vc: vc
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/vagrant-dotvm/paths.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Dotvm
|
3
|
+
class Replacer
|
4
|
+
def initialize
|
5
|
+
@limit = 10
|
6
|
+
end
|
7
|
+
|
8
|
+
def on(target)
|
9
|
+
@target = target
|
10
|
+
self
|
11
|
+
end
|
12
|
+
|
13
|
+
def using(vars)
|
14
|
+
@vars = vars
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def limit(limit)
|
19
|
+
@limit = limit
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def result
|
24
|
+
0.upto(@limit).each do |_|
|
25
|
+
@replaced = 0
|
26
|
+
target = _replace_vars @target
|
27
|
+
return target if @replaced == 0
|
28
|
+
end
|
29
|
+
|
30
|
+
raise 'Too deep variables relations, possible recurrence.'
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def process_string(target)
|
35
|
+
@vars.each do |k, v|
|
36
|
+
pattern = "%#{k}%"
|
37
|
+
|
38
|
+
if target.include? pattern
|
39
|
+
@replaced += 1
|
40
|
+
|
41
|
+
if target == pattern
|
42
|
+
target = v
|
43
|
+
break unless v.is_a? String # value is no longer string, so replace cannot be performed
|
44
|
+
else
|
45
|
+
unless v.respond_to? :to_s
|
46
|
+
raise 'Non-string values cannot be joined together.'
|
47
|
+
end
|
48
|
+
|
49
|
+
target = target.gsub pattern, v.to_s
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
target
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
def _replace_vars(target)
|
59
|
+
case target
|
60
|
+
when Hash
|
61
|
+
target.each do |k, v|
|
62
|
+
target[k] = _replace_vars v
|
63
|
+
end
|
64
|
+
when Array
|
65
|
+
target.map! do |v|
|
66
|
+
_replace_vars v
|
67
|
+
end
|
68
|
+
when String
|
69
|
+
target = process_string target
|
70
|
+
end
|
71
|
+
|
72
|
+
target
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/vagrant-dotvm.rb
CHANGED
@@ -6,8 +6,12 @@ require 'vagrant-dotvm/version'
|
|
6
6
|
require 'vagrant-dotvm/paths'
|
7
7
|
require 'vagrant-dotvm/dotvm'
|
8
8
|
|
9
|
+
require 'vagrant-dotvm/variables'
|
10
|
+
require 'vagrant-dotvm/replacer'
|
11
|
+
|
9
12
|
require 'vagrant-dotvm/injector/abstractinjector'
|
10
|
-
require 'vagrant-dotvm/injector/
|
13
|
+
require 'vagrant-dotvm/injector/instance'
|
14
|
+
require 'vagrant-dotvm/injector/project'
|
11
15
|
require 'vagrant-dotvm/injector/machine'
|
12
16
|
require 'vagrant-dotvm/injector/provision'
|
13
17
|
require 'vagrant-dotvm/injector/authorizedkey'
|
@@ -19,7 +23,8 @@ require 'vagrant-dotvm/injector/network'
|
|
19
23
|
require 'vagrant-dotvm/config/optionssetter'
|
20
24
|
require 'vagrant-dotvm/config/invalidconfigerror'
|
21
25
|
require 'vagrant-dotvm/config/abstractconfig'
|
22
|
-
require 'vagrant-dotvm/config/
|
26
|
+
require 'vagrant-dotvm/config/instance'
|
27
|
+
require 'vagrant-dotvm/config/project'
|
23
28
|
require 'vagrant-dotvm/config/machine'
|
24
29
|
require 'vagrant-dotvm/config/provision'
|
25
30
|
require 'vagrant-dotvm/config/authorizedkey'
|
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.
|
4
|
+
version: 0.34.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-08-
|
11
|
+
date: 2015-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -51,26 +51,19 @@ files:
|
|
51
51
|
- LICENSE.txt
|
52
52
|
- README.md
|
53
53
|
- Rakefile
|
54
|
-
- examples/.gitignore
|
55
|
-
- examples/Vagrantfile
|
56
|
-
- examples/config/projects/playground/Puppetfile
|
57
|
-
- examples/config/projects/playground/bootstrap.sh
|
58
|
-
- examples/config/projects/playground/config.ini
|
59
|
-
- examples/config/projects/playground/default.pp
|
60
|
-
- examples/config/projects/playground/main.yaml
|
61
|
-
- examples/config/projects/playground/modules/.gitkeep
|
62
54
|
- lib/vagrant-dotvm.rb
|
63
55
|
- lib/vagrant-dotvm/config/abstractconfig.rb
|
64
56
|
- lib/vagrant-dotvm/config/authorizedkey.rb
|
65
57
|
- lib/vagrant-dotvm/config/buildimage.rb
|
66
58
|
- lib/vagrant-dotvm/config/host.rb
|
59
|
+
- lib/vagrant-dotvm/config/instance.rb
|
67
60
|
- lib/vagrant-dotvm/config/invalidconfigerror.rb
|
68
61
|
- lib/vagrant-dotvm/config/machine.rb
|
69
62
|
- lib/vagrant-dotvm/config/network.rb
|
70
63
|
- lib/vagrant-dotvm/config/option.rb
|
71
64
|
- lib/vagrant-dotvm/config/optionssetter.rb
|
65
|
+
- lib/vagrant-dotvm/config/project.rb
|
72
66
|
- lib/vagrant-dotvm/config/provision.rb
|
73
|
-
- lib/vagrant-dotvm/config/root.rb
|
74
67
|
- lib/vagrant-dotvm/config/route.rb
|
75
68
|
- lib/vagrant-dotvm/config/run.rb
|
76
69
|
- lib/vagrant-dotvm/config/sharedfolder.rb
|
@@ -78,14 +71,17 @@ files:
|
|
78
71
|
- lib/vagrant-dotvm/injector/abstractinjector.rb
|
79
72
|
- lib/vagrant-dotvm/injector/authorizedkey.rb
|
80
73
|
- lib/vagrant-dotvm/injector/host.rb
|
74
|
+
- lib/vagrant-dotvm/injector/instance.rb
|
81
75
|
- lib/vagrant-dotvm/injector/machine.rb
|
82
76
|
- lib/vagrant-dotvm/injector/network.rb
|
77
|
+
- lib/vagrant-dotvm/injector/project.rb
|
83
78
|
- lib/vagrant-dotvm/injector/provision.rb
|
84
|
-
- lib/vagrant-dotvm/injector/root.rb
|
85
79
|
- lib/vagrant-dotvm/injector/route.rb
|
86
80
|
- lib/vagrant-dotvm/injector/sharedfolder.rb
|
87
81
|
- lib/vagrant-dotvm/paths.rb
|
88
82
|
- lib/vagrant-dotvm/plugin.rb
|
83
|
+
- lib/vagrant-dotvm/replacer.rb
|
84
|
+
- lib/vagrant-dotvm/variables.rb
|
89
85
|
- lib/vagrant-dotvm/version.rb
|
90
86
|
- utils/add_host.sh
|
91
87
|
- utils/authorize_key.sh
|
data/examples/.gitignore
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
.vagrant/
|
data/examples/Vagrantfile
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# -*- mode: ruby -*-
|
2
|
-
# vi: set ft=ruby :
|
3
|
-
|
4
|
-
require 'vagrant-dotvm'
|
5
|
-
|
6
|
-
Vagrant.configure(2) do |config|
|
7
|
-
config_path = File.dirname(File.expand_path(__FILE__)) + "/config"
|
8
|
-
dotvm = VagrantPlugins::Dotvm::Dotvm.new config_path
|
9
|
-
dotvm.inject(config)
|
10
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# Go to %project.guest% directory, so relative paths will work here.
|
2
|
-
cd "$1"
|
3
|
-
|
4
|
-
# Ruby gems binaries go there.
|
5
|
-
PATH="/usr/local/bin:$PATH"
|
6
|
-
|
7
|
-
# Install puppet from EPEL repository
|
8
|
-
rpm --force -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
|
9
|
-
yum install -y puppet
|
10
|
-
|
11
|
-
# Install r10k - puppet module manager
|
12
|
-
gem install r10k
|
13
|
-
|
14
|
-
# Install required puppet modules
|
15
|
-
r10k puppetfile install
|
File without changes
|
@@ -1,52 +0,0 @@
|
|
1
|
-
machines:
|
2
|
-
- nick: machine1
|
3
|
-
name: machine1.example.com
|
4
|
-
box: chef/centos-7.0
|
5
|
-
memory: 1024
|
6
|
-
cpus: 1
|
7
|
-
cpucap: 100
|
8
|
-
primary: true
|
9
|
-
natnet: 192.168.22.0/24
|
10
|
-
boot_timeout: 300
|
11
|
-
box_check_update: true
|
12
|
-
box_version: ">= 0"
|
13
|
-
graceful_halt_timeout: 60
|
14
|
-
post_up_message: "hello!"
|
15
|
-
autostart: true
|
16
|
-
networks:
|
17
|
-
- net: private_network
|
18
|
-
type: static
|
19
|
-
ip: 192.168.56.100
|
20
|
-
mask: 255.255.255.0
|
21
|
-
interface: "intnet0"
|
22
|
-
- net: public_network
|
23
|
-
type: dhcp
|
24
|
-
bridge: "en0: Wi-Fi (AirPort)"
|
25
|
-
- net: forwarded_port
|
26
|
-
guest: 80
|
27
|
-
host: 54321
|
28
|
-
protocol: tcp
|
29
|
-
authorized_keys:
|
30
|
-
- type: file
|
31
|
-
path: "~/.ssh/id_rsa.pub"
|
32
|
-
- type: static
|
33
|
-
key: "ssh-rsa fakeSSHpubKEY km@laptop"
|
34
|
-
provision:
|
35
|
-
- type: file
|
36
|
-
source: "%project.host%/config.ini"
|
37
|
-
destination: "~/config.ini"
|
38
|
-
- type: shell
|
39
|
-
path: "%project.host%/bootstrap.sh"
|
40
|
-
privileged: true
|
41
|
-
args:
|
42
|
-
- "%project.guest%"
|
43
|
-
- type: puppet
|
44
|
-
manifests_path: "%project.host%"
|
45
|
-
manifest_file: "default.pp"
|
46
|
-
module_path: "%project.host%/modules"
|
47
|
-
shared_folders:
|
48
|
-
- host: ~/projects
|
49
|
-
guest: /srv/www
|
50
|
-
disabled: false
|
51
|
-
create: false
|
52
|
-
type: null
|
File without changes
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module VagrantPlugins
|
2
|
-
module Dotvm
|
3
|
-
module Config
|
4
|
-
class Root < AbstractConfig
|
5
|
-
OPTIONS_CATEGORIES = [
|
6
|
-
:ssh,
|
7
|
-
:winrm,
|
8
|
-
:vagrant,
|
9
|
-
]
|
10
|
-
|
11
|
-
include OptionsSetter
|
12
|
-
|
13
|
-
attr_reader :machines
|
14
|
-
attr_reader :options # mixin
|
15
|
-
attr_reader :vars
|
16
|
-
|
17
|
-
def machines=(machines)
|
18
|
-
ensure_type machines, Array, 'machines'
|
19
|
-
@machines = convert_array(machines, Machine.name)
|
20
|
-
end
|
21
|
-
|
22
|
-
def vars=(vars)
|
23
|
-
ensure_type vars, Hash, 'vars'
|
24
|
-
@vars = vars
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module VagrantPlugins
|
2
|
-
module Dotvm
|
3
|
-
module Injector
|
4
|
-
class Root < AbstractInjector
|
5
|
-
def self.inject(config: nil, vc: nil)
|
6
|
-
config.options.to_h.each do |category, options|
|
7
|
-
options.to_a.each do |option|
|
8
|
-
vc.send(category).send("#{option.name}=", option.value)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
config.machines.to_a.each do |machine_cfg|
|
13
|
-
Machine.inject machine_cfg: machine_cfg, vc: vc
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end # Root
|
17
|
-
end # Injector
|
18
|
-
end # Dotvm
|
19
|
-
end # VagrantPlugins
|