vagrant-pe_build 0.13.7 → 0.14.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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +25 -0
  3. data/README.markdown +24 -26
  4. data/lib/pe_build/archive.rb +6 -1
  5. data/lib/pe_build/cap.rb +5 -0
  6. data/lib/pe_build/cap/detect_installer/debian.rb +1 -1
  7. data/lib/pe_build/cap/detect_installer/sles.rb +1 -1
  8. data/lib/pe_build/cap/detect_installer/ubuntu.rb +1 -1
  9. data/lib/pe_build/cap/run_install/posix.rb +9 -25
  10. data/lib/pe_build/cap/run_install/windows.rb +26 -29
  11. data/lib/pe_build/cap/stage_installer/posix.rb +38 -0
  12. data/lib/pe_build/cap/stage_installer/windows.rb +33 -0
  13. data/lib/pe_build/config/global.rb +11 -0
  14. data/lib/pe_build/config_builder.rb +9 -3
  15. data/lib/pe_build/config_builder/0_x.rb +6 -0
  16. data/lib/pe_build/config_builder/{pe_agent.rb → 0_x/pe_agent.rb} +0 -0
  17. data/lib/pe_build/config_builder/{pe_bootstrap.rb → 0_x/pe_bootstrap.rb} +1 -0
  18. data/lib/pe_build/config_builder/1_x.rb +6 -0
  19. data/lib/pe_build/config_builder/1_x/pe_agent.rb +35 -0
  20. data/lib/pe_build/config_builder/1_x/pe_bootstrap.rb +91 -0
  21. data/lib/pe_build/config_builder/global.rb +10 -0
  22. data/lib/pe_build/plugin.rb +18 -0
  23. data/lib/pe_build/provisioner/pe_agent.rb +19 -16
  24. data/lib/pe_build/provisioner/pe_bootstrap.rb +64 -9
  25. data/lib/pe_build/provisioner/pe_bootstrap/post_install.rb +6 -1
  26. data/lib/pe_build/release.rb +2 -1
  27. data/lib/pe_build/release/2015_3.rb +1 -4
  28. data/lib/pe_build/release/2016_1.rb +29 -0
  29. data/lib/pe_build/util/pe_packaging.rb +2 -1
  30. data/lib/pe_build/version.rb +1 -1
  31. data/spec/unit/provisioner/pe_agent_spec.rb +1 -3
  32. data/templates/locales/en.yml +6 -2
  33. data/vagrant-pe_build.gemspec +3 -3
  34. metadata +32 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6fb108a09ab72f010038b21ddc2933bf0efe832c
4
- data.tar.gz: fbdb45d716f89915161d5b03544d652e0c7470fc
3
+ metadata.gz: aa2b46e048a5920609c5e99569e2f9465fbae3fa
4
+ data.tar.gz: f6040fefce357fe8921d77752972cb62cf19fc8a
5
5
  SHA512:
6
- metadata.gz: 0386ae66e02cf584543d6a6d59a620daec5bf132f9dbfec7f6d3659347c7e645446801f95a6ea36b6f479de0ed613eabe0def88c9bb02f9c267f0fda75909fe6
7
- data.tar.gz: 0c8ff26242f7b9de5a74633591e8158169b3804a3e7969f120a5506e4f1849c685576d660282250c1b3f25d65fac98cd8623c55378934bdb08fb1b48e2a86837
6
+ metadata.gz: d76bfcb63e366be1e748c5158878cbeb3b0c606999a95b47ce1b300171b9e357d5e4df6209604bebae54e614dca224102ffffc7bc31f7146cf4dc0aa325b08f9
7
+ data.tar.gz: 0d0e9dae36cb87e9c33a340e87296a00a2e0023001956020ce11cea8a5358ad81a080ee15246f5e4e390ce06aec4c633883470edb94cbfeca3ab596851d6996d
data/CHANGELOG CHANGED
@@ -1,6 +1,31 @@
1
1
  vagrant-pe_build
2
2
  ================
3
3
 
4
+ 0.14.0
5
+ ------
6
+
7
+ 2016-03-26
8
+
9
+ The is a backwards compatible feature release.
10
+
11
+ * (GH-40) The pe_bootstrap provisioner has been refactored to skip most
12
+ actions if PE is already installed.
13
+
14
+ * (GH-78) Provisioners running Windows installs now wait for msiexec to
15
+ complete and write logs to puppet-enterprise-installer.log.
16
+
17
+ * (GH-110) The pe_agent provisioner now installs Windows agents using packages
18
+ provided by pe_repo instead of falling back to the pe_bootstrap installer.
19
+
20
+ * (GH-112) The pe_boostrap provisioner can be configured to download
21
+ installers directly to the vm instead of relying on the /vagrant shared
22
+ filesystem by setting shared_installer to false. This is useful for
23
+ compute environments such as AWS and OpenStack where VMs are not running
24
+ directly on the Vagrant host.
25
+
26
+ * Add support for PE 3.8.4, 2015.3.3 and 2016.1.0.
27
+
28
+
4
29
  0.13.7
5
30
  ------
6
31
 
data/README.markdown CHANGED
@@ -25,7 +25,7 @@ optional and can be overridden in a VM's individual provisioner config.
25
25
  * `config.pe_build.version_file`
26
26
  * Description: A fully-qualified URI or a path relative to `download_root`. The contents of this file will be read and used to set `version` --- overriding any value that may already be set.
27
27
  * `config.pe_build.suffix` - Suffix of the Puppet Enterprise installer to use.
28
- * Description: The distribution specifix suffix of the Puppet Enterprise
28
+ * Description: The distribution specific suffix of the Puppet Enterprise
29
29
  installer to use.
30
30
  * Default: `:detect`
31
31
  * `config.pe_build.filename`
@@ -41,6 +41,11 @@ optional and can be overridden in a VM's individual provisioner config.
41
41
  * ftp
42
42
  * file
43
43
  * A blank URI will default to `file`.
44
+ * `config.pe_build.shared_installer`
45
+ * Description: Whether to run PE installation using installers and answers
46
+ shared using the `/vagrant` directory. If set to `false`, resources will
47
+ be downloaded remotely from `download_root`
48
+ to the home directory of whichever user account Vagrant is using. Defaults to `true`.
44
49
 
