vagrant-invade 0.5.5 → 0.6.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/.gitignore +2 -0
- data/.idea/dictionaries/lenste.xml +14 -0
- data/Gemfile +5 -1
- data/Gemfile.lock +81 -1
- data/README.md +37 -4
- data/invade.yml.dist +6 -0
- data/lib/vagrant-invade/action/check.rb +44 -0
- data/lib/vagrant-invade/action/config.rb +4 -3
- data/lib/vagrant-invade/action/create.rb +30 -63
- data/lib/vagrant-invade/action/process.rb +139 -0
- data/lib/vagrant-invade/action.rb +21 -14
- data/lib/vagrant-invade/command/build.rb +6 -9
- data/lib/vagrant-invade/command/check.rb +33 -0
- data/lib/vagrant-invade/command/init.rb +3 -3
- data/lib/vagrant-invade/command/root.rb +15 -9
- data/lib/vagrant-invade/command/validate.rb +8 -7
- data/lib/vagrant-invade/extend.rb +24 -0
- data/lib/vagrant-invade/generator/type.rb +15 -0
- data/lib/vagrant-invade/generator.rb +48 -4
- data/lib/vagrant-invade/helper/checksum.rb +58 -0
- data/lib/vagrant-invade/helper.rb +9 -0
- data/lib/vagrant-invade/{builder → module/hostmanager}/hostmanager.rb +3 -7
- data/lib/vagrant-invade/module/hostmanager/rules.yml +15 -0
- data/lib/vagrant-invade/{template/hostmanager.erb → module/hostmanager/template.erb} +1 -1
- data/lib/vagrant-invade/module/invade/invade.rb +12 -0
- data/lib/vagrant-invade/module/invade/machine/machine.rb +46 -0
- data/lib/vagrant-invade/{template/machine.erb → module/invade/machine/template.erb} +6 -2
- data/lib/vagrant-invade/{builder/network → module/network/forwarded_port}/forwarded_port.rb +3 -5
- data/lib/vagrant-invade/module/network/forwarded_port/rules.yml +19 -0
- data/lib/vagrant-invade/module/network/forwarded_port/template.erb +8 -0
- data/lib/vagrant-invade/module/network/network.rb +13 -0
- data/lib/vagrant-invade/{builder/network/private_network.rb → module/network/private/private.rb} +25 -11
- data/lib/vagrant-invade/module/network/private/rules.yml +16 -0
- data/lib/vagrant-invade/module/network/private/template.erb +5 -0
- data/lib/vagrant-invade/{builder/network/public_network.rb → module/network/public/public.rb} +3 -5
- data/lib/vagrant-invade/module/network/public/rules.yml +13 -0
- data/lib/vagrant-invade/{template/network/public_network.erb → module/network/public/template.erb} +0 -0
- data/lib/vagrant-invade/module/nfs/nfs.rb +36 -0
- data/lib/vagrant-invade/module/nfs/rules.yml +12 -0
- data/lib/vagrant-invade/module/nfs/template.erb +12 -0
- data/lib/vagrant-invade/{builder/plugin → module/plugin/hostmanager}/hostmanager.rb +7 -10
- data/lib/vagrant-invade/module/plugin/hostmanager/rules.yml +4 -0
- data/lib/vagrant-invade/{template/plugin/hostmanager.erb → module/plugin/hostmanager/template.erb} +0 -0
- data/lib/vagrant-invade/module/plugin/plugin.rb +13 -0
- data/lib/vagrant-invade/{builder/plugin → module/plugin/r10k}/r10k.rb +6 -9
- data/lib/vagrant-invade/module/plugin/r10k/rules.yml +15 -0
- data/lib/vagrant-invade/{template/plugin/r10k.erb → module/plugin/r10k/template.erb} +0 -0
- data/lib/vagrant-invade/module/plugin/winnfsd/rules.yml +10 -0
- data/lib/vagrant-invade/{template/plugin/winnfsd.erb → module/plugin/winnfsd/template.erb} +0 -0
- data/lib/vagrant-invade/{builder/plugin → module/plugin/winnfsd}/winnfsd.rb +5 -8
- data/lib/vagrant-invade/module/provider/provider.rb +12 -0
- data/lib/vagrant-invade/module/provider/virtualbox/rules.yml +25 -0
- data/lib/vagrant-invade/module/provider/virtualbox/template.erb +26 -0
- data/lib/vagrant-invade/{builder/provider → module/provider/virtualbox}/virtualbox.rb +6 -6
- data/lib/vagrant-invade/module/provider/vmware/rules.yml +13 -0
- data/lib/vagrant-invade/{template/provider/vmware.erb → module/provider/vmware/template.erb} +9 -0
- data/lib/vagrant-invade/{builder/provider → module/provider/vmware}/vmware.rb +4 -6
- data/lib/vagrant-invade/module/provision/provision.rb +15 -0
- data/lib/vagrant-invade/{builder/provision → module/provision/puppet_agent}/puppet_agent.rb +3 -6
- data/lib/vagrant-invade/module/provision/puppet_agent/rules.yml +19 -0
- data/lib/vagrant-invade/{template/provision/puppet_agent.erb → module/provision/puppet_agent/template.erb} +0 -0
- data/lib/vagrant-invade/{builder/provision → module/provision/puppet_apply}/puppet_apply.rb +11 -6
- data/lib/vagrant-invade/module/provision/puppet_apply/rules.yml +41 -0
- data/lib/vagrant-invade/module/provision/puppet_apply/template.erb +41 -0
- data/lib/vagrant-invade/module/provision/salt/rules.yml +64 -0
- data/lib/vagrant-invade/module/provision/salt/salt.rb +61 -0
- data/lib/vagrant-invade/module/provision/salt/template.erb +67 -0
- data/lib/vagrant-invade/module/provision/shell/rules.yml +12 -0
- data/lib/vagrant-invade/{builder/provision → module/provision/shell}/shell.rb +6 -10
- data/lib/vagrant-invade/module/provision/shell/template.erb +1 -0
- data/lib/vagrant-invade/module/provision/shell_inline/rules.yml +12 -0
- data/lib/vagrant-invade/{builder/provision → module/provision/shell_inline}/shell_inline.rb +6 -10
- data/lib/vagrant-invade/module/provision/shell_inline/template.erb +1 -0
- data/lib/vagrant-invade/module/ssh/rules.yml +48 -0
- data/lib/vagrant-invade/{builder → module/ssh}/ssh.rb +4 -6
- data/lib/vagrant-invade/module/ssh/template.erb +1 -0
- data/lib/vagrant-invade/{builder/synced_folder → module/synced_folder/nfs}/nfs.rb +3 -6
- data/lib/vagrant-invade/module/synced_folder/nfs/rules.yml +22 -0
- data/lib/vagrant-invade/module/synced_folder/nfs/template.erb +2 -0
- data/lib/vagrant-invade/module/synced_folder/synced_folder.rb +12 -0
- data/lib/vagrant-invade/module/synced_folder/virtualbox/rules.yml +21 -0
- data/lib/vagrant-invade/{template/synced_folder/virtualbox.erb → module/synced_folder/virtualbox/template.erb} +0 -0
- data/lib/vagrant-invade/{builder/synced_folder → module/synced_folder/virtualbox}/virtualbox.rb +3 -6
- data/lib/vagrant-invade/module/vm/rules.yml +9 -0
- data/lib/vagrant-invade/{template/vm/vm.erb → module/vm/template.erb} +0 -0
- data/lib/vagrant-invade/{builder → module/vm}/vm.rb +3 -7
- data/lib/vagrant-invade/module.rb +26 -0
- data/lib/vagrant-invade/plugin.rb +3 -5
- data/lib/vagrant-invade/validator/ruleset/yaml_ruleset.rb +97 -0
- data/lib/vagrant-invade/validator/ruleset.rb +12 -0
- data/lib/vagrant-invade/validator/type/type_array.rb +38 -0
- data/lib/vagrant-invade/validator/type/type_boolean.rb +38 -0
- data/lib/vagrant-invade/validator/type/type_hash.rb +39 -0
- data/lib/vagrant-invade/validator/type/type_integer.rb +46 -0
- data/lib/vagrant-invade/validator/type/type_string.rb +42 -0
- data/lib/vagrant-invade/validator/type/type_string_array.rb +42 -0
- data/lib/vagrant-invade/validator/type.rb +14 -0
- data/lib/vagrant-invade/validator.rb +51 -119
- data/lib/vagrant-invade/version.rb +1 -1
- data/lib/vagrant-invade.rb +3 -1
- metadata +85 -82
- data/lib/vagrant-invade/action/generate.rb +0 -115
- data/lib/vagrant-invade/action/validate.rb +0 -161
- data/lib/vagrant-invade/builder/machine.rb +0 -45
- data/lib/vagrant-invade/builder/network.rb +0 -13
- data/lib/vagrant-invade/builder/plugin.rb +0 -13
- data/lib/vagrant-invade/builder/provider.rb +0 -12
- data/lib/vagrant-invade/builder/provision.rb +0 -14
- data/lib/vagrant-invade/builder/synced_folder.rb +0 -12
- data/lib/vagrant-invade/builder/vagrantfile.rb +0 -36
- data/lib/vagrant-invade/builder.rb +0 -20
- data/lib/vagrant-invade/generator/hostmanager.rb +0 -23
- data/lib/vagrant-invade/generator/machine.rb +0 -25
- data/lib/vagrant-invade/generator/machine_part/network.rb +0 -38
- data/lib/vagrant-invade/generator/machine_part/plugin.rb +0 -39
- data/lib/vagrant-invade/generator/machine_part/provider.rb +0 -36
- data/lib/vagrant-invade/generator/machine_part/provision.rb +0 -40
- data/lib/vagrant-invade/generator/machine_part/ssh.rb +0 -27
- data/lib/vagrant-invade/generator/machine_part/synced_folder.rb +0 -35
- data/lib/vagrant-invade/generator/machine_part/vm.rb +0 -27
- data/lib/vagrant-invade/generator/machine_part.rb +0 -23
- data/lib/vagrant-invade/generator/vagrantfile.rb +0 -23
- data/lib/vagrant-invade/template/network/forwarded_port.erb +0 -8
- data/lib/vagrant-invade/template/network/private_network.erb +0 -2
- data/lib/vagrant-invade/template/provider/virtualbox.erb +0 -11
- data/lib/vagrant-invade/template/provision/puppet_apply.erb +0 -21
- data/lib/vagrant-invade/template/provision/shell.erb +0 -3
- data/lib/vagrant-invade/template/provision/shell_inline.erb +0 -3
- data/lib/vagrant-invade/template/ssh/ssh.erb +0 -2
- data/lib/vagrant-invade/template/synced_folder/nfs.erb +0 -12
- data/lib/vagrant-invade/template/v2.erb +0 -10
- data/lib/vagrant-invade/validator/hostmanager.rb +0 -56
- data/lib/vagrant-invade/validator/invade.rb +0 -38
- data/lib/vagrant-invade/validator/network/forwarded_port.rb +0 -68
- data/lib/vagrant-invade/validator/network/private_network.rb +0 -44
- data/lib/vagrant-invade/validator/network/public_network.rb +0 -56
- data/lib/vagrant-invade/validator/network.rb +0 -13
- data/lib/vagrant-invade/validator/plugin/hostmanager.rb +0 -34
- data/lib/vagrant-invade/validator/plugin/r10k.rb +0 -53
- data/lib/vagrant-invade/validator/plugin/winnfsd.rb +0 -46
- data/lib/vagrant-invade/validator/plugin.rb +0 -13
- data/lib/vagrant-invade/validator/provider/virtualbox.rb +0 -46
- data/lib/vagrant-invade/validator/provider/vmware.rb +0 -27
- data/lib/vagrant-invade/validator/provider.rb +0 -39
- data/lib/vagrant-invade/validator/provision/puppet_agent.rb +0 -68
- data/lib/vagrant-invade/validator/provision/puppet_apply.rb +0 -62
- data/lib/vagrant-invade/validator/provision/shell.rb +0 -53
- data/lib/vagrant-invade/validator/provision/shell_inline.rb +0 -53
- data/lib/vagrant-invade/validator/provision.rb +0 -24
- data/lib/vagrant-invade/validator/ssh.rb +0 -31
- data/lib/vagrant-invade/validator/synced_folder/nfs.rb +0 -46
- data/lib/vagrant-invade/validator/synced_folder/vb.rb +0 -52
- data/lib/vagrant-invade/validator/synced_folder.rb +0 -36
- data/lib/vagrant-invade/validator/vm.rb +0 -45
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e06288dca14df145c0464799d0da097feab7916
|
|
4
|
+
data.tar.gz: 5a151c1e3e863aabfeb0497df3874159dad6a13a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b1339ac0eda98c1df71fd55261db75e03deeab302e3afcb7d2dc24e435f8ab62b040e73a8554a329e39ed09970f0056b5763a099d14e71f0a467d4177ad4730
|
|
7
|
+
data.tar.gz: 5a59b6bf983099845b2c3b5ea8af59d0ac1a56e3beefe1323c06a823504e145637fe5ce8e7aa90e733c7f67f2e53d1cdbd378334660ba44f4a8b92711e35c569
|
data/.gitignore
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<component name="ProjectDictionaryState">
|
|
2
|
+
<dictionary name="lenste">
|
|
3
|
+
<words>
|
|
4
|
+
<w>eruby</w>
|
|
5
|
+
<w>facter</w>
|
|
6
|
+
<w>masterless</w>
|
|
7
|
+
<w>puppetfile</w>
|
|
8
|
+
<w>syncdir</w>
|
|
9
|
+
<w>virtualbox</w>
|
|
10
|
+
<w>vmware</w>
|
|
11
|
+
<w>winnfsd</w>
|
|
12
|
+
</words>
|
|
13
|
+
</dictionary>
|
|
14
|
+
</component>
|
data/Gemfile
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
source "https://rubygems.org"
|
|
2
2
|
|
|
3
3
|
group :development do
|
|
4
|
+
gem "rsense"
|
|
4
5
|
gem "vagrant", git: "https://github.com/mitchellh/vagrant.git", :ref => 'v1.8.5'
|
|
5
|
-
gem "vagrant-hostmanager", git: "https://github.com/devopsgroup-io/vagrant-hostmanager"
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
group :plugins do
|
|
9
9
|
gem "vagrant-invade", path: "."
|
|
10
|
+
gem "vagrant-hostmanager", git: "https://github.com/devopsgroup-io/vagrant-hostmanager"
|
|
11
|
+
gem "vagrant-r10k", git: "https://github.com/jantman/vagrant-r10k"
|
|
12
|
+
# Windows only
|
|
13
|
+
# gem "vagrant-winnfsd", git: "https://github.com/winnfsd/vagrant-winnfsd"
|
|
10
14
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -4,6 +4,13 @@ GIT
|
|
|
4
4
|
specs:
|
|
5
5
|
vagrant-hostmanager (1.8.5)
|
|
6
6
|
|
|
7
|
+
GIT
|
|
8
|
+
remote: https://github.com/jantman/vagrant-r10k
|
|
9
|
+
revision: aa33372532fc031d26da6b059bea3ff113a88947
|
|
10
|
+
specs:
|
|
11
|
+
vagrant-r10k (0.4.1)
|
|
12
|
+
r10k (~> 1.5.0)
|
|
13
|
+
|
|
7
14
|
GIT
|
|
8
15
|
remote: https://github.com/mitchellh/vagrant.git
|
|
9
16
|
revision: 93f9528687b9a737585d22bc4db5d2ab5d9852d3
|
|
@@ -38,10 +45,28 @@ GEM
|
|
|
38
45
|
builder (3.2.2)
|
|
39
46
|
childprocess (0.5.9)
|
|
40
47
|
ffi (~> 1.0, >= 1.0.11)
|
|
48
|
+
colored (1.2)
|
|
49
|
+
cri (2.6.1)
|
|
50
|
+
colored (~> 1.2)
|
|
41
51
|
domain_name (0.5.20160615)
|
|
42
52
|
unf (>= 0.0.5, < 1.0.0)
|
|
43
53
|
erubis (2.7.0)
|
|
54
|
+
faraday (0.9.2)
|
|
55
|
+
multipart-post (>= 1.2, < 3)
|
|
56
|
+
faraday_middleware (0.9.2)
|
|
57
|
+
faraday (>= 0.7.4, < 0.10)
|
|
58
|
+
faraday_middleware-multi_json (0.0.6)
|
|
59
|
+
faraday_middleware
|
|
60
|
+
multi_json
|
|
61
|
+
fast_gettext (1.1.0)
|
|
44
62
|
ffi (1.9.14)
|
|
63
|
+
filetree (1.0.0)
|
|
64
|
+
gettext (3.2.2)
|
|
65
|
+
locale (>= 2.0.5)
|
|
66
|
+
text (>= 1.3.0)
|
|
67
|
+
gettext-setup (0.6)
|
|
68
|
+
fast_gettext (~> 1.1.0)
|
|
69
|
+
gettext (>= 3.0.2)
|
|
45
70
|
gssapi (1.2.0)
|
|
46
71
|
ffi (>= 1.0.1)
|
|
47
72
|
gyoku (1.3.1)
|
|
@@ -49,13 +74,17 @@ GEM
|
|
|
49
74
|
hashicorp-checkpoint (0.1.4)
|
|
50
75
|
http-cookie (1.0.2)
|
|
51
76
|
domain_name (~> 0.5)
|
|
52
|
-
httpclient (2.8.
|
|
77
|
+
httpclient (2.8.2.2)
|
|
53
78
|
i18n (0.7.0)
|
|
79
|
+
jruby-jars (1.7.25)
|
|
80
|
+
jruby-parser (0.5.4)
|
|
81
|
+
json_pure (1.8.3)
|
|
54
82
|
listen (3.1.5)
|
|
55
83
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
56
84
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
57
85
|
ruby_dep (~> 1.2)
|
|
58
86
|
little-plugger (1.1.4)
|
|
87
|
+
locale (2.1.2)
|
|
59
88
|
log4r (1.1.10)
|
|
60
89
|
logging (2.1.0)
|
|
61
90
|
little-plugger (~> 1.1)
|
|
@@ -65,6 +94,7 @@ GEM
|
|
|
65
94
|
mime-types-data (3.2016.0521)
|
|
66
95
|
mini_portile2 (2.0.0)
|
|
67
96
|
multi_json (1.12.1)
|
|
97
|
+
multipart-post (2.0.0)
|
|
68
98
|
net-scp (1.1.2)
|
|
69
99
|
net-ssh (>= 2.6.5)
|
|
70
100
|
net-sftp (2.1.2)
|
|
@@ -74,6 +104,19 @@ GEM
|
|
|
74
104
|
nokogiri (1.6.7.1)
|
|
75
105
|
mini_portile2 (~> 2.0.0.rc2)
|
|
76
106
|
nori (2.6.0)
|
|
107
|
+
r10k (1.5.1)
|
|
108
|
+
colored (= 1.2)
|
|
109
|
+
cri (~> 2.6.1)
|
|
110
|
+
faraday (~> 0.9.0)
|
|
111
|
+
faraday_middleware (~> 0.9.0)
|
|
112
|
+
faraday_middleware-multi_json (~> 0.0.6)
|
|
113
|
+
json_pure (~> 1.8)
|
|
114
|
+
log4r (= 1.1.10)
|
|
115
|
+
multi_json (~> 1.10)
|
|
116
|
+
semantic_puppet (~> 0.1.0)
|
|
117
|
+
rack (1.6.4)
|
|
118
|
+
rack-protection (1.5.3)
|
|
119
|
+
rack
|
|
77
120
|
rb-fsevent (0.9.7)
|
|
78
121
|
rb-inotify (0.9.7)
|
|
79
122
|
ffi (>= 0.5.0)
|
|
@@ -83,9 +126,44 @@ GEM
|
|
|
83
126
|
http-cookie (>= 1.0.2, < 2.0)
|
|
84
127
|
mime-types (>= 1.16, < 4.0)
|
|
85
128
|
netrc (~> 0.8)
|
|
129
|
+
rsense (0.5.18)
|
|
130
|
+
bundler (~> 1.6)
|
|
131
|
+
filetree (~> 1.0.0)
|
|
132
|
+
jruby-jars (~> 1.7.4)
|
|
133
|
+
jruby-parser (~> 0.5.4)
|
|
134
|
+
rsense-core (~> 0.6.6)
|
|
135
|
+
rsense-server (~> 0.5.18)
|
|
136
|
+
spoon (~> 0.0.4)
|
|
137
|
+
thor (>= 0.18.1, < 0.20)
|
|
138
|
+
rsense-core (0.6.6)
|
|
139
|
+
filetree (~> 1.0.0)
|
|
140
|
+
jruby-jars (~> 1.7.4)
|
|
141
|
+
jruby-parser (~> 0.5.4)
|
|
142
|
+
spoon (~> 0.0.4)
|
|
143
|
+
thor (>= 0.18.1, < 0.20)
|
|
144
|
+
rsense-server (0.5.18)
|
|
145
|
+
bundler (~> 1.6)
|
|
146
|
+
faraday
|
|
147
|
+
filetree (~> 1.0.0)
|
|
148
|
+
jruby-jars (~> 1.7.4)
|
|
149
|
+
jruby-parser (~> 0.5.4)
|
|
150
|
+
rsense-core (~> 0.6.6)
|
|
151
|
+
sinatra
|
|
152
|
+
spoon (~> 0.0.4)
|
|
86
153
|
ruby_dep (1.4.0)
|
|
87
154
|
rubyntlm (0.6.0)
|
|
88
155
|
rubyzip (1.2.0)
|
|
156
|
+
semantic_puppet (0.1.4)
|
|
157
|
+
gettext-setup (>= 0.3)
|
|
158
|
+
sinatra (1.4.7)
|
|
159
|
+
rack (~> 1.5)
|
|
160
|
+
rack-protection (~> 1.4)
|
|
161
|
+
tilt (>= 1.3, < 3)
|
|
162
|
+
spoon (0.0.4)
|
|
163
|
+
ffi
|
|
164
|
+
text (1.3.1)
|
|
165
|
+
thor (0.19.1)
|
|
166
|
+
tilt (2.0.5)
|
|
89
167
|
unf (0.1.4)
|
|
90
168
|
unf_ext
|
|
91
169
|
unf_ext (0.0.7.2)
|
|
@@ -108,9 +186,11 @@ PLATFORMS
|
|
|
108
186
|
ruby
|
|
109
187
|
|
|
110
188
|
DEPENDENCIES
|
|
189
|
+
rsense
|
|
111
190
|
vagrant!
|
|
112
191
|
vagrant-hostmanager!
|
|
113
192
|
vagrant-invade!
|
|
193
|
+
vagrant-r10k!
|
|
114
194
|
|
|
115
195
|
BUNDLED WITH
|
|
116
196
|
1.12.5
|
data/README.md
CHANGED
|
@@ -17,11 +17,39 @@ There are new commands you can use to init, validate and build your Vagrantfile.
|
|
|
17
17
|
### Init
|
|
18
18
|
`vagrant invade init` creates the default **invade.yml** configuration file for you.
|
|
19
19
|
|
|
20
|
+
### Check
|
|
21
|
+
`vagrant invade check` will check the checksum of Vagrantfile and invade.yml data. Helpful to check the files without using the build command.
|
|
22
|
+
|
|
20
23
|
### Validate
|
|
21
24
|
`vagrant invade validate` will validate the **invade.yml** file and gives you a **detailed output of missing values, wrong parameters and defaults** for each option.
|
|
22
25
|
|
|
23
26
|
### Build
|
|
24
|
-
`vagrant invade build` will **build a Vagrantfile** based on what you
|
|
27
|
+
`vagrant invade build` will **build a Vagrantfile** based on what you configured in the 'invade.yml' file and place it to the directory you did run the command. The old Vagrantfile will be saved as backup.
|
|
28
|
+
|
|
29
|
+
## Feature Support
|
|
30
|
+
* Box
|
|
31
|
+
* Network
|
|
32
|
+
* Provider
|
|
33
|
+
* VirtualBox
|
|
34
|
+
* VMWare
|
|
35
|
+
* Provision
|
|
36
|
+
* shell
|
|
37
|
+
* inline
|
|
38
|
+
* puppet-agent
|
|
39
|
+
* puppet-apply
|
|
40
|
+
* Synced Folder
|
|
41
|
+
* VB
|
|
42
|
+
* NFS (use *vagrant-winnfsd* plugin to support Windows)
|
|
43
|
+
|
|
44
|
+
**Not all features are supported yet. See source code for available options.**
|
|
45
|
+
|
|
46
|
+
With command `vagrant invade init` you can create an example invade.yml with all available options you can pick from.
|
|
47
|
+
|
|
48
|
+
### 3rd party plugins
|
|
49
|
+
* [vagrant-hostmanager](https://github.com/devopsgroup-io/vagrant-hostmanager)
|
|
50
|
+
* [vagrant-r10k](https://github.com/jantman/vagrant-r10k)
|
|
51
|
+
* [vagrant-winnfsd](https://github.com/winnfsd/vagrant-winnfsd)
|
|
52
|
+
|
|
25
53
|
|
|
26
54
|
## Development
|
|
27
55
|
You are able to collaborate to make this plugin even better. You just need a simple setup of ruby software to make it work. You could also use RVM to keep your ruby environment clean.
|
|
@@ -32,6 +60,11 @@ You are able to collaborate to make this plugin even better. You just need a sim
|
|
|
32
60
|
3. RubyGems
|
|
33
61
|
4. Bundler
|
|
34
62
|
|
|
35
|
-
### Setup
|
|
36
|
-
1.
|
|
37
|
-
2.
|
|
63
|
+
### Setup with RVM
|
|
64
|
+
1. `rvm gemset create vagrant-invade`
|
|
65
|
+
2. `rvm gemset use vagrant-invade`
|
|
66
|
+
1. `gem install bundler`
|
|
67
|
+
2. `bundle install`
|
|
68
|
+
|
|
69
|
+
### Execute vagrant while developing a plugin
|
|
70
|
+
1. `bundle exec vagrant [command]`
|
data/invade.yml.dist
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Invade
|
|
3
|
+
module Action
|
|
4
|
+
|
|
5
|
+
include Vagrant::Action::Builtin
|
|
6
|
+
|
|
7
|
+
class Check
|
|
8
|
+
|
|
9
|
+
def initialize(app, env)
|
|
10
|
+
@app = app
|
|
11
|
+
@env = env
|
|
12
|
+
@logger = Log4r::Logger.new('vagrant::invade::action::init')
|
|
13
|
+
@dir = Dir.pwd
|
|
14
|
+
|
|
15
|
+
ENV['VAGRANT_VAGRANTFILE'] ? @vagrantfile_name = ENV['VAGRANT_VAGRANTFILE'] : @vagrantfile_name = "Vagrantfile"
|
|
16
|
+
@root_path = Dir.pwd
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def call(env)
|
|
20
|
+
|
|
21
|
+
data = @env[:invade]['vagrantfile']
|
|
22
|
+
|
|
23
|
+
checksum_helper = Helper::Checksum.new @env
|
|
24
|
+
vagrantfile_path = "#{@root_path}/#{@vagrantfile_name}"
|
|
25
|
+
md5_current = checksum_helper.get_checksum_of_file(vagrantfile_path)
|
|
26
|
+
md5_generated = checksum_helper.get_checksum_of_data(data)
|
|
27
|
+
|
|
28
|
+
if checksum_helper.check
|
|
29
|
+
@env[:ui].success "[Invade][CHECK] #{md5_current}"
|
|
30
|
+
@env[:ui].success "[Invade][CHECK] Checksum is valid!"
|
|
31
|
+
else
|
|
32
|
+
@env[:ui].warn "[Invade][CHECK] Changes found. Checksum is not equal!"
|
|
33
|
+
@env[:ui].warn "[Invade][CHECK] #{@vagrantfile_name} \tMD5:#{md5_current}"
|
|
34
|
+
@env[:ui].warn "[Invade][CHECK] invade.yml\tMD5:#{md5_generated}"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
@app.call(env)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -11,6 +11,7 @@ module VagrantPlugins
|
|
|
11
11
|
def initialize(app, env)
|
|
12
12
|
@app = app
|
|
13
13
|
@env = env
|
|
14
|
+
|
|
14
15
|
@logger = Log4r::Logger.new('vagrant::invade::action::config')
|
|
15
16
|
@dir = Dir.pwd
|
|
16
17
|
end
|
|
@@ -18,8 +19,8 @@ module VagrantPlugins
|
|
|
18
19
|
def call(env)
|
|
19
20
|
|
|
20
21
|
config_file_path = "#{@dir}/invade.yml"
|
|
21
|
-
template_file_path = "#{config_file_path}.dist"
|
|
22
|
-
default_config_file_path = "#{File.expand_path('../../../../', __FILE__)}/invade.yml.dist"
|
|
22
|
+
# template_file_path = "#{config_file_path}.dist"
|
|
23
|
+
# default_config_file_path = "#{File.expand_path('../../../../', __FILE__)}/invade.yml.dist"
|
|
23
24
|
|
|
24
25
|
# Returns with invade in environment if Invade Configuration file already exists
|
|
25
26
|
if File.exist?(config_file_path)
|
|
@@ -29,7 +30,7 @@ module VagrantPlugins
|
|
|
29
30
|
# Add invade configuration as global environment variable since we know configuration file exists
|
|
30
31
|
env[:invade] = Invade.get_invade_config
|
|
31
32
|
unless env[:invade]
|
|
32
|
-
raise
|
|
33
|
+
raise 'Something went wrong. Configuration file could not be loaded.'
|
|
33
34
|
end
|
|
34
35
|
else
|
|
35
36
|
@env[:ui].info "[Invade] 'invade.yml' not exists. You forgot a 'vagrant invade init'?"
|
|
@@ -9,28 +9,33 @@ module VagrantPlugins
|
|
|
9
9
|
def initialize(app, env)
|
|
10
10
|
@app = app
|
|
11
11
|
@env = env
|
|
12
|
+
@ui = env[:ui]
|
|
12
13
|
@logger = Log4r::Logger.new('vagrant::invade::action::create')
|
|
14
|
+
|
|
15
|
+
ENV['VAGRANT_VAGRANTFILE'] ? @vagrantfile_name = ENV['VAGRANT_VAGRANTFILE'] : @vagrantfile_name = 'Vagrantfile'
|
|
16
|
+
@root_path = Dir.pwd
|
|
13
17
|
end
|
|
14
18
|
|
|
15
19
|
def call(env)
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
# Since it is possible to set it through the environment we need to validate it
|
|
19
|
-
root_path = Dir.pwd
|
|
20
|
-
ENV['VAGRANT_VAGRANTFILE'] ? vagrantfile_name = ENV['VAGRANT_VAGRANTFILE'] : vagrantfile_name = "Vagrantfile"
|
|
21
|
+
data = @env[:invade]['vagrantfile']
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
raise "[Invade]: No generated data found. Can't build Vagrantfile."
|
|
27
|
-
end
|
|
23
|
+
checksum_helper = Helper::Checksum.new @env
|
|
24
|
+
vagrantfile_path = "#{@root_path}/#{@vagrantfile_name}"
|
|
25
|
+
md5_current = checksum_helper.get_checksum_of_file(vagrantfile_path)
|
|
26
|
+
md5_generated = checksum_helper.get_checksum_of_data(data)
|
|
28
27
|
|
|
29
28
|
# Write new Vagrantfile if checksum is not equal
|
|
30
|
-
if !
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
if !checksum_helper.check
|
|
30
|
+
write_vagrantfile(data, md5_current)
|
|
31
|
+
|
|
32
|
+
@env[:ui].success "[Invade][BUILD] Current : '#{md5_current}'"
|
|
33
|
+
@env[:ui].success "[Invade][BUILD] Generated : '#{md5_generated}'"
|
|
34
|
+
@env[:ui].success '[Invade][BUILD] Saved new Vagrantfile to:'
|
|
35
|
+
@env[:ui].success "[Invade][BUILD] #{vagrantfile_path}"
|
|
36
|
+
else
|
|
37
|
+
@ui.warn("[Invade][BUILD] Checksum: #{md5_current}")
|
|
38
|
+
@ui.warn('[Invade][BUILD] No changes found in invade.yml - Vagrantfile will remain untouched.')
|
|
34
39
|
end
|
|
35
40
|
|
|
36
41
|
@app.call(env)
|
|
@@ -38,63 +43,25 @@ module VagrantPlugins
|
|
|
38
43
|
|
|
39
44
|
private
|
|
40
45
|
|
|
41
|
-
|
|
42
|
-
def check_md5_checksum(ui, root_path, vagrantfile_name, generated_vagrantfile_data)
|
|
43
|
-
|
|
44
|
-
require 'digest'
|
|
45
|
-
|
|
46
|
-
md5_new = Digest::MD5.hexdigest(generated_vagrantfile_data)
|
|
47
|
-
|
|
48
|
-
if File.exists?("#{root_path}/#{vagrantfile_name}")
|
|
49
|
-
md5_current = Digest::MD5.file("#{root_path}/#{vagrantfile_name}").hexdigest
|
|
50
|
-
else
|
|
51
|
-
md5_current = 0
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
(md5_new.eql? md5_current) ? md5_check = true : md5_check = false
|
|
46
|
+
def write_vagrantfile(data, checksum)
|
|
55
47
|
|
|
56
|
-
|
|
57
|
-
ui.warn "[Invade] Checksum not equal!"
|
|
58
|
-
ui.warn "[Invade] Current : '#{md5_current}'"
|
|
59
|
-
ui.warn "[Invade] Generated : '#{md5_new}'"
|
|
48
|
+
vagrantfile = "#{@root_path}/#{@vagrantfile_name}"
|
|
60
49
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
ui.success "[Invade] Vagrantfile is still valid. Use '-f|--force' to force replacing it." unless @env[:invade_build_force]
|
|
65
|
-
|
|
66
|
-
true
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def reload(ui)
|
|
50
|
+
# Backup old Vagrantfile and safe it with checksum
|
|
51
|
+
backup_file = vagrantfile + '-' + "#{checksum}"
|
|
70
52
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
53
|
+
unless File.exist?(backup_file) || !File.exist?(vagrantfile)
|
|
54
|
+
File.rename(
|
|
55
|
+
vagrantfile,
|
|
56
|
+
backup_file
|
|
57
|
+
)
|
|
76
58
|
end
|
|
77
59
|
|
|
78
|
-
ui.warn '[Invade] Auto reload Vagrant with new Vagrantfile...'
|
|
79
|
-
sleep 2
|
|
80
|
-
|
|
81
|
-
Kernel.exec(command)
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def write_vagrantfile(ui, root_path, vagrantfile, vagrantfile_name, overwrite)
|
|
85
|
-
|
|
86
|
-
overwrite ?
|
|
87
|
-
vagrantfile_path = "#{root_path}/#{vagrantfile_name}" :
|
|
88
|
-
vagrantfile_path = "#{root_path}/#{vagrantfile_name}.new"
|
|
89
|
-
|
|
90
60
|
# Write new Vagrantfile
|
|
91
|
-
open(
|
|
92
|
-
f.puts
|
|
61
|
+
open(vagrantfile, 'w+') do |f|
|
|
62
|
+
f.puts data
|
|
93
63
|
end
|
|
94
64
|
|
|
95
|
-
overwrite ?
|
|
96
|
-
ui.warn("[Invade] Replaced Vagrantfile at '#{root_path}/#{vagrantfile_name}'.") :
|
|
97
|
-
ui.warn("[Invade] Saved new Vagrantfile at '#{root_path}/#{vagrantfile_name}.new'.")
|
|
98
65
|
end
|
|
99
66
|
end
|
|
100
67
|
|