simp-beaker-helpers 1.19.4 → 1.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/simp/beaker_helpers.rb +69 -9
- data/lib/simp/beaker_helpers/constants.rb +5 -1
- data/lib/simp/beaker_helpers/version.rb +1 -1
- data/spec/acceptance/nodesets/default.yml +22 -5
- data/spec/acceptance/nodesets/ubuntu.yml +20 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3223751413072f7e62097c273b72fa130bcc083701b418c5927bd97897a9f9c5
|
4
|
+
data.tar.gz: 89c0620294618b21000ff2b79504df5bbe27f199b0bd4eb17ed69ce987d12899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9179b27932ec80ecfddb09eb4ea2ba778c99513e31d341d7a85606f63ed85e152af7686b90f5e0a46ee11c50dd5aafe300f148069d6d4a87515fdb7e034fa8ed
|
7
|
+
data.tar.gz: a05d10fdcdc609bcc9e2886b19f856304b8b2386d0377ad0680c0d712a1d6fdad2619908267fc196f55dfaa5339452abc1638d428431d4ce4171689b017519d3
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
### 1.20.0 / 2021-01-05
|
2
|
+
* Added:
|
3
|
+
* A `enable_epel_on` function that follows the instructions on the EPEL
|
4
|
+
website to properly enable EPEL on hosts. May be disabled using
|
5
|
+
`BEAKER_enable_epel=no`.
|
6
|
+
* An Ubuntu nodeset to make sure our default settings don't destroy other
|
7
|
+
Linux systems.
|
8
|
+
* Added has_crypto_policies method for determining if crypto policies are
|
9
|
+
present on the SUT
|
10
|
+
* Added munge_ssh_crypto_policies to allow vagrant to SSH back into systems
|
11
|
+
with restrictive crypto policies (usually FIPS)
|
12
|
+
* Fixed:
|
13
|
+
* Modify all crypto-policy backend files to support ssh-rsa keys
|
14
|
+
* Try harder when doing yum installations
|
15
|
+
|
1
16
|
### 1.19.4 / 2021-01-05
|
2
17
|
* Fixed:
|
3
18
|
* Only return a default empty string when `pfact_on` finds a `nil` value
|
data/lib/simp/beaker_helpers.rb
CHANGED
@@ -321,6 +321,19 @@ module Simp::BeakerHelpers
|
|
321
321
|
pluginsync_on(suts) if opts[:pluginsync]
|
322
322
|
end
|
323
323
|
|
324
|
+
def has_crypto_policies(sut)
|
325
|
+
file_exists_on(sut, '/etc/crypto-policies/config')
|
326
|
+
end
|
327
|
+
|
328
|
+
def munge_ssh_crypto_policies(sut, key_types=['ssh-rsa'])
|
329
|
+
if has_crypto_policies(sut)
|
330
|
+
on(sut, "yum update -y crypto-policies", :accept_all_exit_codes => true)
|
331
|
+
|
332
|
+
# Since we may be doing this prior to having a box flip into FIPS mode, we
|
333
|
+
# need to find and modify *all* of the affected policies
|
334
|
+
on( sut, %{sed --follow-symlinks -i 's/PubkeyAcceptedKeyTypes\\(.\\)/PubkeyAcceptedKeyTypes\\1#{key_types.join(',')},/' $( grep -L ssh-rsa $( find /etc/crypto-policies /usr/share/crypto-policies -type f -a \\( -name '*.txt' -o -name '*.config' \\) -exec grep -l PubkeyAcceptedKeyTypes {} \\; ) ) })
|
335
|
+
end
|
336
|
+
end
|
324
337
|
|
325
338
|
# Configure and reboot SUTs into FIPS mode
|
326
339
|
def enable_fips_mode_on( suts = hosts )
|
@@ -374,17 +387,14 @@ module Simp::BeakerHelpers
|
|
374
387
|
on(sut, module_install_cmd)
|
375
388
|
end
|
376
389
|
|
377
|
-
# Enable FIPS and then reboot to finish.
|
378
|
-
on(sut, %(puppet apply --verbose #{fips_enable_modulepath} -e "class { 'fips': enabled => true }"))
|
379
|
-
|
380
390
|
# Work around Vagrant and cipher restrictions in EL8+
|
381
391
|
#
|
382
392
|
# Hopefully, Vagrant will update the used ciphers at some point but who
|
383
393
|
# knows when that will be
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
394
|
+
munge_ssh_crypto_policies(sut)
|
395
|
+
|
396
|
+
# Enable FIPS and then reboot to finish.
|
397
|
+
on(sut, %(puppet apply --verbose #{fips_enable_modulepath} -e "class { 'fips': enabled => true }"))
|
388
398
|
|
389
399
|
sut.reboot
|
390
400
|
end
|
@@ -477,6 +487,45 @@ module Simp::BeakerHelpers
|
|
477
487
|
repo_manifest = repo_manifest + %(\n#{repo_manifest_opts.join(",\n")}) + "\n}\n"
|
478
488
|
end
|
479
489
|
|
490
|
+
# Enable EPEL if appropriate to do so and the system is online
|
491
|
+
#
|
492
|
+
# Can be disabled by setting BEAKER_enable_epel=no
|
493
|
+
def enable_epel_on(sut)
|
494
|
+
if ONLINE && (ENV['BEAKER_stringify_facts'] != 'no')
|
495
|
+
os_info = fact_on(sut, 'os')
|
496
|
+
os_maj_rel = os_info['release']['major']
|
497
|
+
|
498
|
+
# This is based on the official EPEL docs https://fedoraproject.org/wiki/EPEL
|
499
|
+
if ['RedHat', 'CentOS'].include?(os_info['name'])
|
500
|
+
on(
|
501
|
+
sut,
|
502
|
+
%{yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-#{os_maj_rel}.noarch.rpm},
|
503
|
+
:max_retries => 3,
|
504
|
+
:retry_interval => 10
|
505
|
+
)
|
506
|
+
|
507
|
+
if os_info['name'] == 'RedHat'
|
508
|
+
if os_maj_rel == '7'
|
509
|
+
on sut, %{subscription-manager repos --enable "rhel-*-optional-rpms"}
|
510
|
+
on sut, %{subscription-manager repos --enable "rhel-*-extras-rpms"}
|
511
|
+
on sut, %{subscription-manager repos --enable "rhel-ha-for-rhel-*-server-rpms"}
|
512
|
+
end
|
513
|
+
|
514
|
+
if os_maj_rel == '8'
|
515
|
+
on sut, %{subscription-manager repos --enable "codeready-builder-for-rhel-8-#{os_info['architecture']}-rpms"}
|
516
|
+
end
|
517
|
+
end
|
518
|
+
|
519
|
+
if os_info['name'] == 'CentOS'
|
520
|
+
if os_maj_rel == '8'
|
521
|
+
# 8.0 fallback
|
522
|
+
on sut, %{dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled PowerTools}
|
523
|
+
end
|
524
|
+
end
|
525
|
+
end
|
526
|
+
end
|
527
|
+
end
|
528
|
+
|
480
529
|
def linux_errata( sut )
|
481
530
|
# We need to be able to flip between server and client without issue
|
482
531
|
on sut, 'puppet resource group puppet gid=52'
|
@@ -562,6 +611,7 @@ module Simp::BeakerHelpers
|
|
562
611
|
end
|
563
612
|
|
564
613
|
enable_yum_repos_on(sut)
|
614
|
+
enable_epel_on(sut)
|
565
615
|
|
566
616
|
# net-tools required for netstat utility being used by be_listening
|
567
617
|
if fact_on(sut, 'operatingsystemmajrelease') == '7'
|
@@ -1246,11 +1296,21 @@ done
|
|
1246
1296
|
# NOTE: Do *NOT* use puppet in this method since it may not be available yet
|
1247
1297
|
|
1248
1298
|
if on(sut, 'rpm -q yum-utils', :accept_all_exit_codes => true).exit_code != 0
|
1249
|
-
on(
|
1299
|
+
on(
|
1300
|
+
sut,
|
1301
|
+
'yum -y install yum-utils',
|
1302
|
+
:max_retries => 3,
|
1303
|
+
:retry_interval => 10
|
1304
|
+
)
|
1250
1305
|
end
|
1251
1306
|
|
1252
1307
|
if on(sut, 'rpm -q simp-release-community', :accept_all_exit_codes => true).exit_code != 0
|
1253
|
-
on(
|
1308
|
+
on(
|
1309
|
+
sut,
|
1310
|
+
'yum -y install "https://download.simp-project.com/simp-release-community.rpm"',
|
1311
|
+
:max_retries => 3,
|
1312
|
+
:retry_interval => 10
|
1313
|
+
)
|
1254
1314
|
end
|
1255
1315
|
|
1256
1316
|
to_disable = disable.dup
|
@@ -17,7 +17,11 @@ module Simp::BeakerHelpers
|
|
17
17
|
require 'open-uri'
|
18
18
|
|
19
19
|
begin
|
20
|
-
|
20
|
+
if URI.respond_to?(:open)
|
21
|
+
ONLINE = true if URI.open('http://google.com')
|
22
|
+
else
|
23
|
+
ONLINE = true if open('http://google.com')
|
24
|
+
end
|
21
25
|
rescue
|
22
26
|
ONLINE = false
|
23
27
|
end
|
@@ -6,21 +6,27 @@
|
|
6
6
|
end
|
7
7
|
-%>
|
8
8
|
HOSTS:
|
9
|
-
|
9
|
+
el7:
|
10
10
|
roles:
|
11
|
-
- server
|
12
|
-
- master
|
13
|
-
- default
|
14
11
|
- el7
|
12
|
+
- master
|
15
13
|
platform: el-7-x86_64
|
16
14
|
box: centos/7
|
17
15
|
hypervisor: <%= hypervisor %>
|
18
16
|
|
19
|
-
|
17
|
+
el8:
|
18
|
+
roles:
|
19
|
+
- el8
|
20
|
+
platform: el-8-x86_64
|
21
|
+
box: centos/8
|
22
|
+
hypervisor: <%= hypervisor %>
|
23
|
+
|
24
|
+
el8-0:
|
20
25
|
roles:
|
21
26
|
- el8
|
22
27
|
platform: el-8-x86_64
|
23
28
|
box: centos/8
|
29
|
+
box_version: "1905.1"
|
24
30
|
hypervisor: <%= hypervisor %>
|
25
31
|
|
26
32
|
CONFIG:
|
@@ -30,3 +36,14 @@ CONFIG:
|
|
30
36
|
<% if ENV['BEAKER_PUPPET_COLLECTION'] -%>
|
31
37
|
puppet_collection: <%= ENV['BEAKER_PUPPET_COLLECTION'] %>
|
32
38
|
<% end -%>
|
39
|
+
ssh:
|
40
|
+
keepalive: true
|
41
|
+
keepalive_interval: 10
|
42
|
+
host_key:
|
43
|
+
- <%= Net::SSH::Transport::Algorithms::ALGORITHMS[:host_key].join("\n#{' '*6}- ") %>
|
44
|
+
kex:
|
45
|
+
- <%= Net::SSH::Transport::Algorithms::ALGORITHMS[:kex].join("\n#{' '*6}- ") %>
|
46
|
+
encryption:
|
47
|
+
- <%= Net::SSH::Transport::Algorithms::ALGORITHMS[:encryption].join("\n#{' '*6}- ") %>
|
48
|
+
hmac:
|
49
|
+
- <%= Net::SSH::Transport::Algorithms::ALGORITHMS[:hmac].join("\n#{' '*6}- ") %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<%
|
2
|
+
if ENV['BEAKER_HYPERVISOR']
|
3
|
+
hypervisor = ENV['BEAKER_HYPERVISOR']
|
4
|
+
else
|
5
|
+
hypervisor = 'vagrant'
|
6
|
+
end
|
7
|
+
-%>
|
8
|
+
HOSTS:
|
9
|
+
focal:
|
10
|
+
platform: ubuntu-20.04-x86_64
|
11
|
+
box: ubuntu/focal64
|
12
|
+
hypervisor: <%= hypervisor %>
|
13
|
+
|
14
|
+
CONFIG:
|
15
|
+
log_level: verbose
|
16
|
+
type: aio
|
17
|
+
vagrant_memsize: 256
|
18
|
+
<% if ENV['BEAKER_PUPPET_COLLECTION'] -%>
|
19
|
+
puppet_collection: <%= ENV['BEAKER_PUPPET_COLLECTION'] %>
|
20
|
+
<% end -%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-beaker-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Tessmer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-01-
|
12
|
+
date: 2021-01-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: beaker
|
@@ -188,6 +188,7 @@ files:
|
|
188
188
|
- lib/simp/rake/beaker.rb
|
189
189
|
- simp-beaker-helpers.gemspec
|
190
190
|
- spec/acceptance/nodesets/default.yml
|
191
|
+
- spec/acceptance/nodesets/ubuntu.yml
|
191
192
|
- spec/acceptance/suites/default/check_puppet_version_spec.rb
|
192
193
|
- spec/acceptance/suites/default/enable_fips_spec.rb
|
193
194
|
- spec/acceptance/suites/default/fixture_modules_spec.rb
|
@@ -241,6 +242,7 @@ specification_version: 4
|
|
241
242
|
summary: beaker helper methods for SIMP
|
242
243
|
test_files:
|
243
244
|
- spec/acceptance/nodesets/default.yml
|
245
|
+
- spec/acceptance/nodesets/ubuntu.yml
|
244
246
|
- spec/acceptance/suites/default/check_puppet_version_spec.rb
|
245
247
|
- spec/acceptance/suites/default/enable_fips_spec.rb
|
246
248
|
- spec/acceptance/suites/default/fixture_modules_spec.rb
|