vagrant-pe_build 0.13.7 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|