capistrano-monit_runit 3.0.4 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -1
- data/README.md +3 -8
- data/VERSION +1 -1
- data/capistrano-monit_runit.gemspec +6 -7
- data/lib/capistrano/tasks/base.rake +0 -7
- data/lib/capistrano/tasks/monit.rake +0 -79
- data/lib/capistrano/tasks/runit.rake +0 -37
- metadata +4 -5
- data/templates/monit/monitrc.erb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bcd6203961b40ae0cfa713bbc3105332cd2cb85
|
4
|
+
data.tar.gz: 9d6427177068ae51e113421e032a556588926da5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4aedb53a0a200122e3447408d00b915f388511d103fd102b14b258095cb4ca4b50fc90534dca94e3153ffbed329c24545216b7f91f1c0c1e5bd65e278ad30970
|
7
|
+
data.tar.gz: fefc7a15721f86db524240560e565f7ed42b181fb7d8409ff5b24fd21727d61dc3187cf7a5e283d9b1cc30b54a54890e320ee8b7d6f5e12276f080ad010b17d3
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -30,14 +30,10 @@ require 'capistrano/runit'
|
|
30
30
|
|
31
31
|
## Sudoing
|
32
32
|
|
33
|
-
|
33
|
+
You should setup sudoers to allow control over monit and runit from the deployment user in either Salt, puppet, chef or
|
34
|
+
other form for infrastructure setup
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
```
|
38
|
-
cap production runit:sudoers
|
39
|
-
cap production monit:sudoers
|
40
|
-
```
|
36
|
+
The cap tasks for creating a sudoers list has been deprecated, as it does not belong to deployment of an app
|
41
37
|
|
42
38
|
## Services for Monit and Runit
|
43
39
|
|
@@ -143,4 +139,3 @@ The following variables must be set
|
|
143
139
|
## Copyright
|
144
140
|
|
145
141
|
(c) 2013-2015 Leif Ringstad. See LICENSE.txt for details
|
146
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0
|
1
|
+
3.1.0
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: capistrano-monit_runit 3.0
|
5
|
+
# stub: capistrano-monit_runit 3.1.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "capistrano-monit_runit"
|
9
|
-
s.version = "3.0
|
9
|
+
s.version = "3.1.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Leif Ringstad"]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2016-03-17"
|
15
15
|
s.description = "Helpers for capistrano recipes using runit/monit."
|
16
16
|
s.email = "leifcr@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -40,7 +40,6 @@ Gem::Specification.new do |s|
|
|
40
40
|
"lib/capistrano/tasks/monit.rake",
|
41
41
|
"lib/capistrano/tasks/runit.rake",
|
42
42
|
"templates/monit/app_include.conf.erb",
|
43
|
-
"templates/monit/monitrc.erb",
|
44
43
|
"templates/runit/finish.erb",
|
45
44
|
"templates/runit/log_run.erb",
|
46
45
|
"templates/runit/run.erb"
|
@@ -55,18 +54,18 @@ Gem::Specification.new do |s|
|
|
55
54
|
|
56
55
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
57
56
|
s.add_runtime_dependency(%q<capistrano>, ["~> 3.4"])
|
58
|
-
s.add_runtime_dependency(%q<activesupport>, [">=
|
57
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 4.0"])
|
59
58
|
s.add_development_dependency(%q<bundler>, ["~> 1.7"])
|
60
59
|
s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
|
61
60
|
else
|
62
61
|
s.add_dependency(%q<capistrano>, ["~> 3.4"])
|
63
|
-
s.add_dependency(%q<activesupport>, [">=
|
62
|
+
s.add_dependency(%q<activesupport>, [">= 4.0"])
|
64
63
|
s.add_dependency(%q<bundler>, ["~> 1.7"])
|
65
64
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
66
65
|
end
|
67
66
|
else
|
68
67
|
s.add_dependency(%q<capistrano>, ["~> 3.4"])
|
69
|
-
s.add_dependency(%q<activesupport>, [">=
|
68
|
+
s.add_dependency(%q<activesupport>, [">= 4.0"])
|
70
69
|
s.add_dependency(%q<bundler>, ["~> 1.7"])
|
71
70
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
72
71
|
end
|
@@ -4,10 +4,3 @@ namespace :load do
|
|
4
4
|
set :sockets_path, proc { shared_path.join('sockets') }
|
5
5
|
end
|
6
6
|
end
|
7
|
-
|
8
|
-
desc 'Get a list over Sudoers entries to add to a file in sudoers.d'
|
9
|
-
task :sudoers do
|
10
|
-
run_locally do
|
11
|
-
info '--- Copy the information below into a a file in sudoers.d ---'
|
12
|
-
end
|
13
|
-
end
|
@@ -24,19 +24,6 @@ namespace :load do
|
|
24
24
|
set :monit_enabled_path, proc { File.join(fetch(:monit_dir), 'enabled') }
|
25
25
|
set :monit_application_group_name, proc { user_app_env_underscore }
|
26
26
|
|
27
|
-
set :monit_mailserver, 'localhost'
|
28
|
-
set :monit_mail_sender, 'monit@$HOST'
|
29
|
-
set :monit_mail_reciever, nil # if this is nil, alerts are disabled
|
30
|
-
set :monit_use_httpd, 'true'
|
31
|
-
set :monit_httpd_bind_address, 'localhost'
|
32
|
-
set :monit_httpd_allow_address, 'localhost'
|
33
|
-
set :monit_httpd_signature, 'enable' # or enable
|
34
|
-
set :monit_httpd_port, '2812'
|
35
|
-
|
36
|
-
set :monit_daemon_time, '30'
|
37
|
-
set :monit_start_delay, '30'
|
38
|
-
|
39
|
-
set :monit_monitrc_template, File.join(File.expand_path(File.join(File.dirname(__FILE__), '../../../templates', 'monit')), 'monitrc.erb') # rubocop:disable Metrics/LineLength:
|
40
27
|
set :monit_application_conf_template, File.join(File.expand_path(File.join(File.dirname(__FILE__), '../../../templates', 'monit')), 'app_include.conf.erb') # rubocop:disable Metrics/LineLength:
|
41
28
|
|
42
29
|
set :monit_application_conf_file, proc { File.join(fetch(:monit_dir), 'monit.conf') }
|
@@ -46,29 +33,6 @@ namespace :load do
|
|
46
33
|
end
|
47
34
|
|
48
35
|
namespace :monit do
|
49
|
-
desc 'Get the config needed to add to sudoers'
|
50
|
-
task :sudoers do
|
51
|
-
run_locally do
|
52
|
-
puts '# -----------------------------------------------------------------------------------------'
|
53
|
-
puts "# Sudo monit entries for #{fetch(:application)}"
|
54
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 0700 #{monit_monitrc_file}"
|
55
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 0775 #{monit_etc_path}"
|
56
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 0700 #{monit_etc_path}"
|
57
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/mkdir -p #{monit_etc_conf_d_path}"
|
58
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 6775 #{monit_etc_conf_d_path}"
|
59
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown #{fetch(:user)}\\:root #{monit_etc_path}"
|
60
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown #{fetch(:user)}\\:root #{monit_etc_conf_d_path}"
|
61
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown #{fetch(:user)}\\:root #{monit_monitrc_file}"
|
62
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown root\\:root #{monit_monitrc_file}"
|
63
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown deploy\\:deploy #{monit_monitrc_file}"
|
64
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /usr/bin/monit *"
|
65
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /usr/sbin/service monit *"
|
66
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/mkdir -p #{fetch(:monit_event_dir)}"
|
67
|
-
puts '# -----------------------------------------------------------------------------------------'
|
68
|
-
end
|
69
|
-
# info "#{fetch(:user)} ALL=NOPASSWD: /bin/chown deploy:root #{monit_monitrc_file}"
|
70
|
-
end
|
71
|
-
|
72
36
|
desc 'Setup monit for the application'
|
73
37
|
task :setup do
|
74
38
|
on roles(:app) do |host|
|
@@ -83,42 +47,11 @@ namespace :monit do
|
|
83
47
|
execute :mkdir, "-p #{fetch(:monit_enabled_path)}"
|
84
48
|
end
|
85
49
|
|
86
|
-
if test("[ ! -d #{monit_etc_conf_d_path} ]")
|
87
|
-
execute :sudo, :mkdir, "-p #{monit_etc_conf_d_path}"
|
88
|
-
end
|
89
|
-
execute :sudo, :chmod, "6775 #{monit_etc_conf_d_path}"
|
90
|
-
execute :sudo, :chown, "#{fetch(:user)}:root #{monit_etc_conf_d_path}"
|
91
|
-
|
92
50
|
# Upload application global monit include file
|
93
51
|
upload! template_to_s_io(fetch(:monit_application_conf_template)), fetch(:monit_application_conf_file)
|
94
52
|
end
|
95
53
|
end
|
96
54
|
|
97
|
-
desc 'Setup main monit config file (/etc/monit/monitrc)'
|
98
|
-
task :main_config do
|
99
|
-
on roles(:app) do |host|
|
100
|
-
set :createmonitrc, ask("Create #{monit_monitrc_file} [Y/n]", 'Y')
|
101
|
-
if fetch(:createmonitrc) == 'Y'
|
102
|
-
info "MONIT: Creating #{monit_monitrc_file} on #{host}"
|
103
|
-
execute :sudo, :chown, "#{fetch(:user)}:root #{monit_etc_path}"
|
104
|
-
execute :sudo, :chmod, "0775 #{monit_etc_path}"
|
105
|
-
execute :sudo, :chown, "#{fetch(:user)}:root #{monit_monitrc_file}"
|
106
|
-
if test("[ -e #{monit_monitrc_file} ]")
|
107
|
-
execute :sudo, :chown, "deploy:deploy #{monit_monitrc_file}"
|
108
|
-
execute :rm, "-f #{monit_monitrc_file}"
|
109
|
-
end
|
110
|
-
|
111
|
-
upload! template_to_s_io(fetch(:monit_monitrc_template)), monit_monitrc_file
|
112
|
-
execute :sudo, :chmod, "0700 #{monit_monitrc_file}"
|
113
|
-
execute :sudo, :chown, "root:root #{monit_monitrc_file}"
|
114
|
-
execute :sudo, :service, 'monit restart'
|
115
|
-
execute :sudo, :mkdir, "-p #{fetch(:monit_event_dir)}"
|
116
|
-
info "MONIT: Sleeping for #{fetch(:monit_start_delay).to_i} seconds to wait for monit to be ready"
|
117
|
-
sleep(fetch(:monit_start_delay).to_i)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
55
|
desc 'Enable monit services for application'
|
123
56
|
task :enable do
|
124
57
|
on roles(:app) do |host|
|
@@ -225,21 +158,9 @@ namespace :monit do
|
|
225
158
|
end
|
226
159
|
end
|
227
160
|
|
228
|
-
# after 'deploy:update', 'monit:enable'
|
229
|
-
# after 'deploy:setup', 'monit:setup'
|
230
|
-
before 'monit:setup', 'monit:main_config'
|
231
|
-
# after 'monit:setup', 'monit:enable'
|
232
161
|
after 'monit:enable', 'monit:reload'
|
233
162
|
|
234
|
-
# This should be done in the app, as the sequence of restarting services can be specific
|
235
|
-
# must trigger monitor after deploy
|
236
|
-
# after 'deploy', 'monit:monitor'
|
237
|
-
# must trigger unmonitor before deploy
|
238
|
-
# before 'deploy', 'monit:unmonitor'
|
239
|
-
|
240
163
|
before 'monit:disable', 'monit:unmonitor'
|
241
164
|
after 'monit:disable', 'monit:reload'
|
242
165
|
|
243
166
|
before 'monit:purge', 'monit:unmonitor'
|
244
|
-
|
245
|
-
after 'sudoers', 'monit:sudoers'
|
@@ -32,27 +32,6 @@ namespace :load do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
namespace :runit do
|
35
|
-
desc 'Get the config needed to add to sudoers for all commands'
|
36
|
-
task :sudoers do
|
37
|
-
run_locally do
|
38
|
-
puts '# -----------------------------------------------------------------------------------------'
|
39
|
-
puts "# Sudo runit entries for #{fetch(:application)}"
|
40
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/mkdir -p #{runit_user_base_path}"
|
41
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown #{fetch(:user)}\\:root #{runit_user_base_path}"
|
42
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 6775 #{runit_user_base_path}"
|
43
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/mkdir -p #{runit_etc_service_path}"
|
44
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown #{fetch(:user)}\\:root #{runit_etc_service_path}"
|
45
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 6775 #{runit_etc_service_path}"
|
46
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/mkdir -p #{runit_var_log_service_path}"
|
47
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown #{fetch(:user)}\\:root #{runit_var_log_service_path}"
|
48
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chown -R #{fetch(:user)}\\:#{fetch(:runit_log_group)} #{runit_var_log_service_path}" # rubocop:disable Metrics/LineLength:
|
49
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /bin/chmod 6775 #{runit_var_log_service_path}"
|
50
|
-
puts "#{fetch(:user)} ALL=NOPASSWD: /usr/bin/sv *"
|
51
|
-
puts '# -----------------------------------------------------------------------------------------'
|
52
|
-
end
|
53
|
-
# info "#{fetch(:user)} ALL=NOPASSWD: /bin/chown deploy:root #{monit_monitrc_file}"
|
54
|
-
end
|
55
|
-
|
56
35
|
desc 'Setup runit for the application'
|
57
36
|
task :setup do
|
58
37
|
on roles(:app) do |host|
|
@@ -70,15 +49,6 @@ namespace :runit do
|
|
70
49
|
# '[INTERNAL] create /etc/sv folders and upload base templates needed'
|
71
50
|
task :runit_create_app_services do
|
72
51
|
on roles(:app) do |host|
|
73
|
-
# set :pw, ask("Sudo password", '')
|
74
|
-
# execute :echo, "#{fetch(:pw)} | sudo -S ls /"
|
75
|
-
execute :sudo, :mkdir, "-p '#{runit_user_base_path}'" if test("[ ! -d '#{runit_user_base_path}' ]")
|
76
|
-
execute :sudo, :chown, "#{fetch(:user)}:root '#{runit_user_base_path}'"
|
77
|
-
execute :sudo, :chmod, "6775 '#{runit_user_base_path}'"
|
78
|
-
|
79
|
-
execute :sudo, :mkdir, "-p '#{runit_etc_service_path}'" if test("[ ! -d '#{runit_etc_service_path}' ]")
|
80
|
-
execute :sudo, :chown, "#{fetch(:user)}:root '#{runit_etc_service_path}'"
|
81
|
-
execute :sudo, :chmod, "6775 '#{runit_etc_service_path}'"
|
82
52
|
within("#{runit_user_base_path}") do
|
83
53
|
execute :mkdir, "-p #{app_env_folder}"
|
84
54
|
end
|
@@ -86,7 +56,6 @@ namespace :runit do
|
|
86
56
|
upload! template_to_s_io(fetch(:runit_run_template)), runit_run_file
|
87
57
|
upload! template_to_s_io(fetch(:runit_finish_template)), runit_finish_file
|
88
58
|
|
89
|
-
# Should now work without sudo... ?
|
90
59
|
execute :chmod, "0775 '#{runit_run_file}'"
|
91
60
|
execute :chmod, "0775 '#{runit_finish_file}'"
|
92
61
|
info "RUNIT: Created inital runit services in #{runit_base_path} for #{fetch(:application)} on #{host}"
|
@@ -100,11 +69,6 @@ namespace :runit do
|
|
100
69
|
execute :mkdir, '-p log'
|
101
70
|
end
|
102
71
|
upload! template_to_s_io(fetch(:runit_log_run_template)), runit_log_run_file
|
103
|
-
if test("[ ! -d #{runit_var_log_service_path} ]")
|
104
|
-
execute :sudo, :mkdir, "-p '#{runit_var_log_service_path}'"
|
105
|
-
execute :sudo, :chmod, "6775 '#{runit_var_log_service_path}'"
|
106
|
-
execute :sudo, :chown, "-R #{fetch(:user)}:#{fetch(:runit_log_group)} '#{runit_var_log_service_path}'" # rubocop:disable Metrics/LineLength:
|
107
|
-
end
|
108
72
|
execute :mkdir, "-p #{runit_var_log_service_runit_path}" if test("[ ! -d #{runit_var_log_service_runit_path} ]")
|
109
73
|
execute :chmod, "775 '#{runit_log_run_file}'"
|
110
74
|
|
@@ -171,4 +135,3 @@ after 'deploy:updated', 'runit:enable'
|
|
171
135
|
after 'runit:setup', 'runit:setup:runit_create_app_services'
|
172
136
|
after 'runit:setup:runit_create_app_services', 'runit:setup:runit_create_app_log_services'
|
173
137
|
after 'runit:setup:runit_create_app_services', 'runit:setup:runit_ensure_shared_sockets_and_pids_folders'
|
174
|
-
after 'sudoers', 'runit:sudoers'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-monit_runit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leif Ringstad
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '4.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '4.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,7 +95,6 @@ files:
|
|
95
95
|
- lib/capistrano/tasks/monit.rake
|
96
96
|
- lib/capistrano/tasks/runit.rake
|
97
97
|
- templates/monit/app_include.conf.erb
|
98
|
-
- templates/monit/monitrc.erb
|
99
98
|
- templates/runit/finish.erb
|
100
99
|
- templates/runit/log_run.erb
|
101
100
|
- templates/runit/run.erb
|
data/templates/monit/monitrc.erb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
set daemon <%= fetch(:monit_daemon_time) %>
|
2
|
-
with start delay <%= fetch(:monit_start_delay) %>
|
3
|
-
|
4
|
-
set logfile syslog facility log_daemon
|
5
|
-
|
6
|
-
set statefile /var/lib/monit/state
|
7
|
-
|
8
|
-
set idfile /var/lib/monit/id
|
9
|
-
|
10
|
-
set eventqueue
|
11
|
-
basedir <%= fetch(:monit_event_dir) %> # set the base directory where events will be stored
|
12
|
-
slots 100 # optionaly limit the queue size
|
13
|
-
|
14
|
-
<%= fetch(:mail_alert_settings) %>
|
15
|
-
|
16
|
-
<% unless fetch(:monit_use_httpd) == "false" %>
|
17
|
-
set httpd port <%= fetch(:monit_httpd_port) %>
|
18
|
-
<%= "use address #{fetch(:monit_httpd_bind_address, "localhost")}" unless fetch(:monit_httpd_bind_address).nil? %>
|
19
|
-
<%= "allow #{fetch(:monit_httpd_allow_address)}" unless fetch(:monit_httpd_allow_address).nil? %>
|
20
|
-
<%= "signature #{fetch(:monit_httpd_signature)}" %>
|
21
|
-
<% end %>
|
22
|
-
|
23
|
-
include /etc/monit/conf.d/*.conf
|