capistrano-sidekiq-systemd 0.1.0 → 0.2.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecdeef1273903466bfbf2b1c8adaf58c9185f4f120c9da54ce7bd5759c5e9c6f
|
4
|
+
data.tar.gz: 7f87a9b25213435c5e4fc12ebe94a7cd6d28cb08a858072dd3cd9ccc631e089f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d05a25aebe6bd814a0f1087e458b53ec89c2acdc864a7e31351c2ff9ec097f4663c847be0f0ec5b00b7690218f09c5c21fd03204dc2bb391056a14f3ca7d59e
|
7
|
+
data.tar.gz: 77a2ca2fd421f5c918f4f6d43347ca42fc4348efbcc8d5e18caedbdff4edcac375ef92c67b76bb03ce8d564ae3adbf82264461f640afade90d656c558693003d
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -36,6 +36,7 @@ set :sidekiq_options_per_process, nil
|
|
36
36
|
set :sidekiq_user, nil
|
37
37
|
set :sidekiq_max_mem, nil
|
38
38
|
set :service_unit_name, "sidekiq-#{fetch(:stage)}.service"
|
39
|
+
set :sidekiq_service_unit_user => :user # :system
|
39
40
|
# Rbenv, Chruby, and RVM integration
|
40
41
|
set :rbenv_map_bins, fetch(:rbenv_map_bins).to_a.concat(%w[sidekiq])
|
41
42
|
set :rvm_map_bins, fetch(:rvm_map_bins).to_a.concat(%w[sidekiq])
|
@@ -7,6 +7,9 @@ namespace :load do
|
|
7
7
|
set :sidekiq_user, nil
|
8
8
|
set :sidekiq_max_mem, nil
|
9
9
|
set :service_unit_name, "sidekiq-#{fetch(:stage)}.service"
|
10
|
+
set :sidekiq_service_unit_user, :user
|
11
|
+
set :sidekiq_log, nil
|
12
|
+
set :sidekiq_error_log, nil
|
10
13
|
# Rbenv, Chruby, and RVM integration
|
11
14
|
set :rbenv_map_bins, fetch(:rbenv_map_bins).to_a.concat(%w[sidekiq])
|
12
15
|
set :rvm_map_bins, fetch(:rvm_map_bins).to_a.concat(%w[sidekiq])
|
@@ -42,7 +45,7 @@ namespace :sidekiq do
|
|
42
45
|
on roles fetch(:sidekiq_roles) do |role|
|
43
46
|
switch_user(role) do
|
44
47
|
sidekiq_options_per_process.each_index do |index|
|
45
|
-
|
48
|
+
systemctl(command: 'reload', service_unit_name: service_unit_name(index), raise_on_non_zero_exit: false)
|
46
49
|
end
|
47
50
|
end
|
48
51
|
end
|
@@ -53,7 +56,7 @@ namespace :sidekiq do
|
|
53
56
|
on roles fetch(:sidekiq_roles) do |role|
|
54
57
|
switch_user(role) do
|
55
58
|
sidekiq_options_per_process.each_index do |index|
|
56
|
-
|
59
|
+
systemctl(command: 'stop', service_unit_name: service_unit_name(index))
|
57
60
|
end
|
58
61
|
end
|
59
62
|
end
|
@@ -64,7 +67,7 @@ namespace :sidekiq do
|
|
64
67
|
on roles fetch(:sidekiq_roles) do |role|
|
65
68
|
switch_user(role) do
|
66
69
|
sidekiq_options_per_process.each_index do |index|
|
67
|
-
|
70
|
+
systemctl(command: 'start', service_unit_name: service_unit_name(index))
|
68
71
|
end
|
69
72
|
end
|
70
73
|
end
|
@@ -82,7 +85,7 @@ namespace :sidekiq do
|
|
82
85
|
switch_user(role) do
|
83
86
|
create_systemd_template(role)
|
84
87
|
sidekiq_options_per_process.each_index do |index|
|
85
|
-
|
88
|
+
systemctl(command: 'enable', service_unit_name: service_unit_name(index))
|
86
89
|
end
|
87
90
|
end
|
88
91
|
end
|
@@ -93,8 +96,8 @@ namespace :sidekiq do
|
|
93
96
|
on roles fetch(:sidekiq_roles) do |role|
|
94
97
|
switch_user(role) do
|
95
98
|
sidekiq_options_per_process.each_index do |index|
|
96
|
-
|
97
|
-
execute :rm, File.join(fetch(:service_unit_path,
|
99
|
+
systemctl(command: 'disable', service_unit_name: service_unit_name(index))
|
100
|
+
execute :rm, File.join(fetch(:service_unit_path, fetch_systemd_unit_path(capture(:pwd))), service_unit_name(index))
|
98
101
|
end
|
99
102
|
end
|
100
103
|
end
|
@@ -103,13 +106,17 @@ namespace :sidekiq do
|
|
103
106
|
def create_systemd_template(role)
|
104
107
|
template = File.read(File.expand_path('../../../../generators/capistrano/sidekiq/systemd/templates/sidekiq.service.capistrano.erb', __FILE__))
|
105
108
|
home_dir = capture :pwd
|
106
|
-
systemd_path = fetch(:service_unit_path,
|
109
|
+
systemd_path = fetch(:service_unit_path, fetch_systemd_unit_path(home_dir))
|
107
110
|
sidekiq_cmd = SSHKit.config.command_map[:sidekiq].gsub('~', home_dir)
|
108
|
-
|
111
|
+
if fetch(:sidekiq_service_unit_user) == :user
|
112
|
+
execute :mkdir, "-p", systemd_path
|
113
|
+
end
|
109
114
|
sidekiq_options_per_process.each_index do |index|
|
110
|
-
|
115
|
+
upload_template(data: StringIO.new(ERB.new(template).result(binding)),
|
116
|
+
systemd_path: systemd_path, service_unit_name: service_unit_name(index)
|
117
|
+
)
|
111
118
|
end
|
112
|
-
|
119
|
+
systemctl(command: 'daemon-reload')
|
113
120
|
end
|
114
121
|
|
115
122
|
def process_options(index = 0)
|
@@ -183,6 +190,33 @@ namespace :sidekiq do
|
|
183
190
|
end
|
184
191
|
end
|
185
192
|
|
193
|
+
def systemctl(command:, service_unit_name: nil, raise_on_non_zero_exit: true)
|
194
|
+
if fetch(:sidekiq_service_unit_user) == :user
|
195
|
+
execute :systemctl, "--user", command, service_unit_name, raise_on_non_zero_exit: raise_on_non_zero_exit
|
196
|
+
elsif fetch(:sidekiq_service_unit_user) == :system
|
197
|
+
execute :sudo, :systemctl, command, service_unit_name, raise_on_non_zero_exit: raise_on_non_zero_exit
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def fetch_systemd_unit_path(home_dir)
|
202
|
+
if fetch(:sidekiq_service_unit_user) == :user
|
203
|
+
File.join(home_dir, ".config", "systemd", "user")
|
204
|
+
elsif fetch(:sidekiq_service_unit_user) == :system
|
205
|
+
File.join("/", "etc", "systemd", "system")
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
def upload_template(data:, systemd_path:, service_unit_name:)
|
210
|
+
temp_file_path = File.join('/', 'tmp', "#{service_unit_name}")
|
211
|
+
upload!(data, temp_file_path)
|
212
|
+
if fetch(:sidekiq_service_unit_user) == :system
|
213
|
+
execute :sudo, :mv, temp_file_path, File.join(systemd_path, service_unit_name)
|
214
|
+
else
|
215
|
+
execute :mv, temp_file_path, File.join(systemd_path, service_unit_name)
|
216
|
+
end
|
217
|
+
systemctl(command: 'daemon-reload')
|
218
|
+
end
|
219
|
+
|
186
220
|
def multiple_processes?
|
187
221
|
fetch(:sidekiq_options_per_process) && fetch(:sidekiq_options_per_process).size > 1
|
188
222
|
end
|
@@ -9,6 +9,9 @@ WorkingDirectory=<%= fetch(:deploy_to) %>/current
|
|
9
9
|
ExecStart=<%= sidekiq_cmd %> <%= process_options(index) %>
|
10
10
|
ExecReload=/bin/kill -TSTP $MAINPID
|
11
11
|
ExecStop=/bin/kill -TERM $MAINPID
|
12
|
+
<%="StandardOutput=append:#{fetch(:sidekiq_log)}" if fetch(:sidekiq_log) %>
|
13
|
+
<%="StandardError=append:#{fetch(:sidekiq_error_log)}" if fetch(:sidekiq_error_log) %>
|
14
|
+
<%="User=#{sidekiq_user(role)}" if sidekiq_user(role) %>
|
12
15
|
<%= "MemoryAccounting=#{ !!max_mem(index) }" if max_mem(index) %>
|
13
16
|
<%= "MemoryLimit=#{ max_mem(index) }" if max_mem(index) %>
|
14
17
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-sidekiq-systemd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- spilin
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -57,7 +57,7 @@ metadata:
|
|
57
57
|
homepage_uri: https://github.com/spilin/capistrano-sidekiq-systemd
|
58
58
|
source_code_uri: https://github.com/spilin/capistrano-sidekiq-systemd
|
59
59
|
changelog_uri: https://github.com/spilin/capistrano-sidekiq-systemd/CHANGELOG.md
|
60
|
-
post_install_message:
|
60
|
+
post_install_message:
|
61
61
|
rdoc_options: []
|
62
62
|
require_paths:
|
63
63
|
- lib
|
@@ -72,8 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: '0'
|
74
74
|
requirements: []
|
75
|
-
rubygems_version: 3.
|
76
|
-
signing_key:
|
75
|
+
rubygems_version: 3.2.15
|
76
|
+
signing_key:
|
77
77
|
specification_version: 4
|
78
78
|
summary: Capistrano sidekiq systemd support
|
79
79
|
test_files: []
|