simp-beaker-helpers 1.19.4 → 1.20.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a44635bd8cc4cc1a091769b42837b03e7711e280ce4e81a261614ff95ca0241
4
- data.tar.gz: afbf39be4623d4abb203efcf4215d931cba9366ee1252658918d382d5e6191fd
3
+ metadata.gz: 3223751413072f7e62097c273b72fa130bcc083701b418c5927bd97897a9f9c5
4
+ data.tar.gz: 89c0620294618b21000ff2b79504df5bbe27f199b0bd4eb17ed69ce987d12899
5
5
  SHA512:
6
- metadata.gz: e2e6e7bf750cb1b75240583efa6ae766981fe82be3fcfa59e498198285c97901569fd4a17857328497b54c55fbc098504883b1be9b5239db2809ba8a3c80ed90
7
- data.tar.gz: 20ad194cabcf61d8489efb238ff5d9590c76c3d6e2ea850431d2a51b7295720bf75a8deb48b752c942e0fe0ca8322e5591cf5b2718d69c6a88d923165661c65c
6
+ metadata.gz: 9179b27932ec80ecfddb09eb4ea2ba778c99513e31d341d7a85606f63ed85e152af7686b90f5e0a46ee11c50dd5aafe300f148069d6d4a87515fdb7e034fa8ed
7
+ data.tar.gz: a05d10fdcdc609bcc9e2886b19f856304b8b2386d0377ad0680c0d712a1d6fdad2619908267fc196f55dfaa5339452abc1638d428431d4ce4171689b017519d3
@@ -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
@@ -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
- opensshserver_config = '/etc/crypto-policies/back-ends/opensshserver.config'
385
- if file_exists_on(sut, opensshserver_config)
386
- on(sut, "sed --follow-symlinks -i 's/PubkeyAcceptedKeyTypes=/PubkeyAcceptedKeyTypes=ssh-rsa,/' #{opensshserver_config}")
387
- end
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(sut, 'yum -y install yum-utils')
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(sut, 'yum -y install "https://download.simp-project.com/simp-release-community.rpm"')
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
- ONLINE = true if open('http://google.com')
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
@@ -1,5 +1,5 @@
1
1
  module Simp; end
2
2
 
3
3
  module Simp::BeakerHelpers
4
- VERSION = '1.19.4'
4
+ VERSION = '1.20.0'
5
5
  end
@@ -6,21 +6,27 @@
6
6
  end
7
7
  -%>
8
8
  HOSTS:
9
- server-el7:
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
- server-el8:
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.19.4
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-05 00:00:00.000000000 Z
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