vagrant-dsc 1.0.2 → 1.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a23d07bfdced212c1036b9e3d36092a018eecb6a
4
- data.tar.gz: 382422fdff1951d30eda2baab87ce2e8d53364b5
3
+ metadata.gz: 32a6233f447ba5f18cc19f0f7e55e4856ae2bf67
4
+ data.tar.gz: 8aa7f0c18bc920583e62bebe13beb33a9e818133
5
5
  SHA512:
6
- metadata.gz: f33aaf4511ccba1237e193f7e908fdd21a34a9e4d9277bb53b8ed004d3333235d2215995c9d9287660266034b8276198733525b73ff1d1becd848e21e477eb41
7
- data.tar.gz: d0bb148d250e5917b3a23a89f76df674e15fa87622b90af2d7f5a9b41e15b47ca208c947c226e280a17a1fde17ae409822affc4d3a8fe863fe01532e8f3fac58
6
+ metadata.gz: fa1bbe12cd6c2916092d25b834bf3fb87319774b9b53eb7e3676be67d8a98f3b9183c6c7e0b855c35dccfed057bffa7e569369216e3ed3fbd895b79f9c7f66f0
7
+ data.tar.gz: a6188461eaa121535bd8e62129257f127c9be8c258f192695807ebf7064406fb553e09a2b266903b693e60f7584125054bfcedbcbc1685519e2ba9966897e209
data/.gitignore CHANGED
@@ -21,5 +21,4 @@ tmp
21
21
  *.a
22
22
  mkmf.log
23
23
  .vagrant
24
- .idea
25
- .tags*
24
+ .idea
data/README.md CHANGED
@@ -65,6 +65,10 @@ In your Vagrantfile, add the following plugin and configure to your needs:
65
65
  #dsc.temp_dir = "/tmp/vagrant-dsc"
66
66
  end
