beaker-pe 1.40.7 → 1.41.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/lib/beaker-pe.rb +2 -0
- data/lib/beaker-pe/install/pe_defaults.rb +143 -0
- data/lib/beaker-pe/version.rb +1 -1
- data/spec/beaker-pe/install/pe_defaults_spec.rb +63 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0722a3c91c3e74512eecedbbf30bf2f9e1d281f2
|
|
4
|
+
data.tar.gz: 54c23d3e7de6c26893f63ee02a78f3b2e9373e5c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4df8660e8ca9ae7ba3db2a821abcb74a684a0ba7c7797bad1840ea9ed1df97f674774a861941b742de842510c96857aa69fd16078308b90c373a5538ac19a515
|
|
7
|
+
data.tar.gz: 04b0e7101905a5cb651d9978a5f6ae701bdfe6caefac2c813931a4fd56a6f28eca6c50df134353240edba7a3217213d30bd35cb5f32394de6a27b50c6ee1fa3c
|
data/lib/beaker-pe.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'stringify-hash'
|
|
2
2
|
require 'beaker-pe/version'
|
|
3
|
+
require 'beaker-pe/install/pe_defaults'
|
|
3
4
|
require 'beaker-pe/install/pe_utils'
|
|
4
5
|
require 'beaker-pe/options/pe_version_scraper'
|
|
5
6
|
require 'beaker-pe/pe-client-tools/config_file_helper'
|
|
@@ -9,6 +10,7 @@ require 'beaker-pe/pe-client-tools/executable_helper'
|
|
|
9
10
|
module Beaker
|
|
10
11
|
module DSL
|
|
11
12
|
module PE
|
|
13
|
+
include Beaker::DSL::InstallUtils::PEDefaults
|
|
12
14
|
include Beaker::DSL::InstallUtils::PEUtils
|
|
13
15
|
include Beaker::DSL::InstallUtils::PEClientTools
|
|
14
16
|
include Beaker::Options::PEVersionScraper
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
module Beaker
|
|
2
|
+
module DSL
|
|
3
|
+
module InstallUtils
|
|
4
|
+
#
|
|
5
|
+
# This module contains default values for pe paths and directorys per-platform
|
|
6
|
+
#
|
|
7
|
+
module PEDefaults
|
|
8
|
+
|
|
9
|
+
#Here be the pathing and default values for PE installs
|
|
10
|
+
#
|
|
11
|
+
PE_DEFAULTS = {
|
|
12
|
+
'mac' => {
|
|
13
|
+
'puppetserver-confdir' => '/etc/puppetlabs/puppetserver/conf.d',
|
|
14
|
+
'puppetservice' => 'pe-puppetserver',
|
|
15
|
+
'puppetpath' => '/etc/puppetlabs/puppet',
|
|
16
|
+
'puppetconfdir' => '/etc/puppetlabs/puppet',
|
|
17
|
+
'puppetcodedir' => '/etc/puppetlabs/puppet',
|
|
18
|
+
'puppetbin' => '/opt/puppet/bin/puppet',
|
|
19
|
+
'puppetbindir' => '/opt/puppet/bin',
|
|
20
|
+
'puppetsbindir' => '/opt/puppet/sbin',
|
|
21
|
+
'puppetvardir' => '/var/opt/lib/pe-puppet',
|
|
22
|
+
'hieradatadir' => '/var/lib/hiera',
|
|
23
|
+
'hieraconf' => '/etc/puppetlabs/puppet/hiera.yaml',
|
|
24
|
+
'distmoduledir' => '/etc/puppetlabs/puppet/modules',
|
|
25
|
+
'sitemoduledir' => '/opt/puppet/share/puppet/modules',
|
|
26
|
+
},
|
|
27
|
+
'unix' => {
|
|
28
|
+
'puppetserver-confdir' => '/etc/puppetlabs/puppetserver/conf.d',
|
|
29
|
+
'puppetservice' => 'pe-puppetserver',
|
|
30
|
+
'puppetpath' => '/etc/puppetlabs/puppet',
|
|
31
|
+
'puppetconfdir' => '/etc/puppetlabs/puppet',
|
|
32
|
+
'puppetbin' => '/opt/puppet/bin/puppet',
|
|
33
|
+
'puppetbindir' => '/opt/puppet/bin',
|
|
34
|
+
'puppetsbindir' => '/opt/puppet/sbin',
|
|
35
|
+
'privatebindir' => '/opt/puppet/bin',
|
|
36
|
+
'puppetvardir' => '/var/opt/lib/pe-puppet',
|
|
37
|
+
'hieradatadir' => '/var/lib/hiera',
|
|
38
|
+
'hieraconf' => '/etc/puppetlabs/puppet/hiera.yaml',
|
|
39
|
+
'distmoduledir' => '/etc/puppetlabs/puppet/modules',
|
|
40
|
+
'sitemoduledir' => '/opt/puppet/share/puppet/modules',
|
|
41
|
+
},
|
|
42
|
+
'windows' => { #cygwin windows
|
|
43
|
+
'puppetservice' => 'pe-puppetserver',
|
|
44
|
+
'puppetpath' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
|
|
45
|
+
'puppetconfdir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
|
|
46
|
+
'puppetcodedir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
|
|
47
|
+
'hieraconf' => '`cygpath -smF 35`/Puppetlabs/puppet/etc/hiera.yaml',
|
|
48
|
+
'puppetvardir' => '`cygpath -smF 35`/PuppetLabs/puppet/var',
|
|
49
|
+
'distmoduledir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc/modules',
|
|
50
|
+
'sitemoduledir' => 'C:/usr/share/puppet/modules',
|
|
51
|
+
#let's just add both potential bin dirs to the path
|
|
52
|
+
'puppetbindir' => '/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet Enterprise/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet Enterprise/bin',
|
|
53
|
+
'privatebindir' => '/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet Enterprise/sys/ruby/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet Enterprise/sys/ruby/bin',
|
|
54
|
+
},
|
|
55
|
+
'pswindows' => { #windows windows
|
|
56
|
+
'puppetservice' => 'pe-puppetserver',
|
|
57
|
+
'puppetpath' => 'C:\\ProgramData\\PuppetLabs\\puppet\\etc',
|
|
58
|
+
'puppetconfdir' => 'C:\\ProgramData\\PuppetLabs\\puppet\\etc',
|
|
59
|
+
'puppetcodedir' => 'C:\\ProgramData\\PuppetLabs\\puppet\\etc',
|
|
60
|
+
'hieraconf' => 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\hiera.yaml',
|
|
61
|
+
'distmoduledir' => 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules',
|
|
62
|
+
'sitemoduledir' => 'C:\\usr\\share\\puppet\\modules',
|
|
63
|
+
'puppetvardir' => 'C:\\ProgramData\\PuppetLabs\\puppet\\var',
|
|
64
|
+
'puppetbindir' => '"C:\\Program Files (x86)\\PuppetLabs\\Puppet Enterprise\\bin";"C:\\Program Files\\PuppetLabs\\Puppet Enterprise\\bin"'
|
|
65
|
+
},
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
# Add the appropriate pe defaults to the host object so that they can be accessed using host[option], set host[:type] = pe
|
|
69
|
+
# @param [Host] host A single host to act upon
|
|
70
|
+
# @param [String] platform The platform type of this host, one of windows, pswindows, mac & unix
|
|
71
|
+
def add_platform_pe_defaults(host, platform)
|
|
72
|
+
PE_DEFAULTS[platform].each_pair do |key, val|
|
|
73
|
+
host[key] = val
|
|
74
|
+
end
|
|
75
|
+
# add the type and group here for backwards compatability
|
|
76
|
+
if host['platform'] =~ /windows/
|
|
77
|
+
host['group'] = 'Administrators'
|
|
78
|
+
else
|
|
79
|
+
host['group'] = 'pe-puppet'
|
|
80
|
+
end
|
|
81
|
+
host['type'] = 'pe'
|
|
82
|
+
# older pe requires a different puppetservice name, set it here on the master
|
|
83
|
+
if host['roles'].include?('master')
|
|
84
|
+
if host['pe_ver'] and (version_is_less(host['pe_ver'], '3.4'))
|
|
85
|
+
host['puppetservice'] = 'pe-httpd'
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Add the appropriate pe defaults to an array of hosts
|
|
91
|
+
# @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
|
|
92
|
+
# or a role (String or Symbol) that identifies one or more hosts.
|
|
93
|
+
def add_pe_defaults_on(hosts)
|
|
94
|
+
block_on hosts do | host |
|
|
95
|
+
case host.class.to_s.downcase
|
|
96
|
+
when /aix|(free|open)bsd|unix/
|
|
97
|
+
platform = 'unix'
|
|
98
|
+
when /mac/
|
|
99
|
+
platform = 'mac'
|
|
100
|
+
when /pswindows/
|
|
101
|
+
platform = 'pswindows'
|
|
102
|
+
else
|
|
103
|
+
platform = 'windows'
|
|
104
|
+
end
|
|
105
|
+
add_platform_pe_defaults(host, platform)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Remove the appropriate pe defaults from the host object so that they can no longer be accessed using host[option], set host[:type] = nil
|
|
110
|
+
# @param [Host] host A single host to act upon
|
|
111
|
+
# @param [String] platform The platform type of this host, one of windows, freebsd, mac & unix
|
|
112
|
+
def remove_platform_pe_defaults(host, platform)
|
|
113
|
+
PE_DEFAULTS[platform].each_pair do |key, val|
|
|
114
|
+
host.delete(key)
|
|
115
|
+
end
|
|
116
|
+
host['group'] = nil
|
|
117
|
+
host['type'] = nil
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Remove the appropriate pe defaults from an array of hosts
|
|
121
|
+
# @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
|
|
122
|
+
# or a role (String or Symbol) that identifies one or more hosts.
|
|
123
|
+
def remove_pe_defaults_on(hosts)
|
|
124
|
+
block_on hosts do | host |
|
|
125
|
+
case host.class.to_s.downcase
|
|
126
|
+
when /aix|(free|open)bsd|unix/
|
|
127
|
+
platform = 'unix'
|
|
128
|
+
when /mac/
|
|
129
|
+
platform = 'mac'
|
|
130
|
+
when /pswindows/
|
|
131
|
+
platform = 'pswindows'
|
|
132
|
+
else
|
|
133
|
+
platform = 'windows'
|
|
134
|
+
end
|
|
135
|
+
remove_platform_pe_defaults(host, platform)
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
data/lib/beaker-pe/version.rb
CHANGED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
class ClassMixedWithDSLInstallUtils
|
|
4
|
+
include Beaker::DSL::InstallUtils
|
|
5
|
+
include Beaker::DSL::Wrappers
|
|
6
|
+
include Beaker::DSL::Helpers
|
|
7
|
+
include Beaker::DSL::Structure
|
|
8
|
+
include Beaker::DSL::Roles
|
|
9
|
+
include Beaker::DSL::Patterns
|
|
10
|
+
|
|
11
|
+
include Beaker::DSL::InstallUtils::PEDefaults
|
|
12
|
+
|
|
13
|
+
attr_accessor :hosts
|
|
14
|
+
|
|
15
|
+
def logger
|
|
16
|
+
@logger ||= RSpec::Mocks::Double.new('logger').as_null_object
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe ClassMixedWithDSLInstallUtils do
|
|
21
|
+
let(:presets) { Beaker::Options::Presets.new }
|
|
22
|
+
let(:opts) { presets.presets.merge(presets.env_vars) }
|
|
23
|
+
let(:basic_hosts) { make_hosts( { :pe_ver => @pe_ver || '3.0',
|
|
24
|
+
:platform => 'linux',
|
|
25
|
+
:roles => [ 'agent' ] }, 4 ) }
|
|
26
|
+
let(:hosts) { basic_hosts[0][:roles] = ['master', 'database', 'dashboard']
|
|
27
|
+
basic_hosts[1][:platform] = 'windows'
|
|
28
|
+
basic_hosts[2][:platform] = 'osx-10.9-x86_64'
|
|
29
|
+
basic_hosts[3][:platform] = 'eos'
|
|
30
|
+
basic_hosts }
|
|
31
|
+
let(:hosts_sorted) { [ hosts[1], hosts[0], hosts[2], hosts[3] ] }
|
|
32
|
+
let(:winhost) { make_host( 'winhost', { :platform => 'windows',
|
|
33
|
+
:pe_ver => '3.0',
|
|
34
|
+
:working_dir => '/tmp' } ) }
|
|
35
|
+
let(:machost) { make_host( 'machost', { :platform => 'osx-10.9-x86_64',
|
|
36
|
+
:pe_ver => '3.0',
|
|
37
|
+
:working_dir => '/tmp' } ) }
|
|
38
|
+
let(:unixhost) { make_host( 'unixhost', { :platform => 'linux',
|
|
39
|
+
:pe_ver => '3.0',
|
|
40
|
+
:working_dir => '/tmp',
|
|
41
|
+
:dist => 'puppet-enterprise-3.1.0-rc0-230-g36c9e5c-debian-7-i386' } ) }
|
|
42
|
+
let(:eoshost) { make_host( 'eoshost', { :platform => 'eos',
|
|
43
|
+
:pe_ver => '3.0',
|
|
44
|
+
:working_dir => '/tmp',
|
|
45
|
+
:dist => 'puppet-enterprise-3.7.1-rc0-78-gffc958f-eos-4-i386' } ) }
|
|
46
|
+
|
|
47
|
+
describe '#add_platform_pe_defaults' do
|
|
48
|
+
it 'sets puppetservice on master to be pe-httpd on pre-3.4 pe' do
|
|
49
|
+
@pe_ver = '3.3'
|
|
50
|
+
subject.add_platform_pe_defaults(hosts[0], 'unix')
|
|
51
|
+
expect(hosts[0]['puppetservice']).to be == 'pe-httpd'
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'sets puppetservice on master to be pe-puppetserver on post-3.4 pe' do
|
|
56
|
+
@pe_ver = '3.7'
|
|
57
|
+
subject.add_platform_pe_defaults(hosts[0], 'unix')
|
|
58
|
+
expect(hosts[0]['puppetservice']).to be == 'pe-puppetserver'
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: beaker-pe
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.41.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Puppetlabs
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-07-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -212,6 +212,7 @@ files:
|
|
|
212
212
|
- docs/how_to/install_puppet_enterprise.md
|
|
213
213
|
- lib/beaker-pe.rb
|
|
214
214
|
- lib/beaker-pe/install/feature_flags.rb
|
|
215
|
+
- lib/beaker-pe/install/pe_defaults.rb
|
|
215
216
|
- lib/beaker-pe/install/pe_utils.rb
|
|
216
217
|
- lib/beaker-pe/options/pe_version_scraper.rb
|
|
217
218
|
- lib/beaker-pe/pe-client-tools/config_file_helper.rb
|
|
@@ -220,6 +221,7 @@ files:
|
|
|
220
221
|
- lib/beaker-pe/version.rb
|
|
221
222
|
- spec/beaker-pe/helpers_spec.rb
|
|
222
223
|
- spec/beaker-pe/install/feature_flags_spec.rb
|
|
224
|
+
- spec/beaker-pe/install/pe_defaults_spec.rb
|
|
223
225
|
- spec/beaker-pe/install/pe_utils_spec.rb
|
|
224
226
|
- spec/beaker-pe/options/pe_version_scaper_spec.rb
|
|
225
227
|
- spec/beaker-pe/pe-client-tools/config_file_helper_spec.rb
|