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.
- checksums.yaml +4 -4
- data/CHANGELOG +25 -0
- data/README.markdown +24 -26
- data/lib/pe_build/archive.rb +6 -1
- data/lib/pe_build/cap.rb +5 -0
- data/lib/pe_build/cap/detect_installer/debian.rb +1 -1
- data/lib/pe_build/cap/detect_installer/sles.rb +1 -1
- data/lib/pe_build/cap/detect_installer/ubuntu.rb +1 -1
- data/lib/pe_build/cap/run_install/posix.rb +9 -25
- data/lib/pe_build/cap/run_install/windows.rb +26 -29
- data/lib/pe_build/cap/stage_installer/posix.rb +38 -0
- data/lib/pe_build/cap/stage_installer/windows.rb +33 -0
- data/lib/pe_build/config/global.rb +11 -0
- data/lib/pe_build/config_builder.rb +9 -3
- data/lib/pe_build/config_builder/0_x.rb +6 -0
- data/lib/pe_build/config_builder/{pe_agent.rb → 0_x/pe_agent.rb} +0 -0
- data/lib/pe_build/config_builder/{pe_bootstrap.rb → 0_x/pe_bootstrap.rb} +1 -0
- data/lib/pe_build/config_builder/1_x.rb +6 -0
- data/lib/pe_build/config_builder/1_x/pe_agent.rb +35 -0
- data/lib/pe_build/config_builder/1_x/pe_bootstrap.rb +91 -0
- data/lib/pe_build/config_builder/global.rb +10 -0
- data/lib/pe_build/plugin.rb +18 -0
- data/lib/pe_build/provisioner/pe_agent.rb +19 -16
- data/lib/pe_build/provisioner/pe_bootstrap.rb +64 -9
- data/lib/pe_build/provisioner/pe_bootstrap/post_install.rb +6 -1
- data/lib/pe_build/release.rb +2 -1
- data/lib/pe_build/release/2015_3.rb +1 -4
- data/lib/pe_build/release/2016_1.rb +29 -0
- data/lib/pe_build/util/pe_packaging.rb +2 -1
- data/lib/pe_build/version.rb +1 -1
- data/spec/unit/provisioner/pe_agent_spec.rb +1 -3
- data/templates/locales/en.yml +6 -2
- data/vagrant-pe_build.gemspec +3 -3
- metadata +32 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa2b46e048a5920609c5e99569e2f9465fbae3fa
|
4
|
+
data.tar.gz: f6040fefce357fe8921d77752972cb62cf19fc8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
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.
|
243
|
-
config.pe_build.filename = 'puppet-enterprise-3.8.
|
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.
|
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.
|
255
|
+
node.vm.box = 'puppetlabs/centos-7.2-64-nocm'
|
258
256
|
|
259
257
|
node.vm.provision :pe_bootstrap
|
260
258
|
end
|
data/lib/pe_build/archive.rb
CHANGED
@@ -64,7 +64,7 @@ module PEBuild
|
|
64
64
|
raise PEBuild::ArchiveNoInstallerSource, :filename => versioned_path(@filename)
|
65
65
|
end
|
66
66
|
|
67
|
-
uri =
|
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
|
@@ -3,31 +3,15 @@ class PEBuild::Cap::RunInstall::POSIX
|
|
3
3
|
|
4
4
|
extend PEBuild::OnMachine
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
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
|
File without changes
|
@@ -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,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
|
data/lib/pe_build/plugin.rb
CHANGED
@@ -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
|
-
#
|
21
|
-
#
|
22
|
-
unless master_vm.nil?
|
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
|
-
|
168
|
-
|
169
|
-
#
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
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
|
-
|
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
|
-
|
119
|
-
|
120
|
-
|
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
|
-
|
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
|
data/lib/pe_build/release.rb
CHANGED
@@ -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
|
|
data/lib/pe_build/version.rb
CHANGED
@@ -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
|
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
|
data/templates/locales/en.yml
CHANGED
@@ -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:
|
data/vagrant-pe_build.gemspec
CHANGED
@@ -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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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.
|
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
|