cap-uwsgi 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/Gemfile.lock +4 -2
- data/Readme.md +7 -1
- data/cap-uwsgi.gemspec +3 -3
- data/doc/conf/rack.ini +7 -0
- data/doc/conf/rails.ini +14 -0
- data/doc/conf/sinatra.ini +7 -0
- data/doc/options.md +17 -0
- data/doc/upstart.md +22 -0
- data/lib/capistrano/tasks/emperor.cap +7 -0
- data/lib/capistrano/tasks/nginx.cap +11 -0
- data/lib/capistrano/tasks/uwsgi.cap +1 -1
- data/lib/capistrano/templates/uwsgi.ini.skel.erb +0 -0
- data/lib/capistrano/uwsgi/version.rb +1 -1
- data/sh/init-emperor +44 -0
- data/sh/install +10 -0
- metadata +25 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39ea83fc246f65843555078382ec2d67ddd1fd95
|
4
|
+
data.tar.gz: 611f9c4fd160c8c157692b1c206ea5c1db4acaaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87174c18969c5a9ae0d1468a06cfa6ad778fd651b366b28960f71eb2853efd5e79582a89ab527df7cbbf0e68aec6c3837d23eaab80f24bc8514f5c259d3a797c
|
7
|
+
data.tar.gz: ddea541a9271e9097e67d37b02fb22bc3f247796583cff75ac3f09607bad5bf38d59f663f0e077d4e05ff2c4c8892acb9567378e12c95b93a3cac63808261be4
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
|
4
|
+
cap-uwsgi (0.0.1)
|
5
5
|
capistrano (~> 3.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -11,6 +11,7 @@ GEM
|
|
11
11
|
i18n
|
12
12
|
rake (>= 10.0.0)
|
13
13
|
sshkit (~> 1.3)
|
14
|
+
gem-release (0.7.1)
|
14
15
|
i18n (0.6.9)
|
15
16
|
net-scp (1.1.2)
|
16
17
|
net-ssh (>= 2.6.5)
|
@@ -28,4 +29,5 @@ PLATFORMS
|
|
28
29
|
ruby
|
29
30
|
|
30
31
|
DEPENDENCIES
|
31
|
-
|
32
|
+
cap-uwsgi!
|
33
|
+
gem-release
|
data/Readme.md
CHANGED
@@ -4,7 +4,13 @@
|
|
4
4
|
|
5
5
|
gem 'cap-uwsgi'
|
6
6
|
|
7
|
+
### Workflow
|
8
|
+
|
9
|
+
* cap _stage uwsgi:emperor:setup #firstly once
|
10
|
+
* cap _stage deploy #all is running
|
11
|
+
|
7
12
|
### Ref
|
8
13
|
|
9
|
-
* https://github.com/cao7113/
|
14
|
+
* https://github.com/cao7113/railslab
|
10
15
|
* capistrano-puma
|
16
|
+
* web: http://uwsgi-docs.readthedocs.org/en/latest/tutorials/GraphiteAndMetrics.html
|
data/cap-uwsgi.gemspec
CHANGED
@@ -10,12 +10,12 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ['cao7113@hotmail.com']
|
11
11
|
spec.description = %q{uWSGI integration for Capistrano 3}
|
12
12
|
spec.summary = %q{uWSGI integration for Capistrano 3}
|
13
|
-
spec.homepage = 'http://
|
13
|
+
spec.homepage = 'http://github.com/cao7113/cap-uwsgi'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
|
-
spec.files = `git ls-files`.split($/)
|
16
|
+
spec.files = `git ls-files --exclude doc`.split($/)
|
17
17
|
spec.require_paths = ['lib']
|
18
18
|
|
19
19
|
spec.add_dependency 'capistrano', '~> 3.0'
|
20
|
-
|
20
|
+
spec.add_development_dependency 'gem-release'
|
21
21
|
end
|
data/doc/conf/rack.ini
ADDED
data/doc/conf/rails.ini
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
[uwsgi]
|
2
|
+
#socket = 127.0.0.1:3081
|
3
|
+
socket = /tmp/railsup.sock
|
4
|
+
#socket = :8090
|
5
|
+
#http = :3081
|
6
|
+
rack = config.ru
|
7
|
+
master = true
|
8
|
+
#processes = 2
|
9
|
+
# starting from 4.0, Rails support multiple threads(only for ruby2.0)
|
10
|
+
#rbthreads = 4
|
11
|
+
# lazy-apps = true
|
12
|
+
chdir = /home/cao/dev/railsup
|
13
|
+
env = RAILS_ENV=production
|
14
|
+
chmod-socket = 666
|
data/doc/options.md
ADDED
data/doc/upstart.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Ref: http://uwsgi-docs.readthedocs.org/en/latest/Upstart.html
|
2
|
+
|
3
|
+
## About --die-on-term
|
4
|
+
|
5
|
+
By default uWSGI maps the SIGTERM signal to 'a brutal reload procedure'
|
6
|
+
|
7
|
+
However, Upstart uses SIGTERM to completely shutdown processes. die-on-term inverts the meanings of SIGTERM and SIGQUIT to uWSGI.
|
8
|
+
|
9
|
+
|
10
|
+
## Socket activation(Ubuntu12.04+)
|
11
|
+
|
12
|
+
let processes start when connections are made to specific sockets.
|
13
|
+
|
14
|
+
So can use this feature to start uWSGI only when a client(or the webserver) first connects to it.
|
15
|
+
|
16
|
+
# simple uWSGI script
|
17
|
+
|
18
|
+
description "uwsgi tiny instance"
|
19
|
+
start on socket PROTO=inet PORT=3031
|
20
|
+
stop on runlevel [06]
|
21
|
+
|
22
|
+
exec uwsgi --master --processes 4 --die-on-term --wsgi-file /var/www/myapp.wsgi
|
@@ -61,6 +61,12 @@ namespace :uwsgi do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
desc 'Setup this app into to emperor'
|
65
|
+
task :setup do
|
66
|
+
invoke "uwsgi:emperor:add"
|
67
|
+
invoke "uwsgi:nginx:setup"
|
68
|
+
end
|
69
|
+
|
64
70
|
desc 'Add current project to the emperor'
|
65
71
|
task :add do
|
66
72
|
on roles(fetch(:uwsgi_role)), in: :sequence, wait: 1 do |role|
|
@@ -74,6 +80,7 @@ namespace :uwsgi do
|
|
74
80
|
on roles(fetch(:uwsgi_role)) do
|
75
81
|
sudo "rm -f '#{emperor_app_conf}'"
|
76
82
|
end
|
83
|
+
invoke "uwsgi:nginx:deconf"
|
77
84
|
end
|
78
85
|
|
79
86
|
desc 'Touch current project for reload'
|
@@ -6,12 +6,22 @@ end
|
|
6
6
|
|
7
7
|
namespace :uwsgi do
|
8
8
|
namespace :nginx do
|
9
|
+
|
10
|
+
desc "Setup nginx for this app"
|
11
|
+
task :setup do
|
12
|
+
invoke "uwsgi:nginx:conf"
|
13
|
+
on roles(fetch(:uwsgi_role)) do |role|
|
14
|
+
sudo "service nginx reload"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
9
18
|
desc 'Config uwsgi nginx service'
|
10
19
|
task :conf do
|
11
20
|
on roles(fetch(:uwsgi_role)) do |role|
|
12
21
|
@role = role
|
13
22
|
template_uwsgi 'uwsgi_nginx.conf', "#{fetch(:tmp_dir)}/nginx.conf", @role
|
14
23
|
sudo "mv -b #{fetch(:tmp_dir)}/nginx.conf #{uwsgi_nginx_app_conf}"
|
24
|
+
#sudo "service nginx reload"
|
15
25
|
end
|
16
26
|
end
|
17
27
|
|
@@ -20,6 +30,7 @@ namespace :uwsgi do
|
|
20
30
|
on roles(fetch(:uwsgi_role)) do |role|
|
21
31
|
@role = role
|
22
32
|
sudo "rm -f #{uwsgi_nginx_app_conf}"
|
33
|
+
sudo "service nginx reload"
|
23
34
|
end
|
24
35
|
end
|
25
36
|
|
File without changes
|
data/sh/init-emperor
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#Usage: [APP_USER=xxx] [CONF_DIR=xxx] $0
|
3
|
+
|
4
|
+
set -e
|
5
|
+
|
6
|
+
app_user=${APP_USER:-$USER}
|
7
|
+
|
8
|
+
root_dir=$(dirname $0)
|
9
|
+
PATH=$root_dir:$PATH install
|
10
|
+
|
11
|
+
#mk conf dir
|
12
|
+
conf_dir=${CONF_DIR:-/etc/uwsgi}
|
13
|
+
if [ -d $conf_dir ];then
|
14
|
+
echo Has found $conf_dir
|
15
|
+
else
|
16
|
+
sudo mkdir $conf_dir
|
17
|
+
sudo chown -R $app_user:$app_user $conf_dir
|
18
|
+
echo Mkdir $conf_dir
|
19
|
+
fi
|
20
|
+
|
21
|
+
#install emperor init conf
|
22
|
+
if which rbenv &>/dev/null;then
|
23
|
+
bin_uwsgi=`rbenv which uwsgi`
|
24
|
+
else
|
25
|
+
bin_uwsgi=`which uwsgi`
|
26
|
+
fi
|
27
|
+
|
28
|
+
tmpfile=/tmp/uwsgi-emperor.conf
|
29
|
+
dest=/etc/init/emperor.conf
|
30
|
+
cat <<-Conf >$tmpfile
|
31
|
+
#Emperor uWSGI script
|
32
|
+
#Generated at `date`
|
33
|
+
|
34
|
+
description "uWSGI Emperor Job"
|
35
|
+
start on runlevel [2345]
|
36
|
+
stop on runlevel [06]
|
37
|
+
|
38
|
+
setuid $app_user
|
39
|
+
setgid $app_user
|
40
|
+
|
41
|
+
exec $bin_uwsgi --master --die-on-term --emperor $conf_dir
|
42
|
+
Conf
|
43
|
+
sudo cp -b $tmpfile $dest
|
44
|
+
echo Has configured uWSGI emperor to $dest
|
data/sh/install
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
which gem &>/dev/null || { echo No ruby env && exit 1;}
|
4
|
+
gem query -in uwsgi >/dev/null && echo "Has installed uwsgi gem" && exit
|
5
|
+
|
6
|
+
echo Ref: http://uwsgi-docs.readthedocs.org/en/latest/RackQuickstart.html#automatically-starting-uwsgi-on-boot
|
7
|
+
echo Installing uwsgi gem for rack app
|
8
|
+
sudo apt-get -y install libssl-dev libpcre3-dev
|
9
|
+
gem install uwsgi
|
10
|
+
echo Installed uwsgi
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cap-uwsgi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cao7113
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gem-release
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description: uWSGI integration for Capistrano 3
|
28
42
|
email:
|
29
43
|
- cao7113@hotmail.com
|
@@ -37,18 +51,26 @@ files:
|
|
37
51
|
- Rakefile
|
38
52
|
- Readme.md
|
39
53
|
- cap-uwsgi.gemspec
|
54
|
+
- doc/conf/rack.ini
|
55
|
+
- doc/conf/rails.ini
|
56
|
+
- doc/conf/sinatra.ini
|
57
|
+
- doc/options.md
|
58
|
+
- doc/upstart.md
|
40
59
|
- lib/cap-uwsgi.rb
|
41
60
|
- lib/capistrano/tasks/emperor.cap
|
42
61
|
- lib/capistrano/tasks/nginx.cap
|
43
62
|
- lib/capistrano/tasks/uwsgi.cap
|
44
63
|
- lib/capistrano/templates/uwsgi.ini.erb
|
64
|
+
- lib/capistrano/templates/uwsgi.ini.skel.erb
|
45
65
|
- lib/capistrano/templates/uwsgi_emperor.conf.erb
|
46
66
|
- lib/capistrano/templates/uwsgi_nginx.conf.erb
|
47
67
|
- lib/capistrano/uwsgi.rb
|
48
68
|
- lib/capistrano/uwsgi/emperor.rb
|
49
69
|
- lib/capistrano/uwsgi/nginx.rb
|
50
70
|
- lib/capistrano/uwsgi/version.rb
|
51
|
-
|
71
|
+
- sh/init-emperor
|
72
|
+
- sh/install
|
73
|
+
homepage: http://github.com/cao7113/cap-uwsgi
|
52
74
|
licenses:
|
53
75
|
- MIT
|
54
76
|
metadata: {}
|