cem_acpt 0.2.5 → 0.6.1

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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +38 -0
  3. data/Gemfile +4 -3
  4. data/Gemfile.lock +85 -56
  5. data/README.md +144 -83
  6. data/cem_acpt.gemspec +8 -7
  7. data/exe/cem_acpt +41 -7
  8. data/lib/cem_acpt/config.rb +345 -0
  9. data/lib/cem_acpt/core_extensions.rb +17 -61
  10. data/lib/cem_acpt/goss/api/action_response.rb +175 -0
  11. data/lib/cem_acpt/goss/api.rb +83 -0
  12. data/lib/cem_acpt/goss.rb +8 -0
  13. data/lib/cem_acpt/image_name_builder.rb +0 -9
  14. data/lib/cem_acpt/logging/formatter.rb +97 -0
  15. data/lib/cem_acpt/logging.rb +168 -142
  16. data/lib/cem_acpt/platform/base.rb +26 -37
  17. data/lib/cem_acpt/platform/gcp.rb +48 -62
  18. data/lib/cem_acpt/platform.rb +30 -28
  19. data/lib/cem_acpt/provision/terraform/linux.rb +47 -0
  20. data/lib/cem_acpt/provision/terraform/os_data.rb +72 -0
  21. data/lib/cem_acpt/provision/terraform/windows.rb +22 -0
  22. data/lib/cem_acpt/provision/terraform.rb +193 -0
  23. data/lib/cem_acpt/provision.rb +20 -0
  24. data/lib/cem_acpt/puppet_helpers.rb +0 -1
  25. data/lib/cem_acpt/test_data.rb +23 -13
  26. data/lib/cem_acpt/test_runner/log_formatter/goss_action_response.rb +104 -0
  27. data/lib/cem_acpt/test_runner/log_formatter.rb +10 -0
  28. data/lib/cem_acpt/test_runner.rb +170 -3
  29. data/lib/cem_acpt/utils/puppet.rb +29 -0
  30. data/lib/cem_acpt/utils/ssh.rb +197 -0
  31. data/lib/cem_acpt/utils/terminal.rb +27 -0
  32. data/lib/cem_acpt/utils.rb +4 -138
  33. data/lib/cem_acpt/version.rb +1 -1
  34. data/lib/cem_acpt.rb +70 -20
  35. data/lib/terraform/gcp/linux/goss/puppet_idempotent.yaml +10 -0
  36. data/lib/terraform/gcp/linux/goss/puppet_noop.yaml +12 -0
  37. data/lib/terraform/gcp/linux/main.tf +191 -0
  38. data/lib/terraform/gcp/linux/systemd/goss-acpt.service +8 -0
  39. data/lib/terraform/gcp/linux/systemd/goss-idempotent.service +8 -0
  40. data/lib/terraform/gcp/linux/systemd/goss-noop.service +8 -0
  41. data/lib/terraform/gcp/windows/.keep +0 -0
  42. data/sample_config.yaml +22 -21
  43. metadata +88 -56
  44. data/lib/cem_acpt/bootstrap/bootstrapper.rb +0 -206
  45. data/lib/cem_acpt/bootstrap/operating_system/rhel_family.rb +0 -129
  46. data/lib/cem_acpt/bootstrap/operating_system.rb +0 -17
  47. data/lib/cem_acpt/bootstrap.rb +0 -12
  48. data/lib/cem_acpt/context.rb +0 -153
  49. data/lib/cem_acpt/platform/base/cmd.rb +0 -71
  50. data/lib/cem_acpt/platform/gcp/cmd.rb +0 -345
  51. data/lib/cem_acpt/platform/gcp/compute.rb +0 -332
  52. data/lib/cem_acpt/platform/vmpooler.rb +0 -24
  53. data/lib/cem_acpt/rspec_utils.rb +0 -242
  54. data/lib/cem_acpt/shared_objects.rb +0 -537
  55. data/lib/cem_acpt/spec_helper_acceptance.rb +0 -184
  56. data/lib/cem_acpt/test_runner/run_handler.rb +0 -187
  57. data/lib/cem_acpt/test_runner/runner.rb +0 -210
  58. data/lib/cem_acpt/test_runner/runner_result.rb +0 -103