45
50
  ### `pe_bootstrap` Provisioner Settings
46
51
 
@@ -113,11 +118,7 @@ with the global `config.pe_build` settings.
113
118
  `master_vm` is set and `master_vm` if `vm.hostname` is not set.
114
119
  * `version`
115
120
  * Description: The version number of the PE Agent to install. **NOTE:**
116
- this setting is currently used only for Windows agents. POSIX agents will
117
- always receive the `'current'` version installed on the master. Support
118
- for setting the version number of POSIX agents will be added in a future
119
- release.
120
- * Options: A version string, `x.y.z[-optional-stuff]`, or the string
121
+ Currently, agents always receive the `'current'` version installed on the master. Support for setting the version number of agents will be added in a future release. * Options: A version string, `x.y.z[-optional-stuff]`, or the string
121
122
  `'current'`.
122
123
  * Default: `'current'`.
123
124
 
@@ -135,10 +136,10 @@ added with `vagrant pe-build copy`.
135
136
 
136
137
  ```ruby
137
138
  Vagrant.configure('2') do |config|
138
- config.pe_build.version = '3.8.2'
139
+ config.pe_build.version = '3.8.4'
139
140
 
140
141
  config.vm.define 'master' do |node|
141
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
142
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
142
143
 
143
144
  node.vm.provision :pe_bootstrap do |p|
144
145
  p.role = :master
@@ -146,7 +147,7 @@ Vagrant.configure('2') do |config|
146
147
  end
147
148
 
148
149
  config.vm.define 'agent1' do |node|
149
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
150
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
150
151
  node.vm.provision :pe_bootstrap
151
152
  end
152
153
  end
@@ -160,10 +161,10 @@ of `pe_bootstrap`.
160
161
 
161
162
  ```ruby
162
163
  Vagrant.configure('2') do |config|
163
- config.pe_build.version = '2015.2.2'
164
+ config.pe_build.version = '2015.3.3'
164
165
 
165
166
  config.vm.define 'master' do |node|
166
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
167
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
167
168
 
168
169
  node.vm.provision :pe_bootstrap do |p|
169
170
  p.role = :master
@@ -171,7 +172,7 @@ Vagrant.configure('2') do |config|
171
172
  end
172
173
 
173
174
  config.vm.define 'agent1' do |node|
174
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
175
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
175
176
  node.vm.provision :pe_agent do |p|
176
177
  p.master_vm = 'master'
177
178
  end
@@ -184,14 +185,14 @@ end
184
185
 
185
186
  ```ruby
186
187
  Vagrant.configure('2') do |config|
187
- config.pe_build.version = '3.8.2'
188
+ config.pe_build.version = '3.8.4'
188
189
  config.pe_build.download_root = 'http://my.pe.download.mirror/installers'
189
190
 
190
191
  # Alternately, a local directory can be specified
191
192
  #config.pe_build.download_root = 'file://Users/luke/Downloads'
192
193
 
193
194
  config.vm.define 'master' do |node|
194
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
195
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
195
196
 
196
197
  node.vm.provision :pe_bootstrap do |p|
197
198
  p.role = :master
@@ -199,7 +200,7 @@ Vagrant.configure('2') do |config|
199
200
  end
200
201
 
201
202
  config.vm.define 'agent1' do |node|
202
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
203
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
203
204
 
204
205
  node.vm.provision :pe_bootstrap
205
206
  end
@@ -211,14 +212,14 @@ end
211
212
 
212
213
  ```ruby
213
214
  Vagrant.configure('2') do |config|
214
- config.pe_build.version = '3.8.2'
215
+ config.pe_build.version = '3.8.4'
215
216
  config.pe_build.download_root = 'http://my.pe.download.mirror/installers'
216
217
 
217
218
  # Alternately, a local directory can be specified
218
219
  #config.pe_build.download_root = 'file://Users/luke/Downloads'
219
220
 
220
221
  config.vm.define 'master' do |node|
221
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
222
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
222
223
 
223
224
  node.vm.provision :pe_bootstrap do |p|
224
225
  p.role = :master
@@ -227,7 +228,7 @@ Vagrant.configure('2') do |config|
227
228
  end
228
229
 
229
230
  config.vm.define 'agent1' do |node|
230
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
231
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
231
232
 
232
233
  node.vm.provision :pe_bootstrap
233
234
  end
@@ -235,18 +236,15 @@ end
235
236
  ```
236
237
 
237
238
 
238
- ### Manually setting a filename
239
+ ### Manually setting an installer filename
239
240
 
240
241
  ```ruby
241
242
  Vagrant.configure('2') do |config|
242
- config.pe_build.version = '3.8.2'
243
- config.pe_build.filename = 'puppet-enterprise-3.8.2-el-7-x86_64.tar.gz'
244
-
245
- # Alternately, a local directory can be specified
246
- #config.pe_build.download_root = 'file://Users/luke/Downloads'
243
+ config.pe_build.version = '3.8.4'
244
+ config.pe_build.filename = 'puppet-enterprise-3.8.4-el-7-x86_64.tar.gz'
247
245
 
248
246
  config.vm.define 'master' do |node|
249
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
247
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
250
248
 
251
249
  node.vm.provision :pe_bootstrap do |p|
252
250
  p.role = :master
@@ -254,7 +252,7 @@ Vagrant.configure('2') do |config|
254
252
  end
255
253
 
256
254
  config.vm.define 'agent1' do |node|
257
- node.vm.box = 'puppetlabs/centos-7.0-64-nocm'
255
+ node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
258
256
 
259
257
  node.vm.provision :pe_bootstrap
260
258
  end
@@ -64,7 +64,7 @@ module PEBuild
64
64
  raise PEBuild::ArchiveNoInstallerSource, :filename => versioned_path(@filename)
65
65
  end
66
66
 
67
- uri = URI.parse(versioned_path("#{str}/#{@filename}"))
67
+ uri = source_uri(str)
68
68
  dst = File.join(@archive_dir, versioned_path(@filename))
69
69
 
70
70
  PEBuild::Transfer.copy(uri, dst)
@@ -94,6 +94,11 @@ module PEBuild
94
94
  versioned_path(@filename)
