foreman_maintain 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/definitions/checks/check_hotfix_installed.rb +2 -1
- data/definitions/checks/disk/performance.rb +9 -2
- data/definitions/checks/repositories/check_non_rh_repository.rb +23 -0
- data/definitions/checks/repositories/check_upstream_repository.rb +2 -1
- data/definitions/checks/repositories/validate.rb +2 -1
- data/definitions/features/apache.rb +19 -0
- data/definitions/features/dynflow_sidekiq.rb +1 -1
- data/definitions/features/foreman_server.rb +9 -3
- data/definitions/features/puppet_server.rb +6 -2
- data/definitions/features/service.rb +10 -3
- data/definitions/procedures/hammer_setup.rb +1 -1
- data/definitions/procedures/installer/run.rb +3 -1
- data/definitions/procedures/installer/upgrade.rb +6 -1
- data/definitions/procedures/packages/update.rb +1 -1
- data/definitions/procedures/service/stop.rb +1 -1
- data/definitions/scenarios/packages.rb +36 -14
- data/definitions/scenarios/upgrade_to_capsule_6_7.rb +5 -1
- data/definitions/scenarios/upgrade_to_capsule_6_7_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_capsule_6_8.rb +5 -1
- data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_2.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_3.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_4.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_5.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_6.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_7.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_8.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +5 -1
- data/lib/foreman_maintain.rb +27 -0
- data/lib/foreman_maintain/cli/upgrade_command.rb +10 -0
- data/lib/foreman_maintain/concerns/downstream.rb +1 -2
- data/lib/foreman_maintain/package_manager/dnf.rb +11 -5
- data/lib/foreman_maintain/package_manager/yum.rb +15 -5
- data/lib/foreman_maintain/reporter/cli_reporter.rb +3 -3
- data/lib/foreman_maintain/utils/facter.rb +1 -1
- data/lib/foreman_maintain/utils/service/abstract.rb +6 -0
- data/lib/foreman_maintain/version.rb +1 -1
- metadata +4 -4
- data/definitions/checks/check_epel_repository.rb +0 -21
- data/definitions/procedures/restore/regenerate_missing_queues.rb +0 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e51a96d2df37cf98881bc81a1b67f33dca283ea34b226f2f434273984e6baa59
|
4
|
+
data.tar.gz: ad6c47b27ba7e5c2869354c0a60885e8da2158cc3b6feb04df614ccc78c395d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddd22571061620757eaa7d814c34c7c4d06801361ebba1296b5089a345ed61ac91c41fbaa97f643bb8535bf5644d5e96065dccbd66681d6b3516963462f1d940
|
7
|
+
data.tar.gz: 9f0023b28042b0f5145a7c2b60b91a8194216eeaa5936987cb91504c49a502a9dfd03c21d3d527cc7487a14a7abe2d8513dcc66a7f47454fa9f3bdc61debdb85
|
@@ -4,7 +4,8 @@ class Checks::CheckHotfixInstalled < ForemanMaintain::Check
|
|
4
4
|
description 'Check to verify if any hotfix installed on system'
|
5
5
|
tags :pre_upgrade
|
6
6
|
preparation_steps do
|
7
|
-
|
7
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
8
|
+
Procedures::Packages::Install.new(:packages => %w[yum-utils])]
|
8
9
|
end
|
9
10
|
|
10
11
|
confine do
|
@@ -3,8 +3,15 @@ module Checks
|
|
3
3
|
class Performance < ForemanMaintain::Check
|
4
4
|
metadata do
|
5
5
|
label :disk_performance
|
6
|
-
|
7
|
-
|
6
|
+
preparation_steps do
|
7
|
+
if feature(:instance).downstream
|
8
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
9
|
+
Procedures::Packages::Install.new(:packages => %w[fio])]
|
10
|
+
else
|
11
|
+
[Procedures::Packages::Install.new(:packages => %w[fio])]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
confine do
|
9
16
|
feature(:instance).pulp
|
10
17
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Checks::Repositories
|
2
|
+
class CheckNonRhRepository < ForemanMaintain::Check
|
3
|
+
metadata do
|
4
|
+
label :check_non_redhat_repository
|
5
|
+
description "Check whether system don't have any non Red Hat repositories(Eg: EPEL) enabled"
|
6
|
+
tags :pre_upgrade
|
7
|
+
confine do
|
8
|
+
feature(:instance).downstream
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def run
|
13
|
+
with_spinner('Checking repositories enabled on the system') do
|
14
|
+
assert(!epel_enabled?, 'System is subscribed to non Red Hat repositories(Eg: EPEL)')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def epel_enabled?
|
19
|
+
system_repos = execute("yum repolist enabled -d 6 -e 0| grep -E 'Repo-baseurl|Repo-id'")
|
20
|
+
system_repos.to_s.match(/\bepel\b/i)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -4,7 +4,8 @@ class Checks::CheckUpstreamRepository < ForemanMaintain::Check
|
|
4
4
|
description 'Check if any upstream repositories are enabled on system'
|
5
5
|
tags :pre_upgrade
|
6
6
|
preparation_steps do
|
7
|
-
|
7
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
8
|
+
Procedures::Packages::Install.new(:packages => %w[yum-utils])]
|
8
9
|
end
|
9
10
|
confine do
|
10
11
|
feature(:instance).downstream
|
@@ -3,7 +3,8 @@ module Checks::Repositories
|
|
3
3
|
metadata do
|
4
4
|
description 'Validate availability of repositories'
|
5
5
|
preparation_steps do
|
6
|
-
|
6
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
7
|
+
Procedures::Packages::Install.new(:packages => [ForemanMaintain::Utils::Facter.package])]
|
7
8
|
end
|
8
9
|
|
9
10
|
confine do
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Features::Apache < ForemanMaintain::Feature
|
2
|
+
metadata do
|
3
|
+
label :apache
|
4
|
+
|
5
|
+
confine do
|
6
|
+
find_package('httpd')
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def services
|
11
|
+
[
|
12
|
+
system_service('httpd', 30)
|
13
|
+
]
|
14
|
+
end
|
15
|
+
|
16
|
+
def config_files
|
17
|
+
['/etc/httpd']
|
18
|
+
end
|
19
|
+
end
|
@@ -13,7 +13,7 @@ class Features::DynflowSidekiq < ForemanMaintain::Feature
|
|
13
13
|
|
14
14
|
def config_files
|
15
15
|
# Workaround until foreman-installer can deploy scaled workers
|
16
|
-
service_symlinks =
|
16
|
+
service_symlinks = configured_instances.map do |service|
|
17
17
|
"/etc/systemd/system/multi-user.target.wants/#{service}.service"
|
18
18
|
end
|
19
19
|
[
|
@@ -9,9 +9,11 @@ module ForemanMaintain
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def services
|
12
|
-
|
13
|
-
system_service('
|
14
|
-
|
12
|
+
if execute?('systemctl is-enabled foreman')
|
13
|
+
[system_service('foreman', 30, :socket => 'foreman')]
|
14
|
+
else
|
15
|
+
[system_service('httpd', 30)]
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
19
|
def plugins
|
@@ -41,6 +43,10 @@ module ForemanMaintain
|
|
41
43
|
'/var/lib/foreman/public'
|
42
44
|
]
|
43
45
|
end
|
46
|
+
|
47
|
+
def services_running?
|
48
|
+
services.all?(&:running?)
|
49
|
+
end
|
44
50
|
end
|
45
51
|
end
|
46
52
|
end
|
@@ -29,7 +29,7 @@ class Features::PuppetServer < ForemanMaintain::Feature
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def puppet_version
|
32
|
-
version(execute!(
|
32
|
+
version(execute!("#{puppet_path} --version"))
|
33
33
|
end
|
34
34
|
|
35
35
|
def find_empty_cacert_request_files
|
@@ -56,6 +56,10 @@ class Features::PuppetServer < ForemanMaintain::Feature
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def puppet_ssldir_path
|
59
|
-
execute!(
|
59
|
+
execute!("#{puppet_path} config print ssldir")
|
60
|
+
end
|
61
|
+
|
62
|
+
def puppet_path
|
63
|
+
'/opt/puppetlabs/bin/puppet'
|
60
64
|
end
|
61
65
|
end
|
@@ -27,7 +27,7 @@ class Features::Service < ForemanMaintain::Feature
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def filtered_services(options)
|
30
|
-
service_list = existing_services
|
30
|
+
service_list = include_unregistered_services(existing_services, options[:include])
|
31
31
|
service_list = filter_services(service_list, options)
|
32
32
|
raise 'No services found matching your parameters' unless service_list.any?
|
33
33
|
|
@@ -99,9 +99,14 @@ class Features::Service < ForemanMaintain::Feature
|
|
99
99
|
%w[start stop restart status enable disable].include?(action)
|
100
100
|
end
|
101
101
|
|
102
|
-
def
|
103
|
-
service_list
|
102
|
+
def extend_service_list_with_sockets(service_list, options)
|
103
|
+
return service_list unless options[:include_sockets]
|
104
|
+
|
105
|
+
socket_list = service_list.map(&:socket).compact.select(&:exist?)
|
106
|
+
service_list + socket_list
|
107
|
+
end
|
104
108
|
|
109
|
+
def filter_services(service_list, options)
|
105
110
|
if options[:only] && options[:only].any?
|
106
111
|
service_list = service_list.select do |service|
|
107
112
|
options[:only].any? { |opt| service.matches?(opt) }
|
@@ -112,6 +117,8 @@ class Features::Service < ForemanMaintain::Feature
|
|
112
117
|
if options[:exclude] && options[:exclude].any?
|
113
118
|
service_list = service_list.reject { |service| options[:exclude].include?(service.name) }
|
114
119
|
end
|
120
|
+
|
121
|
+
service_list = extend_service_list_with_sockets(service_list, options)
|
115
122
|
service_list.sort
|
116
123
|
end
|
117
124
|
|
@@ -5,7 +5,7 @@ class Procedures::HammerSetup < ForemanMaintain::Procedure
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def run
|
8
|
-
if feature(:foreman_server) &&
|
8
|
+
if feature(:foreman_server) && feature(:foreman_server).services_running?
|
9
9
|
puts 'Configuring Hammer CLI...'
|
10
10
|
result = feature(:hammer).setup_admin_access
|
11
11
|
logger.info 'Hammer was configured successfully.' if result
|
@@ -2,10 +2,12 @@ module Procedures::Installer
|
|
2
2
|
class Run < ForemanMaintain::Procedure
|
3
3
|
metadata do
|
4
4
|
param :arguments, 'Arguments passed to installer'
|
5
|
+
param :assumeyes, 'Do not ask for confirmation'
|
5
6
|
end
|
6
7
|
|
7
8
|
def run
|
8
|
-
|
9
|
+
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
10
|
+
feature(:installer).run(@arguments, :interactive => !assumeyes_val)
|
9
11
|
end
|
10
12
|
|
11
13
|
def description
|
@@ -1,7 +1,12 @@
|
|
1
1
|
module Procedures::Installer
|
2
2
|
class Upgrade < ForemanMaintain::Procedure
|
3
|
+
metadata do
|
4
|
+
param :assumeyes, 'Do not ask for confirmation'
|
5
|
+
end
|
6
|
+
|
3
7
|
def run
|
4
|
-
|
8
|
+
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
9
|
+
feature(:installer).run(@arguments, :interactive => !assumeyes_val)
|
5
10
|
end
|
6
11
|
end
|
7
12
|
end
|
@@ -10,7 +10,7 @@ module Procedures::Packages
|
|
10
10
|
|
11
11
|
def run
|
12
12
|
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
13
|
-
package_manager.clean_cache
|
13
|
+
package_manager.clean_cache(:assumeyes => assumeyes_val)
|
14
14
|
packages_action(:update, @packages, :assumeyes => assumeyes_val)
|
15
15
|
rescue ForemanMaintain::Error::ExecutionError => e
|
16
16
|
if @warn_on_errors
|
@@ -1,5 +1,16 @@
|
|
1
1
|
module ForemanMaintain::Scenarios
|
2
2
|
module Packages
|
3
|
+
def self.skip_installer_run?(packages_list)
|
4
|
+
packages_list = packages_list.split(',').map(&:strip) if packages_list.is_a?(String)
|
5
|
+
|
6
|
+
return false unless packages_list.any? { |p| p.include?('foreman_maintain') }
|
7
|
+
return true if packages_list.length == 1
|
8
|
+
|
9
|
+
fm_pkg = ForemanMaintain.main_package_name
|
10
|
+
puts "ERROR: install or update '#{fm_pkg}' package individually."
|
11
|
+
exit 1
|
12
|
+
end
|
13
|
+
|
3
14
|
class Status < ForemanMaintain::Scenario
|
4
15
|
metadata do
|
5
16
|
label :packages_status
|
@@ -45,12 +56,17 @@ module ForemanMaintain::Scenarios
|
|
45
56
|
end
|
46
57
|
|
47
58
|
def compose
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
59
|
+
if Packages.skip_installer_run?(context.get(:packages))
|
60
|
+
add_step_with_context(Procedures::Packages::Install,
|
61
|
+
:force => true, :warn_on_errors => true)
|
62
|
+
else
|
63
|
+
add_step_with_context(Procedures::Packages::InstallerConfirmation)
|
64
|
+
add_step_with_context(Procedures::Packages::UnlockVersions)
|
65
|
+
add_step_with_context(Procedures::Packages::Install,
|
66
|
+
:force => true, :warn_on_errors => true)
|
67
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
68
|
+
add_step(Procedures::Packages::LockingStatus)
|
69
|
+
end
|
54
70
|
end
|
55
71
|
|
56
72
|
def set_context_mapping
|
@@ -70,14 +86,20 @@ module ForemanMaintain::Scenarios
|
|
70
86
|
end
|
71
87
|
|
72
88
|
def compose
|
73
|
-
|
74
|
-
Procedures::Packages::
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
89
|
+
if Packages.skip_installer_run?(context.get(:packages))
|
90
|
+
add_step_with_context(Procedures::Packages::Update,
|
91
|
+
:force => true, :warn_on_errors => true)
|
92
|
+
else
|
93
|
+
add_steps_with_context(
|
94
|
+
Procedures::Packages::UpdateAllConfirmation,
|
95
|
+
Procedures::Packages::InstallerConfirmation,
|
96
|
+
Procedures::Packages::UnlockVersions
|
97
|
+
)
|
98
|
+
add_step_with_context(Procedures::Packages::Update,
|
99
|
+
:force => true, :warn_on_errors => true)
|
100
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
101
|
+
add_step(Procedures::Packages::LockingStatus)
|
102
|
+
end
|
81
103
|
end
|
82
104
|
|
83
105
|
def set_context_mapping
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_7
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_7_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_8
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_8_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_2
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.2'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_2_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.2'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -50,11 +50,15 @@ module Scenarios::Satellite_6_3
|
|
50
50
|
tags :migrations
|
51
51
|
end
|
52
52
|
|
53
|
+
def set_context_mapping
|
54
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
55
|
+
end
|
56
|
+
|
53
57
|
def compose
|
54
58
|
add_step(Procedures::Repositories::Setup.new(:version => '6.3'))
|
55
59
|
add_step(Procedures::Packages::UnlockVersions.new)
|
56
60
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
57
|
-
|
61
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_3_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.3'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -50,11 +50,15 @@ module Scenarios::Satellite_6_4
|
|
50
50
|
tags :migrations
|
51
51
|
end
|
52
52
|
|
53
|
+
def set_context_mapping
|
54
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
55
|
+
end
|
56
|
+
|
53
57
|
def compose
|
54
58
|
add_step(Procedures::Repositories::Setup.new(:version => '6.4'))
|
55
59
|
add_step(Procedures::Packages::UnlockVersions.new)
|
56
60
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
57
|
-
|
61
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_4_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.4'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_5
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.5'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_5_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.5'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_6
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.6'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_6_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.6'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_7
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_7_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_8
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_8_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
data/lib/foreman_maintain.rb
CHANGED
@@ -143,5 +143,32 @@ module ForemanMaintain
|
|
143
143
|
def upgrade_in_progress
|
144
144
|
storage[:upgrade_target_version]
|
145
145
|
end
|
146
|
+
|
147
|
+
def pkg_and_cmd_name
|
148
|
+
instance_feature = ForemanMaintain.available_features(:label => :instance).first
|
149
|
+
if instance_feature.downstream
|
150
|
+
return %w[satellite-maintain satellite-maintain]
|
151
|
+
end
|
152
|
+
|
153
|
+
[main_package_name, 'foreman-maintain']
|
154
|
+
end
|
155
|
+
|
156
|
+
def perform_self_upgrade
|
157
|
+
package_name, command = pkg_and_cmd_name
|
158
|
+
|
159
|
+
puts "Checking for new version of #{package_name}..."
|
160
|
+
if ForemanMaintain.package_manager.update_available?(main_package_name)
|
161
|
+
puts "\nUpdating #{package_name} package."
|
162
|
+
ForemanMaintain.package_manager.update(main_package_name, :assumeyes => true)
|
163
|
+
puts "\nThe #{package_name} package successfully updated."\
|
164
|
+
"\nRe-run #{command} with required options!"
|
165
|
+
exit 0
|
166
|
+
end
|
167
|
+
puts "Nothing to update, can't find new version of #{package_name}."
|
168
|
+
end
|
169
|
+
|
170
|
+
def main_package_name
|
171
|
+
'rubygem-foreman_maintain'
|
172
|
+
end
|
146
173
|
end
|
147
174
|
end
|
@@ -6,6 +6,11 @@ module ForemanMaintain
|
|
6
6
|
:required => false
|
7
7
|
end
|
8
8
|
|
9
|
+
def self.disable_self_upgrade_option
|
10
|
+
option '--disable-self-upgrade', :flag, 'Disable automatic self upgrade',
|
11
|
+
:default => false
|
12
|
+
end
|
13
|
+
|
9
14
|
def current_target_version
|
10
15
|
current_target_version = ForemanMaintain::UpgradeRunner.current_target_version
|
11
16
|
if current_target_version && target_version && target_version != current_target_version
|
@@ -56,8 +61,10 @@ module ForemanMaintain
|
|
56
61
|
subcommand 'check', 'Run pre-upgrade checks before upgrading to specified version' do
|
57
62
|
target_version_option
|
58
63
|
interactive_option
|
64
|
+
disable_self_upgrade_option
|
59
65
|
|
60
66
|
def execute
|
67
|
+
ForemanMaintain.perform_self_upgrade unless disable_self_upgrade?
|
61
68
|
upgrade_runner.run_phase(:pre_upgrade_checks)
|
62
69
|
exit upgrade_runner.exit_code
|
63
70
|
end
|
@@ -66,6 +73,8 @@ module ForemanMaintain
|
|
66
73
|
subcommand 'run', 'Run full upgrade to a specified version' do
|
67
74
|
target_version_option
|
68
75
|
interactive_option
|
76
|
+
disable_self_upgrade_option
|
77
|
+
|
69
78
|
option '--phase', 'phase', 'run only a specific phase', :required => false do |phase|
|
70
79
|
unless UpgradeRunner::PHASES.include?(phase.to_sym)
|
71
80
|
raise Error::UsageError, "Unknown phase #{phase}"
|
@@ -74,6 +83,7 @@ module ForemanMaintain
|
|
74
83
|
end
|
75
84
|
|
76
85
|
def execute
|
86
|
+
ForemanMaintain.perform_self_upgrade unless disable_self_upgrade?
|
77
87
|
if phase
|
78
88
|
upgrade_runner.run_phase(phase.to_sym)
|
79
89
|
else
|
@@ -87,8 +87,7 @@ module ForemanMaintain
|
|
87
87
|
else
|
88
88
|
"rhel-#{rh_version_major}-server-#{package_name}-#{full_version}-rpms"
|
89
89
|
end
|
90
|
-
|
91
|
-
if current_minor_version == '6.3' && server_version.to_s != '6.4' && (
|
90
|
+
if current_minor_version == '6.3' && full_version.to_s != '6.4' && (
|
92
91
|
feature(:puppet_server) && feature(:puppet_server).puppet_version.major == 4)
|
93
92
|
# TODO: confirm repo for capsule. It might be same repo
|
94
93
|
repos << "rhel-#{rh_version_major}-server-satellite-tools-6.3-puppet4-rpms"
|
@@ -1,17 +1,23 @@
|
|
1
1
|
module ForemanMaintain::PackageManager
|
2
2
|
class Dnf < Yum
|
3
|
-
def clean_cache
|
4
|
-
dnf_action('clean', 'all')
|
3
|
+
def clean_cache(assumeyes: false)
|
4
|
+
dnf_action('clean', 'all', :assumeyes => assumeyes)
|
5
5
|
super
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
9
9
|
|
10
|
-
def dnf_action(action, packages, assumeyes: false)
|
10
|
+
def dnf_action(action, packages, with_status: false, assumeyes: false)
|
11
11
|
yum_options = []
|
12
12
|
yum_options << '-y' if assumeyes
|
13
|
-
|
14
|
-
|
13
|
+
if with_status
|
14
|
+
sys.execute_with_status("dnf #{yum_options.join(' ')} #{action} #{packages.join(' ')}",
|
15
|
+
:interactive => !assumeyes)
|
16
|
+
else
|
17
|
+
sys.execute!("dnf #{yum_options.join(' ')} #{action} #{packages.join(' ')}",
|
18
|
+
:interactive => !assumeyes)
|
19
|
+
|
20
|
+
end
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
@@ -57,8 +57,13 @@ module ForemanMaintain::PackageManager
|
|
57
57
|
yum_action('update', packages, :assumeyes => assumeyes)
|
58
58
|
end
|
59
59
|
|
60
|
-
def clean_cache
|
61
|
-
yum_action('clean', 'all')
|
60
|
+
def clean_cache(assumeyes: false)
|
61
|
+
yum_action('clean', 'all', :assumeyes => assumeyes)
|
62
|
+
end
|
63
|
+
|
64
|
+
def update_available?(package)
|
65
|
+
cmd_output = yum_action('check-update -q', package, :with_status => true, :assumeyes => false)
|
66
|
+
cmd_output[0] == 100
|
62
67
|
end
|
63
68
|
|
64
69
|
def files_not_owned_by_package(directory)
|
@@ -96,14 +101,19 @@ module ForemanMaintain::PackageManager
|
|
96
101
|
File.open(protector_config_file, 'w') { |file| file.puts config }
|
97
102
|
end
|
98
103
|
|
99
|
-
def yum_action(action, packages, assumeyes: false)
|
104
|
+
def yum_action(action, packages, with_status: false, assumeyes: false)
|
100
105
|
yum_options = []
|
101
106
|
packages = [packages].flatten(1)
|
102
107
|
yum_options << '-y' if assumeyes
|
103
108
|
yum_options_s = yum_options.empty? ? '' : ' ' + yum_options.join(' ')
|
104
109
|
packages_s = packages.empty? ? '' : ' ' + packages.join(' ')
|
105
|
-
|
106
|
-
|
110
|
+
if with_status
|
111
|
+
sys.execute_with_status("yum#{yum_options_s} #{action}#{packages_s}",
|
112
|
+
:interactive => !assumeyes)
|
113
|
+
else
|
114
|
+
sys.execute!("yum#{yum_options_s} #{action}#{packages_s}",
|
115
|
+
:interactive => !assumeyes)
|
116
|
+
end
|
107
117
|
end
|
108
118
|
|
109
119
|
def install_extras(src, dest, override: false)
|
@@ -16,7 +16,6 @@ module ForemanMaintain
|
|
16
16
|
@spinner_chars = %w[| / - \\]
|
17
17
|
@current_line = ''
|
18
18
|
@puts_needed = false
|
19
|
-
start_spinner
|
20
19
|
end
|
21
20
|
|
22
21
|
def update(line)
|
@@ -42,8 +41,6 @@ module ForemanMaintain
|
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
45
|
-
private
|
46
|
-
|
47
44
|
def start_spinner
|
48
45
|
@thread = Thread.new do
|
49
46
|
loop do
|
@@ -53,6 +50,8 @@ module ForemanMaintain
|
|
53
50
|
end
|
54
51
|
end
|
55
52
|
|
53
|
+
private
|
54
|
+
|
56
55
|
def spin
|
57
56
|
@mutex.synchronize do
|
58
57
|
return unless @active
|
@@ -80,6 +79,7 @@ module ForemanMaintain
|
|
80
79
|
@line_char = '-'
|
81
80
|
@cell_char = '|'
|
82
81
|
@spinner = Spinner.new(self)
|
82
|
+
@spinner.start_spinner if @stdout.tty?
|
83
83
|
@last_line = ''
|
84
84
|
end
|
85
85
|
|
@@ -5,7 +5,7 @@ module ForemanMaintain::Utils
|
|
5
5
|
FACTER_FILES = %w[/usr/bin/facter /opt/puppetlabs/bin/facter].freeze
|
6
6
|
|
7
7
|
def self.package
|
8
|
-
puppet_version = version(execute!('puppet --version'))
|
8
|
+
puppet_version = version(execute!('/opt/puppetlabs/bin/puppet --version'))
|
9
9
|
|
10
10
|
puppet_version.major >= 4 ? 'puppet-agent' : 'facter'
|
11
11
|
end
|
@@ -10,6 +10,12 @@ module ForemanMaintain::Utils
|
|
10
10
|
@options = options
|
11
11
|
end
|
12
12
|
|
13
|
+
def socket
|
14
|
+
if @options[:socket]
|
15
|
+
self.class.new("#{@options[:socket]}.socket", priority)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
13
19
|
def <=>(other)
|
14
20
|
prio_cmp = @priority <=> other.priority
|
15
21
|
prio_cmp == 0 ? @name <=> other.name : prio_cmp
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_maintain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Nečas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clamp
|
@@ -122,7 +122,6 @@ files:
|
|
122
122
|
- definitions/checks/backup/directory_ready.rb
|
123
123
|
- definitions/checks/candlepin/db_up.rb
|
124
124
|
- definitions/checks/candlepin/validate_db.rb
|
125
|
-
- definitions/checks/check_epel_repository.rb
|
126
125
|
- definitions/checks/check_hotfix_installed.rb
|
127
126
|
- definitions/checks/check_tmout.rb
|
128
127
|
- definitions/checks/disk/available_space.rb
|
@@ -148,6 +147,7 @@ files:
|
|
148
147
|
- definitions/checks/puppet/provide_upgrade_guide.rb
|
149
148
|
- definitions/checks/puppet/verify_no_empty_cacert_requests.rb
|
150
149
|
- definitions/checks/remote_execution/verify_settings_file_already_exists.rb
|
150
|
+
- definitions/checks/repositories/check_non_rh_repository.rb
|
151
151
|
- definitions/checks/repositories/check_upstream_repository.rb
|
152
152
|
- definitions/checks/repositories/validate.rb
|
153
153
|
- definitions/checks/restore/validate_backup.rb
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- definitions/checks/system_registration.rb
|
159
159
|
- definitions/checks/version_locking_enabled.rb
|
160
160
|
- definitions/checks/yum_exclude.rb
|
161
|
+
- definitions/features/apache.rb
|
161
162
|
- definitions/features/candlepin.rb
|
162
163
|
- definitions/features/candlepin_database.rb
|
163
164
|
- definitions/features/capsule.rb
|
@@ -264,7 +265,6 @@ files:
|
|
264
265
|
- definitions/procedures/restore/pg_global_objects.rb
|
265
266
|
- definitions/procedures/restore/postgres_owner.rb
|
266
267
|
- definitions/procedures/restore/pulpcore_dump.rb
|
267
|
-
- definitions/procedures/restore/regenerate_missing_queues.rb
|
268
268
|
- definitions/procedures/selinux/set_file_security.rb
|
269
269
|
- definitions/procedures/service/base.rb
|
270
270
|
- definitions/procedures/service/daemon_reload.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
class Checks::CheckEpelRepository < ForemanMaintain::Check
|
2
|
-
metadata do
|
3
|
-
label :check_epel_repository
|
4
|
-
description 'Check if EPEL repository enabled on system'
|
5
|
-
tags :pre_upgrade
|
6
|
-
confine do
|
7
|
-
feature(:instance).downstream
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def run
|
12
|
-
with_spinner('Checking for presence of EPEL repository') do
|
13
|
-
assert(!epel_enabled?, 'System is subscribed to EPEL repository')
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def epel_enabled?
|
18
|
-
system_repos = execute("yum repolist enabled -d 6 -e 0| grep -E 'Repo-baseurl|Repo-id'")
|
19
|
-
system_repos.to_s.match(/\bepel\b/i)
|
20
|
-
end
|
21
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
module Procedures::Restore
|
2
|
-
class RegenerateMissingQueues < ForemanMaintain::Procedure
|
3
|
-
|
4
|
-
metadata do
|
5
|
-
description 'Regenrate queues'
|
6
|
-
|
7
|
-
param :handle_services,
|
8
|
-
'Stop and start services if required',
|
9
|
-
:flag => true,
|
10
|
-
:default => false
|
11
|
-
end
|
12
|
-
|
13
|
-
def hostname
|
14
|
-
execute('hostname -f')
|
15
|
-
end
|
16
|
-
|
17
|
-
def ssl_cert
|
18
|
-
"/etc/pki/katello/certs/#{hostanme}-qpid-broker.crt"
|
19
|
-
end
|
20
|
-
|
21
|
-
def ssl_key
|
22
|
-
"/etc/pki/katello/private/#{hostanme}-qpid-broker.key"
|
23
|
-
end
|
24
|
-
|
25
|
-
def amqps_url
|
26
|
-
'amqps://localhost:5671'
|
27
|
-
end
|
28
|
-
|
29
|
-
def run
|
30
|
-
with_spinner('Resetting the queues') do |spinner|
|
31
|
-
reset_queues
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def reset_queues
|
36
|
-
execute!('rm -rf /var/lib/qpidd/.qpidd/qls')
|
37
|
-
Procedures::Service::Start(:only => 'qpidd')
|
38
|
-
puts "Sleeping for 60 seconds for qpid to start fully"
|
39
|
-
sleep 60
|
40
|
-
|
41
|
-
puts "Recreating infrastructure queues.."
|
42
|
-
execute!("qpid-config --ssl-certificate #{ssl_cert} --ssl-key #{ssl_key} -b #{amqps_url} add exchange topic event --durable")
|
43
|
-
execute!("qpid-config --ssl-certificate #{ssl_cert} --ssl-key #{ssl_key} -b #{amqps_url} add queue katello_event_queue --durable")
|
44
|
-
%w[compliance.created entitlement.created entitlement.deleted pool.created pool.deleted].each do |key|
|
45
|
-
execute!("qpid-config --ssl-certificate #{ssl_cert} --ssl-key #{ssl_key} -b #{amqps_url} bind event katello_event_queue #{key}")
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|