crossroads_capistrano 1.4.18 → 1.4.19
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.
- data/crossroads_capistrano.gemspec +2 -1
- data/lib/crossroads_capistrano/recipes/base.rb +1 -1
- data/lib/crossroads_capistrano/recipes/cache.rb +1 -1
- data/lib/crossroads_capistrano/recipes/log.rb +6 -0
- data/lib/crossroads_capistrano/recipes/maintenance.rb +47 -0
- data/lib/crossroads_capistrano/recipes/passenger.rb +26 -24
- data/lib/crossroads_capistrano/recipes/thinking_sphinx.rb +4 -4
- metadata +21 -4
|
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "crossroads_capistrano"
|
|
6
|
-
s.version = "1.4.
|
|
6
|
+
s.version = "1.4.19"
|
|
7
7
|
s.platform = Gem::Platform::RUBY
|
|
8
8
|
s.authors = ["Steve Kenworthy", "Ben Tillman", "Nathan Broadbent"]
|
|
9
9
|
s.email = ["it_dept@crossroads.org.hk"]
|
|
@@ -21,5 +21,6 @@ Gem::Specification.new do |s|
|
|
|
21
21
|
s.add_dependency('capistrano', ">= 2.6.0")
|
|
22
22
|
s.add_dependency('capistrano-ext', ">= 1.2.1")
|
|
23
23
|
s.add_dependency('capistrano_colors', ">= 0.5.4")
|
|
24
|
+
s.add_dependency('rvm', ">= 1.6.9")
|
|
24
25
|
end
|
|
25
26
|
|
|
@@ -49,7 +49,7 @@ namespace :deploy do
|
|
|
49
49
|
end
|
|
50
50
|
desc "Check for project dependencies"
|
|
51
51
|
task :check_dependencies, :roles => :db, :only => { :primary => true } do
|
|
52
|
-
sudo "cd #{current_path} &&
|
|
52
|
+
sudo "cd #{current_path} && bundle exec rake check_dependencies RAILS_ENV=production"
|
|
53
53
|
end
|
|
54
54
|
desc "Remove cached-copy (when switching to a new repository, etc.)"
|
|
55
55
|
task :remove_cached_copy, :roles => :db, :only => { :primary => true } do
|
|
@@ -7,7 +7,7 @@ namespace :cache do
|
|
|
7
7
|
end
|
|
8
8
|
desc "Clear memcache"
|
|
9
9
|
task :memcache, :only => { :primary => true } do
|
|
10
|
-
run "cd #{current_path} &&
|
|
10
|
+
run "cd #{current_path} && bundle exec rake cache:clear RAILS_ENV=production"
|
|
11
11
|
end
|
|
12
12
|
desc "Clear view cache (tmp/cache/) used when memcached is unavailable"
|
|
13
13
|
task :view do
|
|
@@ -36,6 +36,12 @@ namespace :log do
|
|
|
36
36
|
sudo "rm -rf #{shared_path}/log && ln -fs /var/log/rails/#{application}-#{stage} #{shared_path}/log"
|
|
37
37
|
sudo "chown -R #{httpd_user}:#{httpd_group} /var/log/rails/#{application}-#{stage}/"
|
|
38
38
|
end
|
|
39
|
+
|
|
40
|
+
desc "Setup logrotate file (Requires /usr/sbin/logrotate and config/logrotate.conf)"
|
|
41
|
+
task :logrotate do
|
|
42
|
+
run "if [ -f /usr/sbin/logrotate ] && [ -f #{current_path}/config/logrotate.conf ]; then sed -e 's,@LOG_PATH@,/var/log/rails/#{application}-#{stage},g' #{current_path}/config/logrotate.conf > /etc/logrotate.d/#{application}-#{stage}; fi"
|
|
43
|
+
end
|
|
44
|
+
|
|
39
45
|
end
|
|
40
46
|
|
|
41
47
|
after "stack", "log:symlink_shared"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Provides tasks to turn on maintenance pages whilst the build is being repaired.
|
|
3
|
+
#
|
|
4
|
+
# The maintenance files must exist in
|
|
5
|
+
# public/maintenance
|
|
6
|
+
#
|
|
7
|
+
# And Apache must be configured to use them. E.g.
|
|
8
|
+
#
|
|
9
|
+
# Alias /maintenance @DEPLOY_TO@/shared/system/maintenance
|
|
10
|
+
# <Directory "@DEPLOY_TO@/shared/system/maintenance/">
|
|
11
|
+
# Options FollowSymLinks
|
|
12
|
+
# AllowOverride None
|
|
13
|
+
# Order allow,deny
|
|
14
|
+
# Allow from all
|
|
15
|
+
# </Directory>
|
|
16
|
+
#
|
|
17
|
+
# RewriteRule ^/maintenance/.*\.(png|ico|jpg|gif) - [L]
|
|
18
|
+
#
|
|
19
|
+
# RewriteCond @DEPLOY_TO@/shared/system/maintenance/maintenance.html -f
|
|
20
|
+
# RewriteCond %{SCRIPT_FILENAME} !maintenance.html
|
|
21
|
+
# RewriteRule ^.*$ @DEPLOY_TO@/shared/system/maintenance/maintenance.html [L]
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
namespace :web do
|
|
25
|
+
desc <<-DESC
|
|
26
|
+
Present a maintenance page to visitors. Disables your application's web \
|
|
27
|
+
interface by writing a "maintenance-en.html" file to each web server. The \
|
|
28
|
+
servers must be configured to detect the presence of this file, and if \
|
|
29
|
+
it is present, always display it instead of performing the request.
|
|
30
|
+
|
|
31
|
+
The maintenance html pages are copied to shared/system/maintenance so they \
|
|
32
|
+
can still display when things go wrong in the release folder.
|
|
33
|
+
DESC
|
|
34
|
+
task :disable, :roles => :web, :except => { :no_release => true } do
|
|
35
|
+
run "cp -raf #{current_path}/public/maintenance/ #{deploy_to}/shared/system/"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
desc <<-DESC
|
|
39
|
+
Makes the application web-accessible again. Removes the \
|
|
40
|
+
"maintenance.html" page generated by deploy:web:disable, which (if your \
|
|
41
|
+
web servers are configured correctly) will make your application \
|
|
42
|
+
web-accessible again.
|
|
43
|
+
DESC
|
|
44
|
+
task :enable, :roles => :web, :except => { :no_release => true } do
|
|
45
|
+
run "rm -rf #{deploy_to}/shared/system/maintenance"
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -39,41 +39,43 @@ namespace :passenger do
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
task :install_deps, :roles => :web do
|
|
42
|
-
yum.install( {:base => %w(curl-devel httpd-devel apr-devel)}, :stable )
|
|
42
|
+
yum.install( {:base => %w(curl-devel httpd-devel apr-devel openssl-devel zlib-devel e2fsprogs-devel krb5-devel)}, :stable )
|
|
43
43
|
sudo "rm -rf /etc/httpd/conf.d/ssl.conf"
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
desc "Set up Apache and Passenger config files"
|
|
47
47
|
task :config, :roles => :web do
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
unless (exists?(:no_passenger_conf) && no_passenger_conf)
|
|
49
|
+
# You can set the following paths from your deploy.rb file, if needed.
|
|
50
|
+
set :httpd_site_conf_path, "/etc/httpd/sites-enabled/010-#{application}-#{stage}.conf" unless exists?(:httpd_site_conf_path)
|
|
51
|
+
set :passenger_conf_path, "/etc/httpd/mods-enabled/passenger.conf" unless exists?(:passenger_conf_path)
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
if exists?(:rvm_ruby_string) # Deploying with RVM
|
|
54
|
+
ruby_root = "/usr/local/rvm/wrappers/#{rvm_ruby_string}/ruby"
|
|
55
|
+
passenger_root = "/usr/local/rvm/gems/#{rvm_ruby_string}/gems/passenger-#{passenger_version}"
|
|
56
|
+
else # System Ruby
|
|
57
|
+
ruby_root = capture("which ruby").strip
|
|
58
|
+
gem_path = capture("ruby -r rubygems -e 'p Gem.path.detect{|p|p.include? \"/usr\"}'").strip.gsub('"','')
|
|
59
|
+
passenger_root = "#{gem_path}/gems/passenger-#{passenger_version}"
|
|
60
|
+
end
|
|
61
|
+
# httpd conf
|
|
62
|
+
sudo "cp -f #{release_path}/config/httpd-rails.conf #{httpd_site_conf_path}"
|
|
63
|
+
sed httpd_site_conf_path, {"DEPLOY_TO" => deploy_to,
|
|
64
|
+
"IP_ADDR" => ip_address,
|
|
65
|
+
"SERVER_NAME" => site_domain_name,
|
|
66
|
+
"SITE_DOMAIN_NAME" => site_domain_name,
|
|
67
|
+
"HTTP_PORT" => http_port,
|
|
68
|
+
"HTTPS_PORT" => https_port}
|
|
69
|
+
# passenger conf
|
|
70
|
+
sudo "cp -f #{release_path}/config/passenger.conf #{passenger_conf_path}"
|
|
71
|
+
sed passenger_conf_path, {"PASSENGER_ROOT" => passenger_root,
|
|
72
|
+
"RUBY_ROOT" => ruby_root}
|
|
59
73
|
end
|
|
60
|
-
# httpd conf
|
|
61
|
-
sudo "cp -f #{release_path}/config/httpd-rails.conf #{httpd_site_conf_path}"
|
|
62
|
-
sed httpd_site_conf_path, {"DEPLOY_TO" => deploy_to,
|
|
63
|
-
"IP_ADDR" => ip_address,
|
|
64
|
-
"SERVER_NAME" => site_domain_name,
|
|
65
|
-
"SITE_DOMAIN_NAME" => site_domain_name,
|
|
66
|
-
"HTTP_PORT" => http_port,
|
|
67
|
-
"HTTPS_PORT" => https_port}
|
|
68
|
-
# passenger conf
|
|
69
|
-
sudo "cp -f #{release_path}/config/passenger.conf #{passenger_conf_path}"
|
|
70
|
-
sed passenger_conf_path, {"PASSENGER_ROOT" => passenger_root,
|
|
71
|
-
"RUBY_ROOT" => ruby_root}
|
|
72
74
|
end
|
|
73
75
|
end
|
|
74
76
|
|
|
75
77
|
before "deploy:cold", "passenger:install"
|
|
76
|
-
after
|
|
78
|
+
after "deploy:update_code", "passenger:config"
|
|
77
79
|
before "deploy:start", "deploy:apache_permissions"
|
|
78
80
|
before "deploy:restart", "deploy:apache_permissions"
|
|
79
81
|
|
|
@@ -2,17 +2,17 @@ namespace :ts do
|
|
|
2
2
|
|
|
3
3
|
desc "Index data for Sphinx using Thinking Sphinx's settings"
|
|
4
4
|
task :in do
|
|
5
|
-
run "cd #{current_path} &&
|
|
5
|
+
run "cd #{current_path} && bundle exec rake ts:in RAILS_ENV=production"
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
desc "Stop sphinx"
|
|
9
9
|
task :stop do
|
|
10
|
-
run "cd #{current_path} &&
|
|
10
|
+
run "cd #{current_path} && bundle exec rake ts:stop RAILS_ENV=production"
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
desc "Start sphinx"
|
|
14
14
|
task :start do
|
|
15
|
-
run "cd #{current_path} &&
|
|
15
|
+
run "cd #{current_path} && bundle exec rake ts:start RAILS_ENV=production"
|
|
16
16
|
run "chown #{httpd_user}:#{httpd_group} #{shared_path}/log/searchd.production.pid"
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -26,7 +26,7 @@ namespace :ts do
|
|
|
26
26
|
task :recover do
|
|
27
27
|
stop
|
|
28
28
|
run "cd #{shared_path}/db/sphinx/ && rm -rf production"
|
|
29
|
-
run "cd #{current_path} &&
|
|
29
|
+
run "cd #{current_path} && bundle exec rake ts:in RAILS_ENV=production"
|
|
30
30
|
start
|
|
31
31
|
end
|
|
32
32
|
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: crossroads_capistrano
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 33
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 4
|
|
9
|
-
-
|
|
10
|
-
version: 1.4.
|
|
9
|
+
- 19
|
|
10
|
+
version: 1.4.19
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Steve Kenworthy
|
|
@@ -17,7 +17,7 @@ autorequire:
|
|
|
17
17
|
bindir: bin
|
|
18
18
|
cert_chain: []
|
|
19
19
|
|
|
20
|
-
date: 2011-06-
|
|
20
|
+
date: 2011-06-21 00:00:00 +08:00
|
|
21
21
|
default_executable:
|
|
22
22
|
dependencies:
|
|
23
23
|
- !ruby/object:Gem::Dependency
|
|
@@ -68,6 +68,22 @@ dependencies:
|
|
|
68
68
|
version: 0.5.4
|
|
69
69
|
type: :runtime
|
|
70
70
|
version_requirements: *id003
|
|
71
|
+
- !ruby/object:Gem::Dependency
|
|
72
|
+
name: rvm
|
|
73
|
+
prerelease: false
|
|
74
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
75
|
+
none: false
|
|
76
|
+
requirements:
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
hash: 29
|
|
80
|
+
segments:
|
|
81
|
+
- 1
|
|
82
|
+
- 6
|
|
83
|
+
- 9
|
|
84
|
+
version: 1.6.9
|
|
85
|
+
type: :runtime
|
|
86
|
+
version_requirements: *id004
|
|
71
87
|
description: A Crossroads Foundation collection of generic capistrano recipes.
|
|
72
88
|
email:
|
|
73
89
|
- it_dept@crossroads.org.hk
|
|
@@ -93,6 +109,7 @@ files:
|
|
|
93
109
|
- lib/crossroads_capistrano/recipes/hoptoad.rb
|
|
94
110
|
- lib/crossroads_capistrano/recipes/ldap.rb
|
|
95
111
|
- lib/crossroads_capistrano/recipes/log.rb
|
|
112
|
+
- lib/crossroads_capistrano/recipes/maintenance.rb
|
|
96
113
|
- lib/crossroads_capistrano/recipes/mysql.rb
|
|
97
114
|
- lib/crossroads_capistrano/recipes/newrelic.rb
|
|
98
115
|
- lib/crossroads_capistrano/recipes/passenger.rb
|