metadata CHANGED
@@ -1,122 +1,146 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cem_acpt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - puppetlabs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-27 00:00:00.000000000 Z
11
+ date: 2023-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: async-http
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
- - - "~>"
17
+ - - ">="
17
18
  - !ruby/object:Gem::Version
18
- version: 1.1.9
19
- name: concurrent-ruby
20
- prerelease: false
19
+ version: '0.60'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '0.70'
21
23
  type: :runtime
24
+ prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: 1.1.9
29
+ version: '0.60'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.70'
27
33
  - !ruby/object:Gem::Dependency
34
+ name: bcrypt_pbkdf
28
35
  requirement: !ruby/object:Gem::Requirement
29
36
  requirements:
30
- - - "~>"
37
+ - - ">="
31
38
  - !ruby/object:Gem::Version
32
- version: 1.2.2
33
- name: deep_merge
34
- prerelease: false
39
+ version: '1.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '2.0'
35
43
  type: :runtime
44
+ prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
47
+ - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: 1.2.2
49
+ version: '1.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '2.0'
41
53
  - !ruby/object:Gem::Dependency
54
+ name: deep_merge
42
55
  requirement: !ruby/object:Gem::Requirement
43
56
  requirements:
44
- - - "~>"
57
+ - - ">="
45
58
  - !ruby/object:Gem::Version
46
- version: 7.0.0.beta1
47
- name: net-ssh
48
- prerelease: false
59
+ version: '1.2'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
49
63
  type: :runtime
64
+ prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
- - - "~>"
67
+ - - ">="
53
68
  - !ruby/object:Gem::Version
54
- version: 7.0.0.beta1
69
+ version: '1.2'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '2.0'
55
73
  - !ruby/object:Gem::Dependency
74
+ name: ed25519
56
75
  requirement: !ruby/object:Gem::Requirement
57
76
  requirements:
58
- - - ">"
77
+ - - ">="
59
78
  - !ruby/object:Gem::Version
60
- version: 0.0.1
61
- name: puppet-modulebuilder
62
- prerelease: false
79
+ version: '1.2'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
63
83
  type: :runtime
84
+ prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
66
- - - ">"
87
+ - - ">="
67
88
  - !ruby/object:Gem::Version
68
- version: 0.0.1
89
+ version: '1.2'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '2.0'
69
93
  - !ruby/object:Gem::Dependency
94
+ name: puppet-modulebuilder
70
95
  requirement: !ruby/object:Gem::Requirement
71
96
  requirements:
72
97
  - - ">="
73
98
  - !ruby/object:Gem::Version
74
- version: '0'
75
- name: rake
76
- prerelease: false
99
+ version: 0.0.1
77
100
  type: :runtime
101
+ prerelease: false
78
102
  version_requirements: !ruby/object:Gem::Requirement
79
103
  requirements:
80
104
  - - ">="
81
105
  - !ruby/object:Gem::Version
82
- version: '0'
106
+ version: 0.0.1
83
107
  - !ruby/object:Gem::Dependency
108
+ name: ruby-terraform
84
109
  requirement: !ruby/object:Gem::Requirement
85
110
  requirements:
86
- - - ">="
111
+ - - "~>"
87
112
  - !ruby/object:Gem::Version
88
- version: '0'
89
- name: rspec
90
- prerelease: false
113
+ version: '1.7'
91
114
  type: :runtime
115
+ prerelease: false
92
116
  version_requirements: !ruby/object:Gem::Requirement
93
117
  requirements:
94
- - - ">="
118
+ - - "~>"
95
119
  - !ruby/object:Gem::Version
96
- version: '0'
120
+ version: '1.7'
97
121
  - !ruby/object:Gem::Dependency
122
+ name: pry
98
123
  requirement: !ruby/object:Gem::Requirement
99
124
  requirements:
100
125
  - - ">="
101
126
  - !ruby/object:Gem::Version
102
127
  version: '0'
103
- name: serverspec-cem-acpt
128
+ type: :development
104
129
  prerelease: false
105
- type: :runtime
106
130
  version_requirements: !ruby/object:Gem::Requirement
