ms_deploy 0.2.5 → 0.3.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.
@@ -27,7 +27,7 @@ Capistrano::Configuration.instance.load do
|
|
27
27
|
run "sudo /etc/init.d/nginx restart"
|
28
28
|
end
|
29
29
|
|
30
|
-
task :setup do
|
30
|
+
task :setup, :roles => :web do
|
31
31
|
protocol = fetch(:protocol, nil).to_s
|
32
32
|
template_path = File.expand_path('../../templates/vhost.erb', __FILE__)
|
33
33
|
vars = {
|
@@ -50,32 +50,61 @@ Capistrano::Configuration.instance.load do
|
|
50
50
|
if protocol.nil? or protocol == 'http' or protocol == 'both'
|
51
51
|
config_path = "#{shared_path}/config/#{application}_vhost.conf"
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
53
|
+
sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
|
54
|
+
|
55
|
+
if protocol.nil? or protocol == 'http' or protocol == 'both'
|
56
|
+
config_path = "#{shared_path}/config/#{application}_vhost.conf"
|
57
|
+
|
58
|
+
put(render_erb_template(template_path, vars), config_path)
|
59
|
+
|
60
|
+
with_user(fetch(:setup_user, user)) do
|
61
|
+
try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
|
62
|
+
try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}.conf"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
if protocol == 'https' or protocol == 'both'
|
66
|
+
vars.merge!({'protocol' => 'https'})
|
67
|
+
|
68
|
+
config_path = "#{shared_path}/config/#{application}_ssl_vhost.conf"
|
59
69
|
|
60
|
-
|
70
|
+
put(render_erb_template(template_path, vars), config_path)
|
61
71
|
|
62
|
-
|
63
|
-
|
64
|
-
|
72
|
+
with_user(fetch(:setup_user, user)) do
|
73
|
+
try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
|
74
|
+
try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}_ssl.conf"
|
75
|
+
end
|
76
|
+
end
|
65
77
|
end
|
66
78
|
end
|
67
79
|
|
68
80
|
task :uninstall do
|
69
81
|
protocol = fetch(:protocol, nil)
|
82
|
+
sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
|
70
83
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
84
|
+
with_user(fetch(:setup_user, user)) do
|
85
|
+
if protocol.blank? or protocol == 'http' or protocol == 'both'
|
86
|
+
try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
|
87
|
+
elsif protocol == 'https' or protocol == 'both'
|
88
|
+
try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
|
89
|
+
end
|
75
90
|
end
|
76
91
|
end
|
77
92
|
end
|
78
93
|
|
79
94
|
after :"deploy:setup", :"nginx:setup";
|
80
95
|
|
96
|
+
def with_user(new_user, &block)
|
97
|
+
old_user = user
|
98
|
+
set :user, new_user
|
99
|
+
close_sessions
|
100
|
+
yield
|
101
|
+
set :user, old_user
|
102
|
+
close_sessions
|
103
|
+
end
|
104
|
+
|
105
|
+
def close_sessions
|
106
|
+
sessions.values.each { |session| session.close }
|
107
|
+
sessions.clear
|
108
|
+
end
|
109
|
+
|
81
110
|
end
|
@@ -2,6 +2,6 @@ Capistrano::Configuration.instance.load do
|
|
2
2
|
abort "You must set :user before using defaults" unless fetch(:user)
|
3
3
|
|
4
4
|
set :default_environment, {
|
5
|
-
'PATH' => "/home/#{user}/.rbenv/shims:/home/#{user}/.rbenv/bin:$PATH"
|
5
|
+
'PATH' => "/home/#{fetch(:user)}/.rbenv/shims:/home/#{fetch(:user)}/.rbenv/bin:$PATH"
|
6
6
|
}
|
7
7
|
end
|
@@ -2,7 +2,7 @@ Capistrano::Configuration.instance.load do
|
|
2
2
|
|
3
3
|
namespace :deploy do
|
4
4
|
namespace :prepare do
|
5
|
-
task :create_config_files do
|
5
|
+
task :create_config_files, :roles => :app do
|
6
6
|
run "mkdir -p #{shared_path}/config/"
|
7
7
|
config_file_to_setup.each do |config_file|
|
8
8
|
put(File.read(config_file_path(config_file)), "#{shared_path}/config/#{config_file}", :via => :scp)
|
@@ -10,11 +10,11 @@ Capistrano::Configuration.instance.load do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
desc "Set up shared directory structure"
|
13
|
-
task :create_shared_folders do
|
13
|
+
task :create_shared_folders, :roles => :app do
|
14
14
|
directories_to_create.each { |directory| run "mkdir -p #{directory}" }
|
15
15
|
end
|
16
16
|
|
17
|
-
task :database do
|
17
|
+
task :database, :roles => :db do
|
18
18
|
_cset :db_admin_user, 'root'
|
19
19
|
_cset :db_admin_password, Capistrano::CLI.password_prompt("Type your mysql password for user '#{db_admin_user}' (not set if empty): ")
|
20
20
|
_cset :db_name, application.gsub(/\W+/, '')[0..5] + '_' + rails_env.to_s
|
@@ -11,7 +11,7 @@ Capistrano::Configuration.instance.load do
|
|
11
11
|
|
12
12
|
namespace :unicorn do
|
13
13
|
desc "Setup unicorn"
|
14
|
-
task :setup, :except => { :no_release => true } do
|
14
|
+
task :setup, :roles => :app, :except => { :no_release => true } do
|
15
15
|
run "mkdir -p \"#{shared_path}/config/unicorn\""
|
16
16
|
config_path = "#{shared_path}/config/unicorn/#{stage}.rb"
|
17
17
|
template_path = File.expand_path('../../templates/unicorn/unicorn.rb.erb', __FILE__)
|
@@ -30,4 +30,14 @@ Capistrano::Configuration.instance.load do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
after :"deploy:setup", :"unicorn:setup";
|
33
|
+
|
34
|
+
namespace :deploy do
|
35
|
+
task :start, :roles => :app do
|
36
|
+
unicorn.start
|
37
|
+
end
|
38
|
+
|
39
|
+
task :stop, :roles => :app do
|
40
|
+
unicorn.stop
|
41
|
+
end
|
42
|
+
end
|
33
43
|
end
|
data/lib/ms_deploy/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ms_deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gemcutter
|