95
95
  end
96
96
 
97
+ # @param base_uri [String, URI] A base uri for downloads.
98
+ def source_uri(base_uri)
99
+ URI.parse(versioned_path("#{base_uri.to_s}/#{@filename}"))
100
+ end
101
+
97
102
  def installer_dir
98
103
  versioned_path(@filename).gsub(/.tar(?:\.gz)?/, '')
99
104
  end
data/lib/pe_build/cap.rb CHANGED
@@ -30,5 +30,10 @@ module PEBuild
30
30
  require 'pe_build/cap/run_install/posix'
31
31
  require 'pe_build/cap/run_install/windows'
32
32
  end
33
+
34
+ module StageInstaller
35
+ require 'pe_build/cap/stage_installer/posix'
36
+ require 'pe_build/cap/stage_installer/windows'
37
+ end
33
38
  end
34
39
  end
@@ -13,7 +13,7 @@ class PEBuild::Cap::DetectInstaller::Debian < PEBuild::Cap::DetectInstaller::POS
13
13
  end
14
14
 
15
15
  def supported_releases
16
- %w[6 7]
16
+ %w[6 7 8]
17
17
  end
18
18
 
19
19
  def arch
@@ -13,7 +13,7 @@ class PEBuild::Cap::DetectInstaller::SLES < PEBuild::Cap::DetectInstaller::POSIX
13
13
  end
14
14
 
15
15
  def supported_releases
16
- %w[11]
16
+ %w[10 11 12]
17
17
  end
18
18
  end
19
19
 
@@ -13,7 +13,7 @@ class PEBuild::Cap::DetectInstaller::Ubuntu < PEBuild::Cap::DetectInstaller::POS
13
13
  end
14
14
 
15
15
  def supported_releases
16
- %w[10.04 12.04 14.04]
16
+ %w[10.04 12.04 14.04 15.04 15.10]
17
17
  end
18
18
 
19
19
  def arch
@@ -3,31 +3,15 @@ class PEBuild::Cap::RunInstall::POSIX
3
3
 
4
4
  extend PEBuild::OnMachine
5
5
 
6
- def self.run_install(machine, config, archive)
7
-
8
- # NOTE: This test for both the 3.x and 4.x installation locations. Should
9
- # probably refactor this into something cleaner.
10
- if machine.communicate.test('test -f /opt/puppet/pe_version || test -f /opt/puppetlabs/server/pe_version')
11
- machine.ui.warn I18n.t('pebuild.cap.run_install.already_installed'),
12
- :name => machine.name
13
- return
14
- end
15
-
16
- root = File.join('/vagrant', PEBuild::WORK_DIR)
17
-
18
- cmd_path = []
19
- cmd_path << root
20
-
21
- cmd_path << archive.installer_dir
22
- cmd_path << "puppet-enterprise-installer"
23
-
24
- cmd = File.join(cmd_path)
25
- answers = File.join(root, 'answers', "#{machine.name}.txt")
26
-
27
- argv = "#{cmd} -a #{answers}"
28
-
29
- on_machine(machine, argv)
30
-
6
+ # Run the PE installer on POSIX systems
7
+ #
8
+ # @param installer_dir [String] A path to the directory where PE installers
9
+ # are kept.
10
+ # @param answers [String] A path to a file containing installation answers.
11
+ #
12
+ # @return [void]
13
+ def self.run_install(machine, installer_path, answers)
14
+ on_machine(machine, "#{installer_path} -a #{answers}")
31
15
 
32
16
  if machine.communicate.test('which at')
33
17
  machine.ui.info I18n.t('pebuild.cap.run_install.scheduling_run')
@@ -3,34 +3,31 @@ class PEBuild::Cap::RunInstall::Windows
3
3
 
4
4
  extend PEBuild::OnMachine
5
5
 
6
- def self.run_install(machine, config, archive)
7
-
8
- gt_win2k3_path = '${Env:ALLUSERSPROFILE}\\PuppetLabs'
9
- le_win2k3_path = '${Env:ALLUSERSPROFILE}\\Application Data\\PuppetLabs'
10
- testpath = "(Test-Path \"#{gt_win2k3_path}\") -or (Test-Path \"#{le_win2k3_path}\")"
11
-
12
- if machine.communicate.test("If (#{testpath}) { Exit 0 } Else { Exit 1 }")
13
- machine.ui.warn I18n.t('pebuild.cap.run_install.already_installed'),
14
- :name => machine.name
15
- return
16
- end
17
-
18
- root = machine.communicate.shell.cmd('ECHO %SYSTEMDRIVE%')[:data][0][:stdout].chomp
19
- root = File.join("#{root}\\vagrant", PEBuild::WORK_DIR)
20
-
21
- # The installer will be fed to msiexec. That means the File.join() method
22
- # is of limited use since it won't execute on the Windows system
23
- installer = File.join(root, archive.to_s).gsub('/', '\\')
24
-
25
- cmd = []
26
- cmd << 'msiexec' << '/qn' << '/i' << installer
27
-
28
- cmd << "PUPPET_MASTER_SERVER=#{config.master}"
29
- cmd << "PUPPET_AGENT_CERTNAME=#{machine.name}"
30
-
31
- argv = cmd.join(' ')
32
-
33
- on_machine(machine, argv)
34
-
6
+ # Run the PE installer on Windows systems
7
+ #
8
+ # @param installer_dir [String] A path to the PE installer.
9
+ # @param answers [Hash[String => String}] A hash of options that will be
10
+ # passed to msiexec as `key=value` pairs.
11
+ #
12
+ # @return [void]
13
+ def self.run_install(machine, installer_path, answers)
14
+ install_options = answers.map{|e| e.join('=')}.join(' ')
15
+ # Lots of PowerShell commands can handle UNIX-style paths. msiexec can't.
16
+ installer_path = installer_path.gsub('/', '\\')
17
+
18
+ cmd = <<-EOS
19
+ $params = @(
20
+ "/qn",
21
+ "/i `"#{installer_path}`"",
22
+ "/l*v puppet-enterprise-installer.log",
23
+ "#{install_options}"
24
+ )
25
+
26
+ (Start-Process -FilePath "msiexec.exe" -ArgumentList $params -Wait -Passthru).ExitCode
27
+ EOS
28
+
29
+ machine.ui.info "Running: #{cmd}"
30
+
31
+ on_machine(machine, cmd)
35
32
  end
