vagrant-dsc 1.0.10 → 1.1.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 -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
|