67
67
  ```
68
+ ## Example
69
+
70
+ There is a [sample](https://github.com/mefellows/vagrant-dsc/tree/master/development) Vagrant setup used for development of this plugin.
71
+ This is a great real-life example to get you on your way.
68
72
 
69
73
  ## Roadmap
70
74
 
@@ -16,16 +16,17 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
16
16
  # please see the online documentation at vagrantup.com.
17
17
 
18
18
  # Every Vagrant virtual environment requires a box to build off of.
19
- config.vm.box = "kensykora/windows_2012_r2_standard"
19
+ #config.vm.box = "kensykora/windows_2012_r2_standard"
20
+ config.vm.box = "seek-base-v3"
20
21
 
21
22
  config.vm.guest = :windows
22
23
  config.vm.communicator = "winrm"
23
24
 
24
25
  config.vm.network :forwarded_port, guest: 5985, host: 5985, id: "winrm", auto_correct: true
25
26
  config.vm.network :forwarded_port, guest: 80, host: 8000, id: "web" # Port forward for IIS
26
- config.vm.network :forwarded_port, guest: 443, host: 8443, id: "ssl" # Port forward for SSL IIS
27
+ # config.vm.network :forwarded_port, guest: 443, host: 8443, id: "ssl" # Port forward for SSL IIS
27
28
  config.vm.network :forwarded_port, guest: 22, host: 9222, id: "ssh" # Port forward for SSL IIS
28
-
29
+ config.winrm.guest_port = 5985
29
30
  config.vm.provider "virtualbox" do |v|
30
31
  v.gui = true
31
32
  end
@@ -45,10 +46,11 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
45
46
  # environment to enable local modules to be addressed.
46
47
  #
47
48
  # @return [Array] Set of relative module paths.
48
- dsc.module_path = ["manifests", "modules"]
49
+ # dsc.module_path = ["manifests", "modules"]
50
+ dsc.module_path = ["modules"]
49
51
 
50
52
  # The path relative to `dsc.manifests_path` pointing to the Configuration file
51
- dsc.configuration_file = "manifests/MyWebsite.ps1"
53
+ dsc.configuration_file = "MyWebsite.ps1"
52
54
 
53
55
  # The Configuration Command to run. Assumed to be the same as the `dsc.configuration_file`
54
56
  # (sans extension) if not provided.
@@ -67,7 +69,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
67
69
  # Defaults to 'manifests'.
68
70
  #
69
71
  # Path is relative to the folder containing the Vagrantfile.
70
- # dsc.manifests_path = "manifests"
72
+ dsc.manifests_path = "manifests"
71
73
 
72
74
  # The type of synced folders to use when sharing the data
73
75
  # required for the provisioner to work properly.
@@ -160,7 +160,9 @@ module VagrantPlugins
160
160
  module_paths: @module_paths.map { |k,v| v }.join(";"),
161
161
  mof_path: @config.mof_path,
162
162
  configuration_file: @config.configuration_file,
163
+ configuration_file_path: "#{@config.manifests_path}/#{File.basename @config.configuration_file}",
163
164
  configuration_name: @config.configuration_name,
165
+ manifests_path: @config.manifests_path,
164
166
  temp_path: @config.temp_dir,
165
167
  parameters: @config.configuration_params.map { |k,v| "#{k}" + (!v.nil? ? " \"#{v}\"": '') }.join(" ")
166
168
  })
@@ -7,14 +7,15 @@
7
7
  #
8
8
 
9
9
  # Set the local PowerShell Module environment path
10
- <% if options[:module_paths] %>
10
+ <% if !options[:module_paths].empty? %>
11
11
  $absoluteModulePaths = [string]::Join(";", ("<%= options[:module_paths] %>".Split(";") | ForEach-Object { $_ | Resolve-Path }))
12
12
 
13
13
  echo "Adding to path: $absoluteModulePaths"
14
14
  $env:PSModulePath="$absoluteModulePaths;${env:PSModulePath}"
15
+ ("<%= options[:module_paths] %>".Split(";") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
15
16
  <% end %>
16
17
 
17
- $script = $(Join-Path "<%= options[:temp_path] %>" "<%= options[:configuration_file] %>")
18
+ $script = $(Join-Path "<%= options[:temp_path] %>" "<%= options[:configuration_file_path] %>" -Resolve)
18
19
  echo "PSModulePath Configured: ${env:PSModulePath}"
19
20
  echo "Running Configuration file: ${script}"
20
21
 
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Dsc
3
- VERSION = "1.0.2"
3
+ VERSION = "1.0.3"
4
4
  end
5
5
  end
@@ -101,6 +101,11 @@ describe VagrantPlugins::DSC::Config do
101
101
  expect(subject.expanded_module_paths('/path/to/vagrant/')).to eq(["/path/to/vagrant/foo/modules"])
102
102
  end
103
103
 
104
+ it "should generate a module path on the host machine relative to the Vagrantfile with relative paths" do
105
+ subject.module_path = "../modules"
106
+ expect(subject.expanded_module_paths('/path/to/vagrant/')).to eq(["/path/to/modules"])
107
+ end
108
+
104
109
  it "should generate module paths on the host machine relative to the Vagrantfile" do
105
110
  subject.module_path = ["dont/exist", "also/dont/exist"]
106
111
  expect(subject.expanded_module_paths('/path/to/vagrant/')).to eq(["/path/to/vagrant/dont/exist", "/path/to/vagrant/also/dont/exist"])
@@ -244,7 +244,7 @@ describe VagrantPlugins::DSC::Provisioner do
244
244
 
245
245
  end
246
246
 
247
- context "with default parameters" do
247
+ context "with default parameters" do
248
248
  it "should generate a valid powershell command" do
249
249
  script = subject.generate_dsc_runner_script
250
250
  expect_script = "#
@@ -260,8 +260,50 @@ $absoluteModulePaths = [string]::Join(\";\", (\"/tmp/vagrant-dsc-1/modules-0;/tm
260
260
 
261
261
  echo \"Adding to path: $absoluteModulePaths\"
262
262
  $env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
263
+ (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
263
264
 
264
- $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\")
265
+ $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
266
+ echo \"PSModulePath Configured: ${env:PSModulePath}\"
267
+ echo \"Running Configuration file: ${script}\"
268
+
269
+ # Generate the MOF file, only if a MOF path not already provided.
270
+ # Import the Manifest
271
+ . $script
272
+
273
+ cd \"/tmp/vagrant-dsc-1\"
274
+ $StagingPath = $(Join-Path \"/tmp/vagrant-dsc-1\" \"staging\")
275
+ $response = MyWebsite -OutputPath $StagingPath 4>&1 5>&1 | Out-String
276
+
277
+ # Start a DSC Configuration run
278
+ $response += Start-DscConfiguration -Force -Wait -Verbose -Path $StagingPath 4>&1 5>&1 | Out-String
279
+ $response"
280
+
281
+ expect(script).to eq(expect_script)
282
+ end
283
+ end
284
+
285
+ context "with a relative manifests_path" do
286
+ it "should generate a valid powershell command" do
287
+ root_config.manifests_path = "../manifests"
288
+ root_config.configuration_file = configuration_file
289
+
290
+ script = subject.generate_dsc_runner_script
291
+ expect_script = "#
292
+ # DSC Runner.
293
+ #
294
+ # Bootstraps the DSC environment, sets up configuration data
295
+ # and runs the DSC Configuration.
296
+ #
297
+ #
298
+
299
+ # Set the local PowerShell Module environment path
300
+ $absoluteModulePaths = [string]::Join(\";\", (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { $_ | Resolve-Path }))
301
+
302
+ echo \"Adding to path: $absoluteModulePaths\"
303
+ $env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
304
+ (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
305
+
306
+ $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"../manifests/MyWebsite.ps1\" -Resolve)
265
307
  echo \"PSModulePath Configured: ${env:PSModulePath}\"
266
308
  echo \"Running Configuration file: ${script}\"
267
309
 
@@ -299,8 +341,9 @@ $absoluteModulePaths = [string]::Join(\";\", (\"/tmp/vagrant-dsc-1/modules-0;/tm
299
341
 
300
342
  echo \"Adding to path: $absoluteModulePaths\"
301
343
  $env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
344
+ (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
302
345
 
303
- $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\")
346
+ $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
304
347
  echo \"PSModulePath Configured: ${env:PSModulePath}\"
305
348
  echo \"Running Configuration file: ${script}\"
306
349
 
@@ -336,8 +379,9 @@ $absoluteModulePaths = [string]::Join(\";\", (\"/tmp/vagrant-dsc-1/modules-0;/tm
336
379
 
337
380
  echo \"Adding to path: $absoluteModulePaths\"
338
381
  $env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
382
+ (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
339
383
 
340
- $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\")
384
+ $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
341
385
  echo \"PSModulePath Configured: ${env:PSModulePath}\"
342
386
  echo \"Running Configuration file: ${script}\"
343
387
 
@@ -376,8 +420,9 @@ $absoluteModulePaths = [string]::Join(\";\", (\"/tmp/vagrant-dsc-1/modules-0;/tm
376
420
 
377
421
  echo \"Adding to path: $absoluteModulePaths\"
378
422
  $env:PSModulePath=\"$absoluteModulePaths;${env:PSModulePath}\"
423
+ (\"/tmp/vagrant-dsc-1/modules-0;/tmp/vagrant-dsc-1/modules-1\".Split(\";\") | ForEach-Object { gci -Recurse $_ | ForEach-Object { Unblock-File $_.FullName} })
379
424
 
380
- $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\")
425
+ $script = $(Join-Path \"/tmp/vagrant-dsc-1\" \"manifests/MyWebsite.ps1\" -Resolve)
381
426
  echo \"PSModulePath Configured: ${env:PSModulePath}\"
382
427
  echo \"Running Configuration file: ${script}\"
383
428
 
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.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Fellows
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-06 00:00:00.000000000 Z
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -205,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
205
  version: '0'
206
206
  requirements: []
207
207
  rubyforge_project:
208
- rubygems_version: 2.0.14
208
+ rubygems_version: 2.4.1
209
209
  signing_key:
210
210
  specification_version: 4
211
211
  summary: DSC Provisioner for Vagrant