36
33
  end
@@ -0,0 +1,38 @@
1
+ require 'pe_build/on_machine'
2
+
3
+ # Download PE installers to a POSIX VM
4
+ #
5
+ # @since 0.14.0
6
+ class PEBuild::Cap::StageInstaller::POSIX
7
+
8
+ extend PEBuild::OnMachine
9
+
10
+ # Download an installer to a remote VM
11
+ #
12
+ # @param uri [URI] A URI containing the download source.
13
+ # @param dest_dir [String] The destination directory to download the
14
+ # installer to.
15
+ #
16
+ # @return [void]
17
+ def self.stage_installer(machine, uri, dest_dir='.')
18
+ filename = File.basename(uri.path)
19
+ installer_dir = filename.gsub(/.tar(?:\.gz)?/, '')
20
+
21
+ # GNU tar will attempt to guess the file format. Other versions of tar,
22
+ # such as those shipped with Solaris, take the approach that trying to
23
+ # interpret unknown binaries is none of their business.
24
+ tar_flags = if filename.end_with?('.tar.gz')
25
+ 'xzf'
26
+ else
27
+ 'xf'
28
+ end
29
+
30
+ unless machine.communicate.test("test -d #{dest_dir}/#{installer_dir}")
31
+ machine.ui.info I18n.t('pebuild.cap.stage_installer.downloading_installer',
32
+ :url => uri)
33
+
34
+ on_machine(machine, "curl -fsSLk #{uri} -o #{dest_dir}/#{filename}")
35
+ on_machine(machine, "tar #{tar_flags} #{dest_dir}/#{filename} -C #{dest_dir}")
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,33 @@
1
+ require 'pe_build/on_machine'
2
+
3
+ # Download PE installers to a Windows VM
4
+ #
5
+ # @since 0.14.0
6
+ class PEBuild::Cap::StageInstaller::Windows
7
+
8
+ extend PEBuild::OnMachine
9
+
10
+ # Download an installer to a remote VM
11
+ #
12
+ # @param uri [URI] A URI containing the download source.
13
+ # @param dest_dir [String] The destination directory to download the
14
+ # installer to.
15
+ #
16
+ # @return [void]
17
+ def self.stage_installer(machine, uri, dest_dir='.')
18
+ filename = File.basename(uri.path)
19
+
20
+ unless machine.communicate.test(%Q[If (Test-Path "#{dest_dir}/#{filename}) { Exit 0 } Else { Exit 1 }])
21
+ machine.ui.info I18n.t('pebuild.cap.stage_installer.downloading_installer',
22
+ :url => uri)
23
+
24
+ # Setting ServerCertificateValidationCallback to always return true
25
+ # allows us to download from HTTPS sources that present a self-signed
26
+ # certificate. For example, a Puppet Master.
27
+ on_machine(machine, <<-EOS)
28
+ [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
29
+ (New-Object System.Net.WebClient).DownloadFile("#{uri}","#{dest_dir}/#{filename}")
30
+ EOS
31
+ end
32
+ end
33
+ end
@@ -45,6 +45,15 @@ class PEBuild::Config::Global < Vagrant.plugin('2', :config)
45
45
  # @since 0.1.0
46
46
  attr_accessor :filename
47
47
 
48
+ # @!attribute shared_installer
49
+ # @return [Boolean] Whether to run PE installation using installers and
50
+ # answers shared using the `/vagrant` mount. If set to `false`, resources
51
+ # will be downloaded remotely to the home directory of whichever user
52
+ # account Vagrant is using. Defaults to `true`.
53
+ #
54
+ # @since 0.14.0
55
+ attr_accessor :shared_installer
56
+
48
57
  def initialize
49
58
  @download_root = UNSET_VALUE
50
59
  @version = UNSET_VALUE
@@ -52,6 +61,7 @@ class PEBuild::Config::Global < Vagrant.plugin('2', :config)
52
61
  @series = UNSET_VALUE
53
62
  @suffix = UNSET_VALUE
54
63
  @filename = UNSET_VALUE
64
+ @shared_installer = UNSET_VALUE
55
65
  end
56
66
 
57
67
  include PEBuild::ConfigDefault
@@ -63,6 +73,7 @@ class PEBuild::Config::Global < Vagrant.plugin('2', :config)
63
73
  set_default :@suffix, :detect
64
74
  set_default :@download_root, nil
65
75
  set_default :@filename, nil
76
+ set_default :@shared_installer, true
66
77
  end
67
78
 
68
79
  def validate(machine)
@@ -1,7 +1,13 @@
1
+ require 'config_builder/version'
2
+
1
3
  module PEBuild
2
4
  module ConfigBuilder
3
- require 'pe_build/config_builder/global'
4
- require 'pe_build/config_builder/pe_bootstrap'
5
- require 'pe_build/config_builder/pe_agent'
5
+ require_relative 'config_builder/global'
6
6
  end
7
7
  end
8
+
9
+ if ConfigBuilder::VERSION > '1.0'
10
+ require_relative 'config_builder/1_x'
11
+ else
12
+ require_relative 'config_builder/0_x'
13
+ end
@@ -0,0 +1,6 @@
1
+ module PEBuild
2
+ module ConfigBuilder
3
+ require_relative '0_x/pe_bootstrap'
4
+ require_relative '0_x/pe_agent'
5
+ end
6
+ end
@@ -56,6 +56,7 @@ class PEBuild::ConfigBuilder::PEBootstrap < ::PEBuild::ConfigBuilder::Global
56
56
  with_attr(:series) { |val| pe.series = val }
57
57
  with_attr(:suffix) { |val| pe.suffix = val }
58
58
  with_attr(:filename) { |val| pe.filename = val }
59
+ with_attr(:shared_installer) { |val| pe.shared_installer = val }
59
60
 
60
61
  with_attr(:role) { |val| pe.role = val }
61
62
  with_attr(:verbose) { |val| pe.verbose = val }
@@ -0,0 +1,6 @@
1
+ module PEBuild
2
+ module ConfigBuilder
3
+ require_relative '1_x/pe_bootstrap'
4
+ require_relative '1_x/pe_agent'
5
+ end
6
+ end
@@ -0,0 +1,35 @@
1
+ require 'config_builder/model'
2
+
3
+ # @since 0.13.0
4
+ class PEBuild::ConfigBuilder::PEAgent < ::ConfigBuilder::Model::Provisioner::Base
5
+ # @!attribute [rw] autosign
6
+ # If true, and {#master_vm} is set, the agent's certificate will be signed
7
+ # on the master VM.
8
+ #
9
+ # @return [true, false] Defaults to `true` if {#master_vm} is set,
10
+ # otherwise `false`.
11
+ def_model_attribute :autosign
12
+ # @!attribute [rw] autopurge
13
+ # If true, and {#master_vm} is set, the agent's certificate and data will
14
+ # be purged from the master VM if the agent is destroyed by Vagrant.
15
+ #
16
+ # @return [true, false] Defaults to `true` if {#master_vm} is set,
17
+ # otherwise `false`.
18
+ def_model_attribute :autopurge
19
+ # @!attribute master
20
+ # @return [String] The DNS hostname of the Puppet master for this node.
21
+ # If {#master_vm} is set, the hostname of that machine will be used
22
+ # as a default. If the hostname is unset, the name of the VM will be
23
+ # used as a secondary default.
24
+ def_model_attribute :master
25
+ # @!attribute master_vm
26
+ # @return [String] The name of a Vagrant VM to use as the master.
27
+ def_model_attribute :master_vm
28
+ # @!attribute version
29
+ # @return [String] The version of PE to install. May be either a version
30
+ # string of the form `x.y.x[-optional-arbitrary-stuff]` or the string
31
+ # `current`. Defaults to `current`.
32
+ def_model_attribute :version
33
+
34
+ ::ConfigBuilder::Model::Provisioner.register('pe_agent', self)
35
+ end
@@ -0,0 +1,91 @@
1
+ require 'config_builder/model'
2
+
3
+ class PEBuild::ConfigBuilder::PEBootstrap < ::ConfigBuilder::Model::Provisioner::Base
4
+
5
+ # @!attribute [rw] version
6
+ # @return [String] The version of Puppet Enterprise to install.
7
+ def_model_attribute :version
8
+
9
+ # @!attribute [rw] version_file
10
+ # @return [String] The path to a file relative to {#download_root}. The
11
+ # contents of this file will be read and used to specify {#version}.
12
+ # @since 0.9.0
13
+ def_model_attribute :version_file
14
+
15
+ # @!attribute [rw] series
16
+ # @return [String] The release series of PE. Completely optional and
17
+ # currently has no effect other than being an interpolation token
18
+ # available for use in {#download_root}.
19
+ #
20
+ # @since 0.9.0
21
+ def_model_attribute :series
22
+
23
+ # @!attribute [rw] suffix
24
+ # @return [String] The distribution specifix suffix of the Puppet
25
+ # Enterprise installer to use.
26
+ def_model_attribute :suffix
27
+
28
+ # @!attribute [rw] filename
29
+ # @return [String] The filename of the Puppet Enterprise installer.
30
+ def_model_attribute :filename
31
+
32
+ # @!attribute [rw] download_root
33
+ # @return [String] The URI to the directory containing Puppet Enterprise
34
+ # installers if the installer is not yet cached. This setting is optional.
35
+ def_model_attribute :download_root
36
+
37
+ # @!attribute shared_installer
38
+ # @return [Boolean] Whether to run PE installation using installers and
39
+ # answers shared using the `/vagrant` mount. If set to `false`, resources
40
+ # will be downloaded remotely to the home directory of whichever user
41
+ # account Vagrant is using. Defaults to `true`.
42
+ #
43
+ # @since 0.14.0
44
+ def_model_attribute :shared_installer
45
+
46
+ # @!attribute [rw] role
47
+ # @return [Symbol] The role of the Puppet Enterprise install.
48
+ def_model_attribute :role
49
+
50
+ # @!attribute [rw] verbose
51
+ # @return [Boolean] Whether or not to show the verbose output of the Puppet
52
+ # Enterprise install.
53
+ def_model_attribute :verbose
54
+
55
+ # @!attribute [rw] master
56
+ # @return [String] The address of the puppet master.
57
+ def_model_attribute :master
58
+
59
+ # @!attribute [rw] answer_file
60
+ # @return [String] The location of alternate answer file for PE
61
+ # installation. Values can be paths relative to the Vagrantfile's project
62
+ # directory.
63
+ def_model_attribute :answer_file
64
+
65
+ # @!attribute answer_extras
66
+ # @return [Array<String>] An array of additional answer strings that will
67
+ # be appended to the answer file. (Optional)
68
+ # @since 0.11.0
69
+ def_model_attribute :answer_extras
70
+
71
+ # @!attribute [rw] relocate_manifests
72
+ # @return [Boolean] Whether or not to change the PE master to use a config
73
+ # of manifestdir=/manifests and modulepath=/modules. This is meant to be
74
+ # used when the vagrant working directory manifests and modules are
75
+ # remounted on the guest.
76
+ def_model_attribute :relocate_manifests
77
+
78
+ # @!attribute [rw] autosign
79
+ # Configure the certificates that will be autosigned by the puppet master.
80
+ #
81
+ # @return [TrueClass] All CSRs will be signed
82
+ # @return [FalseClass] The autosign config file will be unmanaged
83
+ # @return [Array<String>] CSRs with the given addresses
84
+ #
85
+ # @see http://docs.puppetlabs.com/guides/configuring.html#autosignconf
86
+ #
87
+ # @since 0.4.0
88
+ def_model_attribute :autosign
89
+
90
+ ::ConfigBuilder::Model::Provisioner.register('pe_bootstrap', self)
91
+ end
@@ -34,6 +34,15 @@ class PEBuild::ConfigBuilder::Global < ::ConfigBuilder::Model::Base
34
34
  # installers if the installer is not yet cached. This setting is optional.
35
35
  def_model_attribute :download_root
36
36
 
37
+ # @!attribute shared_installer
38
+ # @return [Boolean] Whether to run PE installation using installers and
39
+ # answers shared using the `/vagrant` mount. If set to `false`, resources
40
+ # will be downloaded remotely to the home directory of whichever user
41
+ # account Vagrant is using. Defaults to `true`.
42
+ #
43
+ # @since 0.14.0
44
+ def_model_attribute :shared_installer
45
+
37
46
  def to_proc
38
47
  Proc.new do |global_config|
39
48
  with_attr(:download_root) { |val| global_config.pe_build.download_root = val }
@@ -42,6 +51,7 @@ class PEBuild::ConfigBuilder::Global < ::ConfigBuilder::Model::Base
42
51
  with_attr(:series) { |val| global_config.pe_build.series = val }
43
52
  with_attr(:suffix) { |val| global_config.pe_build.suffix = val }
44
53
  with_attr(:filename) { |val| global_config.pe_build.filename = val }
54
+ with_attr(:shared_installer) { |val| global_config.pe_build.shared_installer = val }
45
55
  end
46
56
  end
47
57
  end
@@ -85,6 +85,24 @@ module PEBuild
85
85
 
86
86
  ## Run install
87
87
 
88
+ guest_capability('linux', 'stage_installer') do
89
+ require_relative 'cap'
90
+ PEBuild::Cap::StageInstaller::POSIX
91
+ end
92
+
93
+ [:solaris, :solaris11].each do |os|
94
+ guest_capability(os, 'stage_installer') do
95
+ require_relative 'cap'
96
+ PEBuild::Cap::StageInstaller::POSIX
97
+ end
98
+ end
99
+
100
+ guest_capability('windows', 'stage_installer') do
101
+ require_relative 'cap'
102
+ PEBuild::Cap::StageInstaller::Windows
103
+ end
104
+
105
+
88
106
  guest_capability('linux', 'run_install') do
89
107
  require_relative 'cap'
90
108
  PEBuild::Cap::RunInstall::POSIX
@@ -1,6 +1,8 @@
1
1
  require 'pe_build/util/pe_packaging'
2
2
  require 'pe_build/util/machine_comms'
3
3
 
4
+ require 'uri'
5
+
4
6
  module PEBuild
5
7
  module Provisioner
6
8
  # Provision PE agents using simplified install
@@ -17,9 +19,9 @@ module PEBuild
17
19
  def provision
18
20
  provision_init!
19
21
 
20
- # As of 2015.x, pe_repo doesn't support windows installation, so skip
21
- # provisioning the repositories.
22
- unless master_vm.nil? || provision_windows?
22
+ # NOTE: When enabling installation for PE 3.x, Windows isn't supported
23
+ # by that build of pe_repo.
24
+ unless master_vm.nil?
23
25
  provision_pe_repo
24
26
  end
25
27
  provision_agent
@@ -164,19 +166,20 @@ bash pe_frictionless_installer.sh
164
166
  #
165
167
  # Executes a `pe_bootstrap` provisioner running in agent mode.
166
168
  def provision_windows_agent
167
- pe_config = ::PEBuild::Config::PEBootstrap.new
168
- pe_config.role = :agent
169
- # Windows won't reconize 'current' as a version number, so fall through
170
- # to the global default by leaving it unset.
171
- pe_config.version = config.version unless config.version == 'current'
172
- pe_config.master = config.master
173
- pe_config.finalize!
174
-
175
- machine.ui.info "Installing Windows agent with PE Bootstrap"
176
-
177
- pe_provisioner = Vagrant.plugin('2').manager.provisioners[:pe_bootstrap].new(machine, pe_config)
178
- pe_provisioner.configure(machine.config)
179
- pe_provisioner.provision
169
+ platform_tag = platform_tag(facts)
170
+ installer = "puppet-agent-#{facts['architecture']}.msi"
171
+ # TODO: Extend to allow passing arbitrary install options.
172
+ answers = {
173
+ 'PUPPET_MASTER_SERVER' => config.master,
174
+ 'PUPPET_AGENT_CERTNAME' => machine.name,
175
+ }
176
+
177
+ # TODO: Extend to use `config.version` once {#provision_pe_repo}
178
+ # supports it.
179
+ installer_url = URI.parse("https://#{config.master}:8140/packages/current/#{platform_tag}/#{installer}")
180
+
181
+ machine.guest.capability(:stage_installer, installer_url, '.')
182
+ machine.guest.capability(:run_install, installer, answers)
180
183
  end
181
184
 
182
185
  def provision_agent_cert
@@ -53,19 +53,35 @@ module PEBuild
53
53
  FileUtils.mkdir_p work_dir
54
54
  end
55
55
  end
56
-
57
56
  def provision
58
- prepare_answers_file
59
57
  load_archive
60
- fetch_installer
61
-
62
- @machine.guest.capability('run_install', @config, @archive)
63
58
 
64
- run_postinstall_tasks
59
+ if pe_installed?
60
+ machine.ui.warn I18n.t('pebuild.provisioner.pe_bootstrap.already_installed'),
61
+ :name => machine.name
62
+ else
63
+ prepare_answers_file
64
+ fetch_installer
65
+ run_install
66
+ run_postinstall_tasks
67
+ end
65
68
  end
66
69
 
67
70
  private
68
71
 
72
+ def pe_installed?
73
+ case machine.guest.capability_host_chain.first.first
74
+ when :windows
75
+ gt_win2k3_path = '${Env:ALLUSERSPROFILE}\\PuppetLabs'
76
+ le_win2k3_path = '${Env:ALLUSERSPROFILE}\\Application Data\\PuppetLabs'
77
+ testpath = "(Test-Path \"#{gt_win2k3_path}\") -or (Test-Path \"#{le_win2k3_path}\")"
78
+
79
+ machine.communicate.test("If (#{testpath}) { Exit 0 } Else { Exit 1 }")
80
+ else
81
+ machine.communicate.test('test -f /opt/puppet/pe_version || test -f /opt/puppetlabs/server/pe_version')
82
+ end
83
+ end
84
+
69
85
  def late_config_merge(root_config)
70
86
  provision = @config
71
87
  global = root_config.pe_build
@@ -85,6 +101,10 @@ module PEBuild
85
101
  def prepare_answers_file
86
102
  af = AnswersFile.new(@machine, @config, @work_dir)
87
103
  af.generate
104
+
105
+ unless @config.shared_installer
106
+ @machine.communicate.upload(File.join(@answer_dir, "#{@machine.name}.txt"), "#{machine.name}.txt")
107
+ end
88
108
  end
89
109
 
90
110
  def load_archive
@@ -115,9 +135,44 @@ module PEBuild
115
135
 
116
136
  # @todo panic if @config.download_root is undefined
117
137
  def fetch_installer
118
- uri = @config.download_root
119
- @archive.fetch(@config.download_root)
120
- @archive.unpack_to(@work_dir)
138
+ if @config.shared_installer
139
+ uri = @config.download_root
140
+ @archive.fetch(@config.download_root)
141
+ @archive.unpack_to(@work_dir)
142
+ else
143
+ @machine.guest.capability(:stage_installer, @archive.source_uri(@config.download_root), '.')
144
+ end
145
+ end
146
+
147
+ def run_install
148
+ case machine.guest.capability_host_chain.first.first
149
+ when :windows
150
+ if @config.shared_installer
151
+ drive = machine.communicate.shell.cmd('ECHO %SYSTEMDRIVE%')[:data][0][:stdout].chomp
152
+ installer_dir = File.join(drive, 'vagrant', PEBuild::WORK_DIR)
153
+
154
+ installer_path = File.join(installer_dir, @archive.filename)
155
+ else
156
+ installer_path = @archive.filename
157
+ end
158
+
159
+ # Windows installations don't use answer files.
160
+ answers = {
161
+ 'PUPPET_MASTER_SERVER' => @config.master,
162
+ 'PUPPET_AGENT_CERTNAME' => machine.name,
163
+ }
164
+ else
165
+ if @config.shared_installer
166
+ root = File.join('/vagrant', PEBuild::WORK_DIR)
167
+ installer_path = File.join(root, @archive.installer_dir, 'puppet-enterprise-installer')
168
+ answers = File.join(root, 'answers', "#{machine.name}.txt")
169
+ else
170
+ installer_path = File.join(@archive.installer_dir, 'puppet-enterprise-installer')
171
+ answers = File.join("#{machine.name}.txt")
172
+ end
173
+ end
174
+
175
+ machine.guest.capability('run_install', installer_path, answers)
121
176
  end
122
177
 
123
178
  def run_postinstall_tasks
@@ -41,7 +41,12 @@ class PEBuild::Provisioner::PEBootstrap::PostInstall
41
41
  puppet_apply = "/opt/puppetlabs/bin/puppet apply"
42
42
  end
43
43
 
44
- manifest_path = "/vagrant/.pe_build/post-install/#{@machine.name}.pp"
44
+ if @config.shared_installer
45
+ manifest_path = "/vagrant/.pe_build/post-install/#{@machine.name}.pp"
46
+ else
47
+ @machine.communicate.upload(@post_install_manifest, "#{@machine.name}.pp")
48
+ manifest_path = "#{@machine.name}.pp"
49
+ end
45
50
 
46
51
  on_machine(@machine, "#{puppet_apply} #{manifest_path}")
47
52
  end
@@ -39,7 +39,8 @@ module PEBuild
39
39
  require 'pe_build/release/3_8'
40
40
  require 'pe_build/release/2015_2'
41
41
  require 'pe_build/release/2015_3'
42
+ require 'pe_build/release/2016_1'
42
43
 
43
- LATEST_VERSION = '2015.3.0'
44
+ LATEST_VERSION = '2015.3.3'
44
45
  end
45
46
  end
@@ -16,10 +16,6 @@ module PEBuild::Release
16
16
  add_release :ubuntu, '12.04'
17
17
  add_release :ubuntu, '14.04'
18
18
 
19
- # Nothing has changed for installation of Windows agents.
20
-
21
- add_release :windows, '2003'
22
- add_release :windows, '2003R2'
23
19
  add_release :windows, '2008'
24
20
  add_release :windows, '2008R2'
25
21
  add_release :windows, '7'
@@ -35,4 +31,5 @@ module PEBuild::Release
35
31
  @releases['2015.3.0'] = twentyfifteen_three_x
36
32
  @releases['2015.3.1'] = twentyfifteen_three_x
37
33
  @releases['2015.3.2'] = twentyfifteen_three_x
34
+ @releases['2015.3.3'] = twentyfifteen_three_x
38
35
  end
@@ -0,0 +1,29 @@
1
+ require 'pe_build/release'
2
+
3
+ module PEBuild::Release
4
+
5
+ twentyfifteen_six_x = newrelease do
6
+
7
+ add_release :el, '6'
8
+ add_release :el, '7'
9
+
10
+ add_release :sles, '11'
11
+ add_release :sles, '12'
12
+
13
+ add_release :ubuntu, '12.04'
14
+ add_release :ubuntu, '14.04'
15
+
16
+ add_release :windows, '2008'
17
+ add_release :windows, '2008R2'
18
+ add_release :windows, '7'
19
+ add_release :windows, '2012'
20
+ add_release :windows, '2012R2'
21
+ add_release :windows, '8'
22
+ add_release :windows, '8.1'
23
+
24
+ set_answer_file :master, File.join(PEBuild.template_dir, 'answers', 'master-2015.x.txt.erb')
25
+ set_answer_file :agent, File.join(PEBuild.template_dir, 'answers', 'agent-2015.x.txt.erb')
26
+ end
27
+
28
+ @releases['2016.1.0'] = twentyfifteen_six_x
29
+ end
@@ -26,6 +26,7 @@ module PEBuild
26
26
  arch = facts['architecture']
27
27
  when 'windows'
28
28
  os = 'windows'
29
+ # Windows packages don't discriminate based on version.
29
30
  version = nil
30
31
  arch = (facts['architecture'] == 'x64' ? 'x86_64' : 'i386')
31
32
  when 'debian'
@@ -48,7 +49,7 @@ module PEBuild
48
49
  end
49
50
  # TODO: Add "unknown os" error.
50
51
 
51
- [os, version, arch].join('-').downcase
52
+ [os, version, arch].compact.join('-').downcase
52
53
  end
53
54
  module_function :platform_tag
54
55
 
@@ -1,3 +1,3 @@
1
1
  module PEBuild
2
- VERSION = '0.13.7'
2
+ VERSION = '0.14.0'
3
3
  end
@@ -78,12 +78,10 @@ EOF
78
78
  context 'when osfamily is windows' do
79
79
  before(:each) do
80
80
  allow(subject).to receive(:provision_windows?).and_return(true)
81
- allow(subject).to receive(:master_vm).and_return(master_vm)
82
81
  end
83
82
 
84
- it 'invokes the windows provisioner and skips pe_repo' do
83
+ it 'invokes the windows provisioner' do
85
84
  expect(subject).to receive(:provision_windows_agent)
86
- expect(subject).to receive(:provision_pe_repo).never
87
85
 
88
86
  subject.provision
89
87
  end
@@ -28,6 +28,8 @@ en:
28
28
  pe_bootstrap:
29
29
  post_install: |-
30
30
  Applying post-install configuration to Puppet Enterprise.
31
+ already_installed: |-
32
+ Puppet Enterprise is already installed, skipping installation.
31
33
  errors:
32
34
  unset_version: |-
33
35
  The Puppet Enterprise version must be set either on the global pe_build config
@@ -114,9 +116,11 @@ en:
114
116
  The agent version %{version} is too old; pe_agent can only provision versions
115
117
  newer than %{minimum_version}.
116
118
  cap:
119
+ stage_installer:
120
+ downloading_installer: |-
121
+ Downloading PE installer from:
122
+ %{url}
117
123
  run_install:
118
- already_installed: |-
119
- Puppet Enterprise is already installed, skipping installation.
120
124
  scheduling_run: |-
121
125
  Scheduling Puppet run to kickstart node classification.
122
126
  detect_installer:
@@ -18,10 +18,10 @@ Gem::Specification.new do |gem|
18
18
 
19
19
  gem.license = 'Apache 2.0'
20
20
 
21
- gem.add_runtime_dependency 'progressbar'
22
- gem.add_runtime_dependency 'minitar'
21
+ gem.add_runtime_dependency 'progressbar', '~> 0.21.0'
22
+ gem.add_runtime_dependency 'minitar', '~> 0.5.4'
23
23
 
24
- gem.add_development_dependency 'rake'
24
+ gem.add_development_dependency 'rake', '~> 10.0'
25
25
  # Pin to 2.14.x for compatibility with vagrant-spec.
26
26
  gem.add_development_dependency 'rspec', '~> 2.14.0'
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-pe_build
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.7
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrien Thebo
@@ -9,62 +9,62 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-02-11 00:00:00.000000000 Z
12
+ date: 2016-03-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: progressbar
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: 0.21.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: 0.21.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: minitar
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: 0.5.4
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '0'
41
+ version: 0.5.4
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: '10.0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '0'
55
+ version: '10.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rspec
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ~>
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: 2.14.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ~>
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: 2.14.0
70
70
  description:
@@ -75,10 +75,10 @@ executables: []
75
75
  extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
- - .gitignore
79
- - .rspec
80
- - .travis.yml
81
- - .yardopts
78
+ - ".gitignore"
79
+ - ".rspec"
80
+ - ".travis.yml"
81
+ - ".yardopts"
82
82
  - CHANGELOG
83
83
  - Gemfile
84
84
  - LICENSE
@@ -120,6 +120,8 @@ files:
120
120
  - lib/pe_build/cap/facts/windows.rb
121
121
  - lib/pe_build/cap/run_install/posix.rb
122
122
  - lib/pe_build/cap/run_install/windows.rb
123
+ - lib/pe_build/cap/stage_installer/posix.rb
124
+ - lib/pe_build/cap/stage_installer/windows.rb
123
125
  - lib/pe_build/command.rb
124
126
  - lib/pe_build/command/base.rb
125
127
  - lib/pe_build/command/copy.rb
@@ -130,9 +132,13 @@ files:
130
132
  - lib/pe_build/config/pe_agent.rb
131
133
  - lib/pe_build/config/pe_bootstrap.rb
132
134
  - lib/pe_build/config_builder.rb
135
+ - lib/pe_build/config_builder/0_x.rb
136
+ - lib/pe_build/config_builder/0_x/pe_agent.rb
137
+ - lib/pe_build/config_builder/0_x/pe_bootstrap.rb
138
+ - lib/pe_build/config_builder/1_x.rb
139
+ - lib/pe_build/config_builder/1_x/pe_agent.rb
140
+ - lib/pe_build/config_builder/1_x/pe_bootstrap.rb
133
141
  - lib/pe_build/config_builder/global.rb
134
- - lib/pe_build/config_builder/pe_agent.rb
135
- - lib/pe_build/config_builder/pe_bootstrap.rb
136
142
  - lib/pe_build/config_default.rb
137
143
  - lib/pe_build/idempotent.rb
138
144
  - lib/pe_build/on_machine.rb
@@ -145,6 +151,7 @@ files:
145
151
  - lib/pe_build/release/1_2.rb
146
152
  - lib/pe_build/release/2015_2.rb
147
153
  - lib/pe_build/release/2015_3.rb
154
+ - lib/pe_build/release/2016_1.rb
148
155
  - lib/pe_build/release/2_0.rb
149
156
  - lib/pe_build/release/2_5.rb
150
157
  - lib/pe_build/release/2_6.rb
@@ -204,17 +211,17 @@ require_paths:
204
211
  - lib
205
212
  required_ruby_version: !ruby/object:Gem::Requirement
206
213
  requirements:
207
- - - '>='
214
+ - - ">="
208
215
  - !ruby/object:Gem::Version
209
216
  version: '0'
210
217
  required_rubygems_version: !ruby/object:Gem::Requirement
211
218
  requirements:
212
- - - '>='
219
+ - - ">="
213
220
  - !ruby/object:Gem::Version
214
221
  version: '0'
215
222
  requirements: []
216
223
  rubyforge_project:
217
- rubygems_version: 2.0.14
224
+ rubygems_version: 2.4.5.1
218
225
  signing_key:
219
226
  specification_version: 4
220
227
  summary: Vagrant provisioners for installing Puppet Enterprise