vagrant-dsc 1.0.10 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/.vscode/launch.json +15 -0
- data/README.md +18 -0
- data/appveyor.yml +3 -2
- data/development/web/Vagrantfile +1 -1
- data/lib/vagrant-dsc/config.rb +5 -0
- data/lib/vagrant-dsc/locales/en.yml +3 -0
- data/lib/vagrant-dsc/provisioner.rb +16 -5
- data/lib/vagrant-dsc/templates/runner.ps1.erb +9 -0
- data/lib/vagrant-dsc/version.rb +1 -1
- data/spec/provisioner/provisioner_spec.rb +101 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb46c21c9dad5ddf2db40a8a841534d6f05a11e1
|
4
|
+
data.tar.gz: cc3926215945aa34552386b308336b6a59e664bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8405032a7b4fd7aa23daed69c33e378e0523cb855145dd2468bd0e8ec49eabba932ad1823ac6996927be042091a7e2083664c94d6c5e02d6f2202ae2f3867576
|
7
|
+
data.tar.gz: 80a245e2d999405d4f6843eb65c39727dc627929f1c905ccf5785eca6fb23f0f82b19370d0b397e998014ad3a2872762ebfe37e331bde0b83a74c8fe36245155
|
data/.gitignore
CHANGED
data/.vscode/launch.json
ADDED
data/README.md
CHANGED
@@ -64,6 +64,14 @@ In your Vagrantfile, add the following plugin and configure to your needs:
|
|
64
64
|
# @return [Array] Set of relative module paths.
|
65
65
|
dsc.module_path = ["manifests", "modules"]
|
66
66
|
|
67
|
+
# Set of modules that should installed from the [PowerShell Gallery](https://www.powershellgallery.com/)
|
68
|
+
#
|
69
|
+
# Requires Powershell 5 or PowerShellGet on box installed
|
70
|
+
#
|
71
|
+
# These modules are downloaded and installed when provisong.
|
72
|
+
# If module is allready installed no update is done.
|
73
|
+
dsc.module_install = ["xNetworking", "xComputerManagement"]
|
74
|
+
|
67
75
|
# The type of synced folders to use when sharing the data
|
68
76
|
# required for the provisioner to work properly.
|
69
77
|
#
|
@@ -144,6 +152,16 @@ bundle exec vagrant up
|
|
144
152
|
|
145
153
|
There is a test Vagrant DSC setup in `./development` that is a good example of a simple acceptance test.
|
146
154
|
|
155
|
+
### Visual Studio Code
|
156
|
+
|
157
|
+
You can run the test from Visual Studio Code. This needs the binstubs from bundler. Run
|
158
|
+
```
|
159
|
+
bundler install --binstubs
|
160
|
+
```
|
161
|
+
to get them.
|
162
|
+
|
163
|
+
After this you can run the tests with F5.
|
164
|
+
|
147
165
|
## Contributing
|
148
166
|
|
149
167
|
1. Fork it ( https://github.com/[my-github-username]/vagrant-dsc/fork )
|
data/appveyor.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
install:
|
2
2
|
- set PATH=C:\Ruby22\bin;%PATH%
|
3
|
-
-
|
3
|
+
- gem install bundler -v 1.12.5
|
4
|
+
- bundle _1.12.5_ install
|
4
5
|
|
5
6
|
build: off
|
6
7
|
|
@@ -10,4 +11,4 @@ before_test:
|
|
10
11
|
- bundle -v
|
11
12
|
|
12
13
|
test_script:
|
13
|
-
- bundle exec rake spec
|
14
|
+
- bundle _1.12.5_ exec rake spec
|
data/development/web/Vagrantfile
CHANGED
@@ -17,7 +17,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|
17
17
|
|
18
18
|
# Every Vagrant virtual environment requires a box to build off of.
|
19
19
|
config.vm.box = "mfellows/windows2012r2"
|
20
|
-
config.vm.box_version = "1.0.
|
20
|
+
config.vm.box_version = "1.0.1"
|
21
21
|
|
22
22
|
|
23
23
|
hostname = "vagrantdsc.local"
|
data/lib/vagrant-dsc/config.rb
CHANGED
@@ -61,6 +61,9 @@ module VagrantPlugins
|
|
61
61
|
# Temporary working directory on the guest machine.
|
62
62
|
attr_accessor :temp_dir
|
63
63
|
|
64
|
+
# Modules to install
|
65
|
+
attr_accessor :module_install
|
66
|
+
|
64
67
|
# Fully qualified path to the configuration file.
|
65
68
|
#
|
66
69
|
# Do not override this.
|
@@ -83,6 +86,7 @@ module VagrantPlugins
|
|
83
86
|
@configuration_params = {}
|
84
87
|
@synced_folder_type = UNSET_VALUE
|
85
88
|
@temp_dir = UNSET_VALUE
|
89
|
+
@module_install = UNSET_VALUE
|
86
90
|
@logger = Log4r::Logger.new("vagrant::vagrant_dsc")
|
87
91
|
end
|
88
92
|
|
@@ -99,6 +103,7 @@ module VagrantPlugins
|
|
99
103
|
@module_path = nil if @module_path == UNSET_VALUE
|
100
104
|
@synced_folder_type = nil if @synced_folder_type == UNSET_VALUE
|
101
105
|
@temp_dir = nil if @temp_dir == UNSET_VALUE
|
106
|
+
@module_install = nil if @module_install == UNSET_VALUE
|
102
107
|
@mof_path = nil if @mof_path == UNSET_VALUE
|
103
108
|
@configuration_name = File.basename(@configuration_file, File.extname(@configuration_file)) if @configuration_name == UNSET_VALUE
|
104
109
|
@manifests_path = File.dirname(@configuration_file) if @manifests_path == UNSET_VALUE
|
@@ -40,3 +40,6 @@ en:
|
|
40
40
|
"Absolute 'module_path' not allowed. Please provide a path relative to your Vagrantfile."
|
41
41
|
failure_status: |-
|
42
42
|
"DSC Status is \"Failure\"."
|
43
|
+
|
44
|
+
winRMAuthorizationError_recover: |-
|
45
|
+
The Host disconnect the active connection. Try to wait for the completion of DSC.
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require "log4r"
|
2
2
|
require 'erb'
|
3
|
-
require "vagrant/util/powershell"
|
4
3
|
|
5
4
|
module VagrantPlugins
|
6
5
|
module DSC
|
@@ -99,15 +98,21 @@ module VagrantPlugins
|
|
99
98
|
|
100
99
|
write_dsc_runner_script(generate_dsc_runner_script)
|
101
100
|
|
102
|
-
|
103
|
-
|
101
|
+
begin
|
102
|
+
run_dsc_apply
|
103
|
+
rescue VagrantPlugins::CommunicatorWinRM::Errors::AuthenticationFailed
|
104
|
+
# when install set a domain controller windows kills the active connection with a AuthenticationFailed.
|
105
|
+
# The DSC job is still running and new connections are possible, so try to wait
|
106
|
+
@machine.ui.info(I18n.t("vagrant_dsc.winRMAuthorizationError_recover"))
|
107
|
+
end
|
108
|
+
|
104
109
|
wait_for_dsc_completion
|
105
110
|
end
|
106
111
|
|
107
112
|
# Waits for the completion of the dsc configuration if dsc needs reboots. This currntly only works for WMF5 and needs wait_for_reboot
|
108
113
|
def wait_for_dsc_completion
|
109
|
-
|
110
|
-
|
114
|
+
powershell_version = get_guest_powershell_version
|
115
|
+
return if powershell_version.to_i < 5 || !@machine.guest.capability?(:wait_for_reboot)
|
111
116
|
dsc_running = true
|
112
117
|
|
113
118
|
while dsc_running
|
@@ -130,6 +135,11 @@ module VagrantPlugins
|
|
130
135
|
end
|
131
136
|
end
|
132
137
|
|
138
|
+
def get_guest_powershell_version
|
139
|
+
version = @machine.communicate.shell.powershell("$PSVersionTable.PSVersion.Major")
|
140
|
+
return version[:data][0][:stdout]
|
141
|
+
end
|
142
|
+
|
133
143
|
def get_lcm_state
|
134
144
|
state = @machine.communicate.shell.powershell("(Get-DscLocalConfigurationManager).LCMState")
|
135
145
|
return state[:data][0][:stdout]
|
@@ -211,6 +221,7 @@ module VagrantPlugins
|
|
211
221
|
configuration_name: @config.configuration_name,
|
212
222
|
manifests_path: @config.manifests_path,
|
213
223
|
temp_path: @config.temp_dir,
|
224
|
+
module_install: @config.module_install.nil? ? "" : @config.module_install.join(";"),
|
214
225
|
parameters: @config.configuration_params.map { |k,v| "#{k}" + (!v.nil? ? " \"#{v}\"": '') }.join(" ")
|
215
226
|
})
|
216
227
|
end
|
@@ -15,6 +15,15 @@ $env:PSModulePath="$absoluteModulePaths;${env:PSModulePath}"
|
|
15
15
|
("<%= options[:module_paths] %>".Split(";") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
16
16
|
<% end %>
|
17
17
|
|
18
|
+
<% if !options[:module_install].empty? %>
|
19
|
+
Write-Host "Ensure Modules"
|
20
|
+
if ((Get-PSRepository -Name PSGallery).InstallationPolicy -ne "Trusted") {
|
21
|
+
Set-PSRepository -Name PSGallery -InstallationPolicy "Trusted"
|
22
|
+
}
|
23
|
+
# Install-Modules only installs if the module is not installed
|
24
|
+
"<%= options[:module_install] %>".Split(";") | foreach { Install-Module $_ }
|
25
|
+
<% end %>
|
26
|
+
|
18
27
|
$script = $(Join-Path "<%= options[:temp_path] %>" "<%= options[:configuration_file_path] %>" -Resolve)
|
19
28
|
echo "PSModulePath Configured: ${env:PSModulePath}"
|
20
29
|
echo ""
|
data/lib/vagrant-dsc/version.rb
CHANGED
@@ -219,13 +219,40 @@ describe VagrantPlugins::DSC::Provisioner do
|
|
219
219
|
subject.provision
|
220
220
|
end
|
221
221
|
|
222
|
+
it "should try to recover if AuthenticationFailed" do
|
223
|
+
allow(communicator).to receive(:sudo)
|
224
|
+
allow(communicator).to receive(:test)
|
225
|
+
allow(communicator).to receive(:upload)
|
226
|
+
allow(subject).to receive(:verify_shared_folders).and_return(true)
|
227
|
+
allow(subject).to receive(:verify_dsc).and_return(true)
|
228
|
+
allow(subject).to receive(:run_dsc_apply).and_raise(VagrantPlugins::CommunicatorWinRM::Errors::AuthenticationFailed)
|
229
|
+
allow(guest).to receive(:capability?).with(:wait_for_reboot).and_return(true)
|
230
|
+
allow(guest).to receive(:capability).with(:wait_for_reboot)
|
231
|
+
expect(subject).to receive(:wait_for_dsc_completion)
|
232
|
+
|
233
|
+
subject.provision
|
234
|
+
end
|
235
|
+
|
236
|
+
it "should not try to recover from other exceptions" do
|
237
|
+
allow(communicator).to receive(:sudo)
|
238
|
+
allow(communicator).to receive(:test)
|
239
|
+
allow(communicator).to receive(:upload)
|
240
|
+
allow(subject).to receive(:verify_shared_folders).and_return(true)
|
241
|
+
allow(subject).to receive(:verify_dsc).and_return(true)
|
242
|
+
allow(guest).to receive(:capability?).with(:wait_for_reboot).and_return(true)
|
243
|
+
allow(guest).to receive(:capability).with(:wait_for_reboot)
|
244
|
+
allow(subject).to receive(:run_dsc_apply).and_raise()
|
245
|
+
|
246
|
+
expect{ subject.provision }.to raise_error(RuntimeError)
|
247
|
+
end
|
248
|
+
|
222
249
|
it "should wait for pending reboot" do
|
223
250
|
allow_any_instance_of(Object).to receive(:sleep)
|
224
251
|
allow(guest).to receive(:capability?).with(:wait_for_reboot).and_return(true)
|
225
252
|
allow(communicator).to receive(:shell).and_return(shell)
|
226
253
|
allow(subject).to receive(:get_lcm_state).and_return("PendingReboot", "Busy", "Sucess")
|
227
254
|
allow(subject).to receive(:get_configuration_status).and_return("Sucess")
|
228
|
-
allow(
|
255
|
+
allow(subject).to receive(:get_guest_powershell_version).and_return("5")
|
229
256
|
expect(guest).to receive(:capability).with(:wait_for_reboot)
|
230
257
|
|
231
258
|
subject.wait_for_dsc_completion
|
@@ -237,7 +264,7 @@ describe VagrantPlugins::DSC::Provisioner do
|
|
237
264
|
allow(communicator).to receive(:shell).and_return(shell)
|
238
265
|
allow(subject).to receive(:get_lcm_state).and_return("PendingReboot", "Busy", "PendingReboot", "Busy", "Idle")
|
239
266
|
allow(subject).to receive(:get_configuration_status).and_return("Success")
|
240
|
-
allow(
|
267
|
+
allow(subject).to receive(:get_guest_powershell_version).and_return("5")
|
241
268
|
expect(guest).to receive(:capability).twice.with(:wait_for_reboot)
|
242
269
|
|
243
270
|
subject.wait_for_dsc_completion
|
@@ -250,12 +277,28 @@ describe VagrantPlugins::DSC::Provisioner do
|
|
250
277
|
allow(guest).to receive(:capability).with(:wait_for_reboot)
|
251
278
|
allow(subject).to receive(:get_lcm_state).and_return("PendingReboot", "Busy", "PendingConfiguration")
|
252
279
|
allow(subject).to receive(:get_configuration_status).and_return("Failure")
|
253
|
-
allow(
|
280
|
+
allow(subject).to receive(:get_guest_powershell_version).and_return("5")
|
254
281
|
expect(subject).to receive(:show_dsc_failure_message)
|
255
282
|
|
256
283
|
subject.wait_for_dsc_completion
|
257
284
|
end
|
258
285
|
|
286
|
+
it "should not get the lcm state if powershell version is 4" do
|
287
|
+
allow(guest).to receive(:capability?).with(:wait_for_reboot).and_return(true)
|
288
|
+
allow(communicator).to receive(:shell).and_return(shell)
|
289
|
+
allow(subject).to receive(:get_guest_powershell_version).and_return("4")
|
290
|
+
expect(subject).to_not receive(:get_lcm_state)
|
291
|
+
|
292
|
+
subject.wait_for_dsc_completion
|
293
|
+
end
|
294
|
+
|
295
|
+
it "should get the guest powershell version" do
|
296
|
+
allow(communicator).to receive(:shell).and_return(shell)
|
297
|
+
expect(shell).to receive(:powershell).with("$PSVersionTable.PSVersion.Major").and_return({:data => [{:stdout => "4"}]})
|
298
|
+
|
299
|
+
expect(subject.get_guest_powershell_version).to eq("4")
|
300
|
+
end
|
301
|
+
|
259
302
|
it "should get the lcm state" do
|
260
303
|
allow(communicator).to receive(:shell).and_return(shell)
|
261
304
|
expect(shell).to receive(:powershell).with("(Get-DscLocalConfigurationManager).LCMState").and_return({:data => [{:stdout => "LCMState"}]})
|
@@ -347,6 +390,7 @@ echo \"Adding to path: $absoluteModulePaths\"
|
|
347
390
|
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
348
391
|
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
349
392
|
|
393
|
+
|
350
394
|
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
|
351
395
|
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
352
396
|
echo \"\"
|
@@ -390,6 +434,7 @@ echo \"Adding to path: $absoluteModulePaths\"
|
|
390
434
|
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
391
435
|
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
392
436
|
|
437
|
+
|
393
438
|
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"../manifests/MyWebsite.ps1\" -Resolve)
|
394
439
|
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
395
440
|
echo \"\"
|
@@ -432,6 +477,7 @@ echo \"Adding to path: $absoluteModulePaths\"
|
|
432
477
|
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
433
478
|
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
434
479
|
|
480
|
+
|
435
481
|
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
|
436
482
|
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
437
483
|
echo \"\"
|
@@ -472,6 +518,7 @@ echo \"Adding to path: $absoluteModulePaths\"
|
|
472
518
|
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
473
519
|
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
474
520
|
|
521
|
+
|
475
522
|
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
|
476
523
|
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
477
524
|
echo \"\"
|
@@ -515,6 +562,7 @@ echo \"Adding to path: $absoluteModulePaths\"
|
|
515
562
|
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
516
563
|
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
517
564
|
|
565
|
+
|
518
566
|
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
|
519
567
|
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
520
568
|
echo \"\"
|
@@ -568,6 +616,7 @@ echo \"Adding to path: $absoluteModulePaths\"
|
|
568
616
|
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
569
617
|
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
570
618
|
|
619
|
+
|
571
620
|
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
|
572
621
|
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
573
622
|
echo \"\"
|
@@ -582,6 +631,55 @@ $StagingPath = $(Join-Path \"/tmp/vagrant-dsc-1\" \"staging\")
|
|
582
631
|
$Config = $(iex (Get-Content (Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyConfig.psd1\" -Resolve) | Out-String))
|
583
632
|
MyWebsite -OutputPath $StagingPath -ConfigurationData $Config
|
584
633
|
|
634
|
+
# Start a DSC Configuration run
|
635
|
+
Start-DscConfiguration -Force -Wait -Verbose -Path $StagingPath
|
636
|
+
del $StagingPath\\*.mof
|
637
|
+
"
|
638
|
+
|
639
|
+
expect(script).to eq(expect_script)
|
640
|
+
end
|
641
|
+
end
|
642
|
+
|
643
|
+
context "with module_install" do
|
644
|
+
it "should generate a valid powershell command" do
|
645
|
+
root_config.module_install = ["xNetworking", "xSQLServer"]
|
646
|
+
|
647
|
+
script = subject.generate_dsc_runner_script
|
648
|
+
expect_script = "#
|
649
|
+
# DSC Runner.
|
650
|
+
#
|
651
|
+
# Bootstraps the DSC environment, sets up configuration data
|
652
|
+
# and runs the DSC Configuration.
|
653
|
+
#
|
654
|
+
#
|
655
|
+
|
656
|
+
# Set the local PowerShell Module environment path
|
657
|
+
$absoluteModulePaths = [string]::Join(\";\", (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { $_ | Resolve-Path }))
|
658
|
+
|
659
|
+
echo \"Adding to path: $absoluteModulePaths\"
|
660
|
+
$env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
|
661
|
+
(\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
|
662
|
+
|
663
|
+
Write-Host \"Ensure Modules\"
|
664
|
+
if ((Get-PSRepository -Name PSGallery).InstallationPolicy -ne \"Trusted\") {
|
665
|
+
Set-PSRepository -Name PSGallery -InstallationPolicy \"Trusted\"
|
666
|
+
}
|
667
|
+
# Install-Modules only installs if the module is not installed
|
668
|
+
\"xNetworking;xSQLServer\".Split(\";\") | foreach { Install-Module $_ }
|
669
|
+
|
670
|
+
$script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
|
671
|
+
echo \"PSModulePath Configured: ${env:PSModulePath}\"
|
672
|
+
echo \"\"
|
673
|
+
echo \"Running Configuration file: ${script}\"
|
674
|
+
|
675
|
+
# Generate the MOF file, only if a MOF path not already provided.
|
676
|
+
# Import the Manifest
|
677
|
+
. $script
|
678
|
+
|
679
|
+
cd \"/tmp/vagrant-dsc-1\"
|
680
|
+
$StagingPath = $(Join-Path \"/tmp/vagrant-dsc-1\" \"staging\")
|
681
|
+
MyWebsite -OutputPath $StagingPath
|
682
|
+
|
585
683
|
# Start a DSC Configuration run
|
586
684
|
Start-DscConfiguration -Force -Wait -Verbose -Path $StagingPath
|
587
685
|
del $StagingPath\\*.mof
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-dsc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Fellows
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -104,6 +104,7 @@ extra_rdoc_files: []
|
|
104
104
|
files:
|
105
105
|
- ".gitignore"
|
106
106
|
- ".travis.yml"
|
107
|
+
- ".vscode/launch.json"
|
107
108
|
- Gemfile
|
108
109
|
- LICENSE.txt
|
109
110
|
- README.md
|
@@ -152,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
153
|
version: '0'
|
153
154
|
requirements: []
|
154
155
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.
|
156
|
+
rubygems_version: 2.5.1
|
156
157
|
signing_key:
|
157
158
|
specification_version: 4
|
158
159
|
summary: DSC Provisioner for Vagrant
|