107
131
  requirements:
108
132
  - - ">="
109
133
  - !ruby/object:Gem::Version
110
134
  version: '0'
111
135
  - !ruby/object:Gem::Dependency
136
+ name: rubocop
112
137
  requirement: !ruby/object:Gem::Requirement
113
138
  requirements:
114
139
  - - ">="
115
140
  - !ruby/object:Gem::Version
116
141
  version: '0'
117
- name: rubocop
118
- prerelease: false
119
142
  type: :development
143
+ prerelease: false
120
144
  version_requirements: !ruby/object:Gem::Requirement
121
145
  requirements:
122
146
  - - ">="
@@ -130,6 +154,7 @@ executables:
130
154
  extensions: []
131
155
  extra_rdoc_files: []
132
156
  files:
157
+ - ".github/workflows/spec.yml"
133
158
  - ".gitignore"
134
159
  - ".rspec"
135
160
  - CODEOWNERS
@@ -142,32 +167,39 @@ files:
142
167
  - cem_acpt.gemspec
143
168
  - exe/cem_acpt
144
169
  - lib/cem_acpt.rb
145
- - lib/cem_acpt/bootstrap.rb
146
- - lib/cem_acpt/bootstrap/bootstrapper.rb
147
- - lib/cem_acpt/bootstrap/operating_system.rb
148
- - lib/cem_acpt/bootstrap/operating_system/rhel_family.rb
149
- - lib/cem_acpt/context.rb
170
+ - lib/cem_acpt/config.rb
150
171
  - lib/cem_acpt/core_extensions.rb
172
+ - lib/cem_acpt/goss.rb
173
+ - lib/cem_acpt/goss/api.rb
174
+ - lib/cem_acpt/goss/api/action_response.rb
151
175
  - lib/cem_acpt/image_name_builder.rb
152
176
  - lib/cem_acpt/logging.rb
177
+ - lib/cem_acpt/logging/formatter.rb
153
178
  - lib/cem_acpt/platform.rb
154
179
  - lib/cem_acpt/platform/base.rb
155
- - lib/cem_acpt/platform/base/cmd.rb
156
180
  - lib/cem_acpt/platform/gcp.rb
157
- - lib/cem_acpt/platform/gcp/cmd.rb
158
- - lib/cem_acpt/platform/gcp/compute.rb
159
- - lib/cem_acpt/platform/vmpooler.rb
181
+ - lib/cem_acpt/provision.rb
182
+ - lib/cem_acpt/provision/terraform.rb
183
+ - lib/cem_acpt/provision/terraform/linux.rb
184
+ - lib/cem_acpt/provision/terraform/os_data.rb
185
+ - lib/cem_acpt/provision/terraform/windows.rb
160
186
  - lib/cem_acpt/puppet_helpers.rb
161
- - lib/cem_acpt/rspec_utils.rb
162
- - lib/cem_acpt/shared_objects.rb
163
- - lib/cem_acpt/spec_helper_acceptance.rb
164
187
  - lib/cem_acpt/test_data.rb
165
188
  - lib/cem_acpt/test_runner.rb
166
- - lib/cem_acpt/test_runner/run_handler.rb
167
- - lib/cem_acpt/test_runner/runner.rb
168
- - lib/cem_acpt/test_runner/runner_result.rb
189
+ - lib/cem_acpt/test_runner/log_formatter.rb
190
+ - lib/cem_acpt/test_runner/log_formatter/goss_action_response.rb
169
191
  - lib/cem_acpt/utils.rb
192
+ - lib/cem_acpt/utils/puppet.rb
193
+ - lib/cem_acpt/utils/ssh.rb
194
+ - lib/cem_acpt/utils/terminal.rb
170
195
  - lib/cem_acpt/version.rb
196
+ - lib/terraform/gcp/linux/goss/puppet_idempotent.yaml
197
+ - lib/terraform/gcp/linux/goss/puppet_noop.yaml
198
+ - lib/terraform/gcp/linux/main.tf
199
+ - lib/terraform/gcp/linux/systemd/goss-acpt.service
200
+ - lib/terraform/gcp/linux/systemd/goss-idempotent.service
201
+ - lib/terraform/gcp/linux/systemd/goss-noop.service
202
+ - lib/terraform/gcp/windows/.keep
171
203
  - sample_config.yaml
