capistrano-unicorn-nginx 1.0.0 → 1.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +3 -3
- data/lib/capistrano/dsl/nginx_paths.rb +53 -0
- data/lib/capistrano/dsl/unicorn_paths.rb +31 -0
- data/lib/capistrano/tasks/nginx.rake +19 -20
- data/lib/capistrano/tasks/unicorn.rake +23 -20
- data/lib/capistrano/unicorn_nginx/helpers.rb +4 -0
- data/lib/capistrano/unicorn_nginx/version.rb +1 -1
- data/lib/capistrano/unicorn_nginx.rb +1 -0
- data/lib/generators/capistrano/unicorn_nginx/templates/nginx_conf.erb +4 -4
- data/lib/generators/capistrano/unicorn_nginx/templates/unicorn.rb.erb +2 -2
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e038ef42790b2e2e9fdbc34f37ac6d4b44e1f4b
|
4
|
+
data.tar.gz: 7180b47e77e78edc458a79911acc901df9a95a6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f39f6cbd00235af5642493388123b78b084499076f8ca23f00ab2b08a0279211cc0a3ade952375fda65c74ec4bb8066dc09921e0b3f2ed847d41d7dd559c659f
|
7
|
+
data.tar.gz: 89ede75ee9776a58a9f0749764b888e04baea723e0b9174a804ec0a26e8f504b1674d02ff562dc09ba21c04ebd9b25fbfa1ade6fa2b180d0ef30fab8e034daed
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -115,15 +115,15 @@ This file will be copied to remote server. Example value:
|
|
115
115
|
|
116
116
|
Defaults are listed near option name in the first line.
|
117
117
|
|
118
|
+
- `set :unicorn_service, "unicorn_#{fetch(:application)}_#{fetch(:stage)}`<br/>
|
119
|
+
Unicorn service name is `unicorn_myapp_production` by default.
|
120
|
+
|
118
121
|
- `set :unicorn_pid, shared_path.join("tmp/pids/unicorn.pid")`<br/>
|
119
122
|
Path for unicorn process pid file.
|
120
123
|
|
121
124
|
- `set :unicorn_config, shared_path.join("config/unicorn.rb")`<br/>
|
122
125
|
Path for unicorn config file.
|
123
126
|
|
124
|
-
- `set :unicorn_log, shared_path.join("log/unicorn.log")`<br/>
|
125
|
-
Unicorn log path.
|
126
|
-
|
127
127
|
- `set :unicorn_workers, 2`<br/>
|
128
128
|
Number of unicorn workers.
|
129
129
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Capistrano
|
2
|
+
module DSL
|
3
|
+
module NginxPaths
|
4
|
+
|
5
|
+
def nginx_config_tmp_file
|
6
|
+
"#{fetch(:tmp_dir)}/#{fetch(:nginx_config_name)}"
|
7
|
+
end
|
8
|
+
|
9
|
+
def nginx_sites_available_file
|
10
|
+
"/etc/nginx/sites-available/#{fetch(:nginx_config_name)}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def nginx_sites_enabled_file
|
14
|
+
"/etc/nginx/sites-enabled/#{fetch(:nginx_config_name)}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def nginx_service_path
|
18
|
+
'/etc/init.d/nginx'
|
19
|
+
end
|
20
|
+
|
21
|
+
def nginx_default_pid_file
|
22
|
+
'/run/nginx.pid'
|
23
|
+
end
|
24
|
+
|
25
|
+
# ssl related files
|
26
|
+
def nginx_default_ssl_cert_file_name
|
27
|
+
"#{fetch(:nginx_server_name)}.crt"
|
28
|
+
end
|
29
|
+
|
30
|
+
def nginx_default_ssl_cert_key_file_name
|
31
|
+
"#{fetch(:nginx_server_name)}.key"
|
32
|
+
end
|
33
|
+
|
34
|
+
def nginx_ssl_cert_file
|
35
|
+
"/etc/ssl/certs/#{fetch(:nginx_ssl_cert)}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def nginx_ssl_cert_key_file
|
39
|
+
"/etc/ssl/private/#{fetch(:nginx_ssl_cert_key)}"
|
40
|
+
end
|
41
|
+
|
42
|
+
# log files
|
43
|
+
def nginx_access_log_file
|
44
|
+
shared_path.join('log/nginx.access.log')
|
45
|
+
end
|
46
|
+
|
47
|
+
def nginx_error_log_file
|
48
|
+
shared_path.join('log/nginx.error.log')
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Capistrano
|
2
|
+
module DSL
|
3
|
+
module UnicornPaths
|
4
|
+
|
5
|
+
def unicorn_initd_tmp_file
|
6
|
+
"#{fetch(:tmp_dir)}/#{fetch(:unicorn_service)}"
|
7
|
+
end
|
8
|
+
|
9
|
+
def unicorn_initd_file
|
10
|
+
"/etc/init.d/#{fetch(:unicorn_service)}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def unicorn_default_config_file
|
14
|
+
shared_path.join('config/unicorn.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
def unicorn_default_pid_file
|
18
|
+
shared_path.join('tmp/pids/unicorn.pid')
|
19
|
+
end
|
20
|
+
|
21
|
+
def unicorn_log_file
|
22
|
+
shared_path.join('log/unicorn.stdout.log')
|
23
|
+
end
|
24
|
+
|
25
|
+
def unicorn_error_log_file
|
26
|
+
shared_path.join('log/unicorn.stderr.log')
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,20 +1,24 @@
|
|
1
|
+
require 'capistrano/dsl/nginx_paths'
|
1
2
|
require 'capistrano/unicorn_nginx/helpers'
|
2
3
|
|
3
4
|
include Capistrano::UnicornNginx::Helpers
|
5
|
+
include Capistrano::DSL::NginxPaths
|
4
6
|
|
5
7
|
namespace :load do
|
6
8
|
task :defaults do
|
7
9
|
set :templates_path, 'config/deploy/templates'
|
8
10
|
set :nginx_config_name, -> { "#{fetch(:application)}_#{fetch(:stage)}" }
|
9
|
-
set :nginx_pid,
|
11
|
+
set :nginx_pid, nginx_default_pid_file
|
10
12
|
# set :nginx_server_name # default set in the `nginx:defaults` task
|
11
13
|
# ssl options
|
12
14
|
set :nginx_use_ssl, false
|
13
|
-
set :nginx_ssl_cert, -> {
|
14
|
-
set :nginx_ssl_cert_key, -> {
|
15
|
+
set :nginx_ssl_cert, -> { nginx_default_ssl_cert_file_name }
|
16
|
+
set :nginx_ssl_cert_key, -> { nginx_default_ssl_cert_key_file_name }
|
15
17
|
set :nginx_upload_local_cert, true
|
16
18
|
set :nginx_ssl_cert_local_path, -> { ask(:nginx_ssl_cert_local_path, 'Local path to ssl certificate: ') }
|
17
19
|
set :nginx_ssl_cert_key_local_path, -> { ask(:nginx_ssl_cert_key_local_path, 'Local path to ssl certificate key: ') }
|
20
|
+
|
21
|
+
set :linked_dirs, fetch(:linked_dirs, []).push('log')
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
@@ -29,42 +33,37 @@ namespace :nginx do
|
|
29
33
|
desc 'Setup nginx configuration'
|
30
34
|
task :setup do
|
31
35
|
on roles :web do
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
template 'nginx_conf.erb', "#{fetch(:tmp_dir)}/#{config_name}"
|
37
|
-
sudo :mv, "#{fetch(:tmp_dir)}/#{config_name}", "/etc/nginx/sites-available/#{config_name}"
|
38
|
-
sudo :ln, '-fs', "/etc/nginx/sites-available/#{config_name}", "/etc/nginx/sites-enabled/#{config_name}"
|
36
|
+
next if file_exists? nginx_sites_available_file
|
37
|
+
template 'nginx_conf.erb', nginx_config_tmp_file
|
38
|
+
sudo :mv, nginx_config_tmp_file, nginx_sites_available_file
|
39
|
+
sudo :ln, '-fs', nginx_sites_available_file, nginx_sites_enabled_file
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
42
43
|
desc 'Setup nginx ssl certs'
|
43
44
|
task :setup_ssl do
|
45
|
+
next unless fetch(:nginx_use_ssl)
|
44
46
|
on roles :web do
|
45
|
-
next
|
46
|
-
next if file_exists?("/etc/ssl/certs/#{fetch(:nginx_ssl_cert)}") && file_exists?("/etc/ssl/private/#{fetch(:nginx_ssl_cert_key)}")
|
47
|
-
|
47
|
+
next if file_exists?(nginx_ssl_cert_file) && file_exists?(nginx_ssl_cert_key_file)
|
48
48
|
if fetch(:nginx_upload_local_cert)
|
49
|
-
upload! fetch(:nginx_ssl_cert_local_path),
|
50
|
-
upload! fetch(:nginx_ssl_cert_key_local_path),
|
51
|
-
sudo :mv, "#{fetch(:tmp_dir)}/#{fetch(:nginx_ssl_cert)}", "/etc/ssl/certs/#{fetch(:nginx_ssl_cert)}"
|
52
|
-
sudo :mv, "#{fetch(:tmp_dir)}/#{fetch(:nginx_ssl_cert_key)}", "/etc/ssl/private/#{fetch(:nginx_ssl_cert_key)}"
|
49
|
+
upload! fetch(:nginx_ssl_cert_local_path), nginx_ssl_cert_file
|
50
|
+
upload! fetch(:nginx_ssl_cert_key_local_path), nginx_ssl_cert_key_file
|
53
51
|
end
|
54
|
-
sudo :chown, 'root:root',
|
55
|
-
sudo :chown, 'root:root',
|
52
|
+
sudo :chown, 'root:root', nginx_ssl_cert_file
|
53
|
+
sudo :chown, 'root:root', nginx_ssl_cert_key_file
|
56
54
|
end
|
57
55
|
end
|
58
56
|
|
59
57
|
desc 'Reload nginx configuration'
|
60
58
|
task :reload do
|
61
59
|
on roles :web do
|
62
|
-
sudo '
|
60
|
+
sudo nginx_service_path, 'reload'
|
63
61
|
end
|
64
62
|
end
|
65
63
|
|
66
64
|
before :setup, :defaults
|
67
65
|
before :setup_ssl, :defaults
|
66
|
+
|
68
67
|
end
|
69
68
|
|
70
69
|
namespace :deploy do
|
@@ -1,34 +1,38 @@
|
|
1
|
+
require 'capistrano/dsl/unicorn_paths'
|
1
2
|
require 'capistrano/unicorn_nginx/helpers'
|
2
3
|
|
3
4
|
include Capistrano::UnicornNginx::Helpers
|
5
|
+
include Capistrano::DSL::UnicornPaths
|
4
6
|
|
5
7
|
namespace :load do
|
6
8
|
task :defaults do
|
7
|
-
set :
|
8
|
-
set :templates_path,
|
9
|
-
set :unicorn_pid, -> {
|
10
|
-
set :unicorn_config, -> {
|
11
|
-
set :unicorn_log, -> { shared_path.join("log/unicorn.log") }
|
12
|
-
set :unicorn_user, nil # user is set by executing `id -un` on the server
|
9
|
+
set :unicorn_service, -> { "unicorn_#{fetch(:application)}_#{fetch(:stage)}" }
|
10
|
+
set :templates_path, 'config/deploy/templates'
|
11
|
+
set :unicorn_pid, -> { unicorn_default_pid_file }
|
12
|
+
set :unicorn_config, -> { unicorn_default_config_file }
|
13
13
|
set :unicorn_workers, 2
|
14
|
+
# set :unicorn_user # default set in `unicorn:defaults` task
|
14
15
|
|
15
16
|
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids')
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
19
20
|
namespace :unicorn do
|
21
|
+
|
22
|
+
task :defaults do
|
23
|
+
on roles :app do
|
24
|
+
set :unicorn_user, fetch(:unicorn_user, deploy_user)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
20
28
|
desc 'Setup Unicorn initializer'
|
21
29
|
task :setup_initializer do
|
22
30
|
on roles :app do
|
23
|
-
next if file_exists?
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
template 'unicorn_init.erb', init_tmp
|
29
|
-
execute :chmod, "+x", init_tmp
|
30
|
-
sudo :mv, init_tmp, "/etc/init.d/#{fetch(:unicorn_service_name)}"
|
31
|
-
sudo 'update-rc.d', '-f', fetch(:unicorn_service_name), 'defaults'
|
31
|
+
next if file_exists? unicorn_initd_file
|
32
|
+
template 'unicorn_init.erb', unicorn_initd_tmp_file
|
33
|
+
execute :chmod, '+x', unicorn_initd_tmp_file
|
34
|
+
sudo :mv, unicorn_initd_tmp_file, unicorn_initd_file
|
35
|
+
sudo 'update-rc.d', '-f', fetch(:unicorn_service), 'defaults'
|
32
36
|
end
|
33
37
|
end
|
34
38
|
|
@@ -36,10 +40,6 @@ namespace :unicorn do
|
|
36
40
|
task :setup_app_config do
|
37
41
|
on roles :app do
|
38
42
|
next if file_exists? fetch(:unicorn_config)
|
39
|
-
|
40
|
-
execute :mkdir, '-p', shared_path.join('config')
|
41
|
-
execute :mkdir, '-p', shared_path.join('log')
|
42
|
-
execute :mkdir, '-p', shared_path.join('tmp/pids')
|
43
43
|
template 'unicorn.rb.erb', fetch(:unicorn_config)
|
44
44
|
end
|
45
45
|
end
|
@@ -48,10 +48,13 @@ namespace :unicorn do
|
|
48
48
|
desc "#{command} unicorn"
|
49
49
|
task command do
|
50
50
|
on roles :app do
|
51
|
-
execute :service, fetch(:
|
51
|
+
execute :service, fetch(:unicorn_service), command
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
55
|
+
|
56
|
+
before :setup_initializer, :defaults
|
57
|
+
|
55
58
|
end
|
56
59
|
|
57
60
|
namespace :deploy do
|
@@ -13,8 +13,8 @@ server {
|
|
13
13
|
<% if fetch(:nginx_use_ssl) %>
|
14
14
|
listen 443;
|
15
15
|
ssl on;
|
16
|
-
ssl_certificate
|
17
|
-
ssl_certificate_key
|
16
|
+
ssl_certificate <%= nginx_ssl_cert_file %>;
|
17
|
+
ssl_certificate_key <%= nginx_ssl_cert_key_file %>;
|
18
18
|
<% else %>
|
19
19
|
listen 80;
|
20
20
|
<% end %>
|
@@ -38,8 +38,8 @@ server {
|
|
38
38
|
<% end %>
|
39
39
|
proxy_pass http://unicorn_<%= fetch(:nginx_config_name) %>;
|
40
40
|
# limit_req zone=one;
|
41
|
-
access_log <%=
|
42
|
-
error_log <%=
|
41
|
+
access_log <%= nginx_access_log_file %>;
|
42
|
+
error_log <%= nginx_error_log_file %>;
|
43
43
|
}
|
44
44
|
|
45
45
|
location ^~ /assets/ {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
working_directory "<%= current_path %>"
|
2
2
|
pid "<%= fetch(:unicorn_pid) %>"
|
3
|
-
|
4
|
-
|
3
|
+
stdout_path "<%= unicorn_log_file %>"
|
4
|
+
stderr_path "<%= unicorn_error_log_file %>"
|
5
5
|
|
6
6
|
listen "/tmp/unicorn.<%= fetch(:nginx_config_name) %>.sock"
|
7
7
|
worker_processes <%= fetch(:unicorn_workers) %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-unicorn-nginx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno Sutic
|
@@ -72,6 +72,8 @@ files:
|
|
72
72
|
- Rakefile
|
73
73
|
- capistrano-unicorn-nginx.gemspec
|
74
74
|
- lib/capistrano-unicorn-nginx.rb
|
75
|
+
- lib/capistrano/dsl/nginx_paths.rb
|
76
|
+
- lib/capistrano/dsl/unicorn_paths.rb
|
75
77
|
- lib/capistrano/tasks/nginx.rake
|
76
78
|
- lib/capistrano/tasks/unicorn.rake
|
77
79
|
- lib/capistrano/unicorn_nginx.rb
|