172
204
  homepage: https://github.com/puppetlabs/cem_acpt
173
205
  licenses:
@@ -191,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
223
  - !ruby/object:Gem::Version
192
224
  version: '0'
193
225
  requirements: []
194
- rubygems_version: 3.2.29
226
+ rubygems_version: 3.4.6
195
227
  signing_key:
196
228
  specification_version: 4
197
229
  summary: CEM Acceptance Tests
@@ -1,206 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'operating_system'
4
-
5
- # Currently unused in this implementation.
6
- module CemAcpt::Bootstrap
7
- # This class runs bootstrapping commands on the VM after it
8
- # is provisioned. This can include installing repos,
9
- # installing Puppet, installing other programs,
10
- # starting services, and running other commands.
11
- class Bootstrapper
12
- STATE_ORDER = [:repo, :package, :service, :command, :complete].freeze
13
- STATE_ACTIONS = {
14
- repo: :run_repo_installs,
15
- package: :run_package_installs,
16
- service: :run_service_starts,
17
- command: :run_commands,
18
- }.freeze
19
- UNIVERSAL_DEPS = [
20
- 'git',
21
- 'curl',
22
- 'puppet-agent',
23
- ].freeze
24
- include CemAcpt::Bootstrap::OperatingSystem
25
-
26
- def initialize(instance_name, instance_image, cmd, collection: 'puppet7', repos: [], packages: [], services: [], commands: [])
27
- os, major_version = instance_image.split('-')
28
- use_os(os)
29
- @instance_name = instance_name.split('.').first
30
- @cmd_provider = cmd
31
- @collection = collection
32
- @os = os
33
- @major_version = major_version
34
- @repos = repos
35
- @packages = packages
36
- @services = services
37
- @commands = commands
38
- @logfile = '/var/log/bootstrap.log'
39
- @state = 0
40
- @retries = 0
41
- @results = {}
42
- end
43
-
44
- def ruby_version
45
- return @ruby_version if defined?(@ruby_version)
46
-
47
- @ruby_version = determine_ruby_version(@collection)
48
- @ruby_version
49
- end
50
-
51
- def repos
52
- @repos.push(puppet_agent_repo).uniq
53
- end
54
-
55
- def packages
56
- (@packages + UNIVERSAL_DEPS).uniq
57
- end
58
-
59
- def services
60
- @services.uniq
61
- end
62
-
63
- def commands
64
- @commands + ruby_install_commands
65
- end
66
-
67
- def instance_available?
68
- @instance_available ||= test_connection
69
- end
70
-
71
- def run
72
- raise 'Instance is not available' unless instance_available?
73
-
74
- @results = {}
75
- transition_state
76
- @results
77
- rescue StandardError => e
78
- return_results_with_error(e)
79
- end
80
-
81
- private
82
-
83
- def return_results_with_error(error)
84
- @results[:_error] = {
85
- error: error,
86
- details: {
87
- instance_name: @instance_name,
88
- instance_image: @instance_image,
89
- collection: @collection,
90
- os: @os,
91
- major_version: @major_version,
92
- repos: repos,
93
- packages: packages,
94
- services: services,
95
- commands: commands,
96
- state: @state,
97
- retries: @retries,
98
- },
99
- }
100
- @results
101
- end
102
-
103
- def execute_state_action
104
- state_sym = STATE_ORDER[@state]
105
- send(STATE_ACTIONS[state_sym])
106
- end
107
-
108
- def transition_state
109
- raise @last_error if @results.key?(:_error)
110
- return if @state == STATE_ORDER.length - 1
111
-
112
- begin
113
- execute_state_action
114
- rescue StandardError => e
115
- @last_error_time = Time.now
116
- @last_errored_state = @state
117
- @last_error = e
118
- handle_state_error
119
- end
120
- @state += 1
121
- transition_state
122
- end
123
-
124
- def run_repo_installs
125
- raise 'Instance is not available' unless instance_available?
126
-
127
- run_ssh_command_with_formatting(repo_install_cmd(repos), :repo_installs)
128
- end
129
-
130
- def run_package_installs
131
- raise 'Instance is not available' unless instance_available?
132
-
133
- run_ssh_command_with_formatting(package_install_cmd(packages), :package_installs)
134
- end
135
-
136
- def run_service_starts
137
- raise 'Instance is not available' unless instance_available?
138
-
139
- run_ssh_command_with_formatting(service_start_cmd(services), :service_starts)
140
- end
141
-
142
- def run_commands
143
- raise 'Instance is not available' unless instance_available?
144
-
145
- run_ssh_command_with_formatting(commands.join(';'), :command_runs)
146
- end
147
-
148
- def handle_state_error
149
- @retries = 0 unless @last_errored_state == @state
150
-
151
- raise @last_error unless @retries < 3
152
-
153
- @retries += 1
154
- @state = @last_errored_state
155
- transition_state
156
- end
157
-
158
- def run_ssh_command_with_formatting(cmd, results_key, log_file: '/tmp/puppet-bootstrap.log')
159
- key = results_key.to_sym
160
- @results[key] = {}
161
- @results[key][:started] = Time.now
162
- if cmd.nil? || cmd.empty?
163
- @results[key][:results] = 'No command(s) to run'
164
- @results[key][:finished] = Time.now
165
- return
166
- end
167
- cmd = "#{cmd} | tee -a #{log_file}"
168
- ssh_results = @cmd_provider.ssh(@instance_name, cmd)
169
- @results[key][:results] = ssh_results.gsub(%r{\s+}, ' ').split('\n')
170
- @results[key][:finished] = Time.now
171
- end
172
-
173
- def verify_command(results_key)
174
- send("verify_#{results_key}".to_sym)
175
- end
176
-
177
- def test_connection
178
- return true if @cmd_provider.ssh_ready?(@instance_name)
179
-
180
- raise "Connection test failed for #{@instance_name}"
181
- end
182
-
183
- def determine_ruby_version(collection)
184
- case collection
185
- when 'puppet7'
186
- '2.7'
187
- when 'puppet6'
188
- '2.5'
189
- else
190
- raise "Cannot determine Ruby version, unsupported collection: #{collection}"
191
- end
192
- end
193
-
194
- def ruby_install_commands
195
- [
196
- 'curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer -o rvm-installer',
197
- 'curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer.asc -o rvm-installer.asc',
198
- 'chmod +x rvm-installer',
199
- 'gpg --verify rvm-installer.asc rvm-installer && sudo ./rvm-installer',
200
- "sudo rvm install #{ruby_version} && sudo rvm use #{ruby_version} --default",
201
- 'gem install bundler',
202
- '[[ -f ./Gemfile ]] && bundle install',
203
- ]
204
- end
205
- end
206
- end
@@ -1,129 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Currently unused in this implementation.
4
- module CemAcpt::Bootstrap::OperatingSystem
5
- # This module holds methods used by Bootstrap for RHEL-family operating systems
6
- module RhelFamily
7
- def puppet_agent_repo
8
- "https://yum.puppet.com/#{@collection}-release-el-#{@major_version}.noarch.rpm"
9
- end
10
-
11
- def package_manager
12
- return 'dnf' if @major_version.to_i >= 8
13
-
14
- 'yum'
15
- end
16
-
17
- def rvm_deps
18
- [
19
- 'kernel-devel',
20
- 'gcc',
21
- 'gcc-c++',
22
- 'make',
23
- 'augeas',
24
- 'augeas-devel',
25
- 'patch',
26
- 'readline',
27
- 'readline-devel',
28
- 'zlib',
29
- 'zlib-devel',
30
- 'libffi-devel',
31
- 'openssl-devel',
32
- 'bzip2',
33
- 'autoconf',
34
- 'automake',
35
- 'libtool',
36
- 'bison',
37
- 'sqlite-devel',
38
- ]
39
- end
40
-
41
- def repo_installs(repos, sudo: true)
42
- return if repos.nil? || repos.empty?
43
-
44
- cmd = [
45
- repo_install_cmd(repos, sudo: sudo),
46
- repo_install_verify_cmd(repos, sudo: sudo),
47
- ].join(' && ')
48
- "#{cmd} | sudo tee -ai #{@log_file}"
49
- end
50
-
51
- def package_installs(packages, sudo: true)
52
- return if packages.nil? || packages.empty?
53
-
54
- packages += rvm_deps
55
- cmd = [
56
- package_install_cmd(packages, sudo: sudo),
57
- package_install_verify_cmd(packages, sudo: sudo),
58
- ].join(' && ')
59
- "#{cmd} | sudo tee -ai #{@log_file}"
60
- end
61
-
62
- def service_starts(services, sudo: true)
63
- return if services.nil? || services.empty?
64
-
65
- cmd = [
66
- #service_start_verify_existance_cmd(services, sudo: sudo),
67
- service_start_cmd(services, sudo: sudo),
68
- ].join(' && ')
69
- "#{cmd} | sudo tee -ai #{@log_file}"
70
- end
71
-
72
- def repo_install_cmd(repos, sudo: true)
73
- cmd = []
74
- cmd << 'sudo' if sudo
75
- cmd << 'rpm -Uv'
76
- repos.each { |r| cmd << r }
77
- cmd.join(' ')
78
- end
79
-
80
- def repo_install_verify_cmd(repos, sudo: true)
81
- cmd = []
82
- cmd << 'sudo' if sudo
83
- cmd << 'rpm -q'
84
- repos.each { |r| cmd << r }
85
- cmd.join(' ')
86
- end
87
-
88
- def package_install_cmd(packages, sudo: true)
89
- cmd = []
90
- cmd << 'sudo' if sudo
91
- cmd << "#{package_manager} install #{package_install_cmd_opts}"
92
- packages.each { |p| cmd << p }
93
- cmd << package_install_cmd_output_format
94
- cmd.join(' ')
95
- end
96
-
97
- def package_install_verify_cmd(packages, sudo: true)
98
- cmd = []
99
- cmd << 'sudo' if sudo
100
- cmd << "#{package_manager} list installed"
101
- packages.each { |p| cmd << p }
102
- cmd.join(' ')
103
- end
104
-
105
- def package_install_cmd_opts
106
- '-y'
107
- end
108
-
109
- def package_install_cmd_output_format
110
- '| tr "\n" "#" | sed -e \'s/# / /g\' | tr "#" "\n"'
111
- end
112
-
113
- def service_start_cmd(services, sudo: true)
114
- cmd = []
115
- cmd << 'sudo' if sudo
116
- cmd << 'systemctl start'
117
- services.each { |s| cmd << s }
118
- cmd.join(' ')
119
- end
120
-
121
- def service_start_verify_existance_cmd(services, sudo: true)
122
- cmd = []
123
- cmd << 'sudo' if sudo
124
- cmd << 'systemctl list-units --type=service'
125
- services.each { |s| cmd << s }
126
- cmd.join(' ')
127
- end
128
- end
129
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Currently unused in this implementation.
4
- module CemAcpt::Bootstrap::OperatingSystem
5
- class Error < StandardError; end
6
-
7
- # Currently unused in this implementation.
8
- def use_os(os)
9
- case os
10
- when %r{^(centos|rhel)$}
11
- require_relative 'operating_system/rhel_family'
12
- self.class.include CemAcpt::Bootstrap::OperatingSystem::RhelFamily
13
- else
14
- raise Error, "Operating system #{os} is not supported"
15
- end
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Bootstrap provides a method for bootstrapping test nodes.
4
- # Currently unused in this implementation.
5
- module CemAcpt::Bootstrap
6
- require_relative 'bootstrap/bootstrapper'
7
-
8
- def self.run(instance_name, instance_image, cmd_provider, collection: 'puppet7', repos: [], packages: [], services: [], commands: [], cmd_provider_args: {})
9
- bootstrapper = CemAcpt::Bootstrap::Bootstrapper.new(instance_name, instance_image, cmd_provider, collection: 'puppet7', repos: [], packages: [], services: [], commands: [], cmd_provider_args: {})
10
- bootstrapper.run
11
- end
12
- end