rubber 1.9.1 → 1.10.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.
- data/VERSION +1 -1
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +1 -2
- data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +18 -2
- data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +1 -1
- data/generators/vulcanize/templates/base/config/rubber/rubber.yml +4 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +1 -2
- data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +1 -2
- data/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +6 -6
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +1 -2
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +9 -2
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +1 -2
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/redis-sysctl.conf +7 -0
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +8 -0
- data/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +4 -0
- data/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +4 -4
- data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +2 -2
- data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +2 -2
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +1 -2
- data/lib/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +18 -2
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +1 -1
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber.yml +4 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +1 -2
- data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +1 -2
- data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +6 -6
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +1 -2
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +9 -2
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +1 -2
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis-sysctl.conf +7 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +8 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +4 -0
- data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +4 -4
- data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +2 -2
- data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +2 -2
- data/lib/rubber/cloud/aws.rb +3 -1
- data/lib/rubber/instance.rb +23 -4
- data/lib/rubber/recipes/rubber/security_groups.rb +15 -2
- data/lib/rubber/recipes/rubber/volumes.rb +3 -2
- data/test/environment_test.rb +5 -12
- data/test/instance_test.rb +37 -3
- data/test/zerigo_test.rb +8 -8
- metadata +14 -45
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.10.1
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-apache.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process apache with pidfile <%= PIDFILE %>
|
4
|
+
check process apache with pidfile /var/run/apache2.pid
|
6
5
|
group apache-<%= RUBBER_ENV %>
|
7
6
|
start program = "/usr/bin/env service apache2 start"
|
8
7
|
stop program = "/usr/bin/env service apache2 stop"
|
@@ -6,7 +6,7 @@ namespace :rubber do
|
|
6
6
|
before "rubber:setup_gem_sources", "rubber:base:install_rvm"
|
7
7
|
task :install_rvm do
|
8
8
|
rubber.sudo_script "install_rvm", <<-ENDSCRIPT
|
9
|
-
if [[ `rvm --version 2> /dev/null`
|
9
|
+
if [[ ! `rvm --version 2> /dev/null` =~ "#{rubber_env.rvm_version}" ]]; then
|
10
10
|
echo "rvm_prefix=/usr/local/" > /etc/rvmrc
|
11
11
|
echo "#{rubber_env.rvm_prepare}" > /etc/profile.d/rvm.sh
|
12
12
|
|
@@ -55,10 +55,26 @@ namespace :rubber do
|
|
55
55
|
install_rvm_ruby_script = <<-ENDSCRIPT
|
56
56
|
rvm_ver=$1
|
57
57
|
if [[ ! `rvm list default 2> /dev/null` =~ "$rvm_ver" ]]; then
|
58
|
-
|
58
|
+
echo "RVM is compiling/installing ruby $rvm_ver, this may take a while"
|
59
|
+
|
60
|
+
nohup rvm install $rvm_ver &> /tmp/install_rvm_ruby.log &
|
61
|
+
sleep 1
|
62
|
+
|
63
|
+
while true; do
|
64
|
+
if ! ps ax | grep -q "[r]vm install"; then exit; fi
|
65
|
+
echo -n .
|
66
|
+
sleep 5
|
67
|
+
done
|
68
|
+
|
59
69
|
# need to set default after using once or something in env is broken
|
60
70
|
rvm use $rvm_ver &> /dev/null
|
61
71
|
rvm use $rvm_ver --default
|
72
|
+
|
73
|
+
# Something flaky with $PATH having an entry for "bin" which breaks
|
74
|
+
# munin, the below seems to fix it
|
75
|
+
rvm use $rvm_ver
|
76
|
+
rvm repair environments
|
77
|
+
rvm use $rvm_ver
|
62
78
|
fi
|
63
79
|
ENDSCRIPT
|
64
80
|
opts[:script_args] = '$CAPISTRANO:VAR$'
|
@@ -12,7 +12,7 @@
|
|
12
12
|
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline5-dev, libxml2-dev]
|
13
13
|
|
14
14
|
# REQUIRED: the version of rvm itself
|
15
|
-
rvm_version: 1.
|
15
|
+
rvm_version: 1.2.6
|
16
16
|
|
17
17
|
# REQUIRED: Set to the rvm version string for the ruby version you wish to use
|
18
18
|
# Run "rvm list known" to see the list of possible options
|
@@ -130,6 +130,10 @@ auto_security_groups: true
|
|
130
130
|
# account, or even multiple apps
|
131
131
|
isolate_security_groups: true
|
132
132
|
|
133
|
+
# OPTIONAL: Prompts one to sync security group rules when the ones in amazon
|
134
|
+
# differ from those in rubber
|
135
|
+
prompt_for_security_group_sync: true
|
136
|
+
|
133
137
|
# OPTIONAL: The packages to install on all instances
|
134
138
|
# You can install a specific version of a package by using a sub-array of pkg, version
|
135
139
|
# For example, packages: [[rake, 0.7.1], irb]
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-haproxy.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process haproxy with pidfile <%= PIDFILE %>
|
4
|
+
check process haproxy with pidfile /var/run/haproxy.pid
|
6
5
|
group haproxy-<%= RUBBER_ENV %>
|
7
6
|
start program = "/usr/bin/env service haproxy start"
|
8
7
|
stop program = "/usr/bin/env service haproxy stop"
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-jetty.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process jetty with pidfile <%= PIDFILE %>
|
4
|
+
check process jetty with pidfile /var/run/jetty.pid
|
6
5
|
group jetty-<%= RUBBER_ENV %>
|
7
6
|
start program = "<%= rubber_env.jetty_dir %>/bin/jetty.sh start"
|
8
7
|
stop program = "<%= rubber_env.jetty_dir %>/bin/jetty.sh stop"
|
@@ -4,17 +4,17 @@
|
|
4
4
|
|
5
5
|
<% (0..(rubber_env.mongrel_count.to_i - 1)).each do |i| %>
|
6
6
|
|
7
|
-
<%
|
8
|
-
<%
|
9
|
-
check process mongrel-<%=
|
7
|
+
<% port = rubber_env.mongrel_base_port + i %>
|
8
|
+
<% pidfile = "#{RUBBER_ROOT}/tmp/pids/mongrel.#{port}.pid" %>
|
9
|
+
check process mongrel-<%= port %> with pidfile <%= pidfile %>
|
10
10
|
group mongrel-<%= RUBBER_ENV %>
|
11
|
-
start program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::start --clean --only <%=
|
11
|
+
start program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::start --clean --only <%= port %>'"
|
12
12
|
<%
|
13
13
|
# Stop gracefully - monit waits for stop to complete (since below process exits immediately, it must
|
14
14
|
# wait for pid to disappear) before trying to start
|
15
15
|
%>
|
16
|
-
stop program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::stop --clean --only <%=
|
16
|
+
stop program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::stop --clean --only <%= port %> && sleep 30 && mongrel_rails cluster::stop --clean --force --only <%= port %>'"
|
17
17
|
if totalmem > 200.0 MB for 3 cycles then restart
|
18
18
|
<%# monit needs to test on same same interface that mongrel is listening on (see mongrel_cluster.yml) %>
|
19
|
-
if failed host <%= rubber_env.host %> port <%=
|
19
|
+
if failed host <%= rubber_env.host %> port <%= port %> protocol http with timeout 10 seconds for 10 cycles then restart
|
20
20
|
<% end %>
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-nginx.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process nginx with pidfile <%= PIDFILE %>
|
4
|
+
check process nginx with pidfile /var/run/nginx.pid
|
6
5
|
group nginx-<%= RUBBER_ENV %>
|
7
6
|
start program = "/usr/bin/env service nginx start"
|
8
7
|
stop program = "/usr/bin/env service nginx stop"
|
@@ -4,5 +4,12 @@
|
|
4
4
|
@additive = ['# start-redis-crontab', '# end-redis-crontab']
|
5
5
|
%>
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
<%
|
8
|
+
# Backup db every 3 hours to secondary db if available, else primary db
|
9
|
+
backup_redis_host = rubber_instances.for_role('redis_slave').first rescue nil
|
10
|
+
backup_redis_host ||= rubber_instances.for_role('redis_master').first
|
11
|
+
if backup_redis_host.name == rubber_env.host
|
12
|
+
%>
|
13
|
+
# Backup redis DBs every hour.
|
14
|
+
0 * * * * BACKUP_DIR=/mnt/redis_backups BACKUP_NAME=redis BACKUP_CMD="nice zip -r \%dir\%/redis_\%time_stamp\%.zip <%= rubber_env.redis_db_dir %> -x \*temp\*.rdb" <%= RUBBER_ROOT %>/script/cron-rake rubber:backup
|
15
|
+
<% end %>
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-redis.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process redis with pidfile <%= PIDFILE %>
|
4
|
+
check process redis with pidfile /var/run/redis.pid
|
6
5
|
group redis-<%= RUBBER_ENV %>
|
7
6
|
start program = "/etc/init.d/redis-server start"
|
8
7
|
stop program = "/etc/init.d/redis-server stop"
|
@@ -97,6 +97,11 @@ dbfilename dump.rdb
|
|
97
97
|
# Note that you must specify a directory here, not a file name.
|
98
98
|
dir <%= rubber_env.redis_db_dir %>
|
99
99
|
|
100
|
+
<%-
|
101
|
+
redis_master = rubber_instances.for_role('redis_master').first
|
102
|
+
|
103
|
+
if rubber_instances[rubber_env.host].role_names.include?('redis_slave')
|
104
|
+
%>
|
100
105
|
################################# REPLICATION #################################
|
101
106
|
|
102
107
|
# Master-Slave replication. Use slaveof to make a Redis instance a copy of
|
@@ -106,12 +111,15 @@ dir <%= rubber_env.redis_db_dir %>
|
|
106
111
|
#
|
107
112
|
# slaveof <masterip> <masterport>
|
108
113
|
|
114
|
+
slaveof <%= redis_master.name %> 6379
|
115
|
+
|
109
116
|
# If the master is password protected (using the "requirepass" configuration
|
110
117
|
# directive below) it is possible to tell the slave to authenticate before
|
111
118
|
# starting the replication synchronization process, otherwise the master will
|
112
119
|
# refuse the slave request.
|
113
120
|
#
|
114
121
|
# masterauth <master-password>
|
122
|
+
<%- end %>
|
115
123
|
|
116
124
|
################################## SECURITY ###################################
|
117
125
|
|
data/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-resque_web.conf'
|
3
3
|
|
4
|
-
|
5
|
-
start_program = "HOME=/root resque-web --pid-file #{
|
6
|
-
stop_program = "HOME=/root resque-web --pid-file #{
|
4
|
+
pidfile = "/var/run/resque_web.pid"
|
5
|
+
start_program = "HOME=/root resque-web --pid-file #{pidfile} --port #{rubber_env.resque_web_port} --no-launch #{RUBBER_ROOT}/config/initializers/resque.rb"
|
6
|
+
stop_program = "HOME=/root resque-web --pid-file #{pidfile} --kill"
|
7
7
|
%>
|
8
8
|
|
9
|
-
check process resque_web with pidfile <%=
|
9
|
+
check process resque_web with pidfile <%= pidfile %>
|
10
10
|
group resque_web
|
11
11
|
start program = "/bin/bash -l -c '<%= start_program %>'"
|
12
12
|
stop program = "/bin/bash -l -c '<%= stop_program %>'"
|
data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
|
5
5
|
<% rubber_env.resque_workers.each_with_index do |worker, i| %>
|
6
6
|
<%
|
7
|
-
|
7
|
+
pidfile = "#{RUBBER_ROOT}/tmp/pids/resque_worker_#{i}.pid"
|
8
8
|
|
9
9
|
start_program = "/usr/bin/sudo -H -u #{rubber_env.app_user} bash -l -c 'cd #{RUBBER_ROOT} && ./script/resque_worker_management.rb start #{i}'"
|
10
10
|
stop_program = "/usr/bin/sudo -H -u #{rubber_env.app_user} bash -l -c 'cd #{RUBBER_ROOT} && ./script/resque_worker_management.rb stop #{i} TERM'"
|
11
11
|
%>
|
12
12
|
|
13
|
-
check process resque_worker_<%= i %> with pidfile <%=
|
13
|
+
check process resque_worker_<%= i %> with pidfile <%= pidfile %>
|
14
14
|
group resque_worker
|
15
15
|
start program = "<%= start_program %>"
|
16
16
|
stop program = "<%= stop_program %>"
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-sphinx.conf'
|
3
3
|
|
4
|
-
|
4
|
+
pidfile = "#{RUBBER_ROOT}/log/searchd.#{RUBBER_ENV}.pid"
|
5
5
|
start_program = "cd #{RUBBER_ROOT} && rake ts:start"
|
6
6
|
stop_program = "cd #{RUBBER_ROOT} && rake ts:stop"
|
7
7
|
%>
|
8
8
|
|
9
|
-
check process sphinx with pidfile <%=
|
9
|
+
check process sphinx with pidfile <%= pidfile %>
|
10
10
|
group sphinx-<%= RUBBER_ENV %>
|
11
11
|
start program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> bash -l -c '<%= start_program %>'"
|
12
12
|
stop program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> bash -l -c '<%= stop_program %>'"
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-apache.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process apache with pidfile <%= PIDFILE %>
|
4
|
+
check process apache with pidfile /var/run/apache2.pid
|
6
5
|
group apache-<%= RUBBER_ENV %>
|
7
6
|
start program = "/usr/bin/env service apache2 start"
|
8
7
|
stop program = "/usr/bin/env service apache2 stop"
|
@@ -6,7 +6,7 @@ namespace :rubber do
|
|
6
6
|
before "rubber:setup_gem_sources", "rubber:base:install_rvm"
|
7
7
|
task :install_rvm do
|
8
8
|
rubber.sudo_script "install_rvm", <<-ENDSCRIPT
|
9
|
-
if [[ `rvm --version 2> /dev/null`
|
9
|
+
if [[ ! `rvm --version 2> /dev/null` =~ "#{rubber_env.rvm_version}" ]]; then
|
10
10
|
echo "rvm_prefix=/usr/local/" > /etc/rvmrc
|
11
11
|
echo "#{rubber_env.rvm_prepare}" > /etc/profile.d/rvm.sh
|
12
12
|
|
@@ -55,10 +55,26 @@ namespace :rubber do
|
|
55
55
|
install_rvm_ruby_script = <<-ENDSCRIPT
|
56
56
|
rvm_ver=$1
|
57
57
|
if [[ ! `rvm list default 2> /dev/null` =~ "$rvm_ver" ]]; then
|
58
|
-
|
58
|
+
echo "RVM is compiling/installing ruby $rvm_ver, this may take a while"
|
59
|
+
|
60
|
+
nohup rvm install $rvm_ver &> /tmp/install_rvm_ruby.log &
|
61
|
+
sleep 1
|
62
|
+
|
63
|
+
while true; do
|
64
|
+
if ! ps ax | grep -q "[r]vm install"; then exit; fi
|
65
|
+
echo -n .
|
66
|
+
sleep 5
|
67
|
+
done
|
68
|
+
|
59
69
|
# need to set default after using once or something in env is broken
|
60
70
|
rvm use $rvm_ver &> /dev/null
|
61
71
|
rvm use $rvm_ver --default
|
72
|
+
|
73
|
+
# Something flaky with $PATH having an entry for "bin" which breaks
|
74
|
+
# munin, the below seems to fix it
|
75
|
+
rvm use $rvm_ver
|
76
|
+
rvm repair environments
|
77
|
+
rvm use $rvm_ver
|
62
78
|
fi
|
63
79
|
ENDSCRIPT
|
64
80
|
opts[:script_args] = '$CAPISTRANO:VAR$'
|
@@ -12,7 +12,7 @@
|
|
12
12
|
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline5-dev, libxml2-dev]
|
13
13
|
|
14
14
|
# REQUIRED: the version of rvm itself
|
15
|
-
rvm_version: 1.
|
15
|
+
rvm_version: 1.2.6
|
16
16
|
|
17
17
|
# REQUIRED: Set to the rvm version string for the ruby version you wish to use
|
18
18
|
# Run "rvm list known" to see the list of possible options
|
@@ -130,6 +130,10 @@ auto_security_groups: true
|
|
130
130
|
# account, or even multiple apps
|
131
131
|
isolate_security_groups: true
|
132
132
|
|
133
|
+
# OPTIONAL: Prompts one to sync security group rules when the ones in amazon
|
134
|
+
# differ from those in rubber
|
135
|
+
prompt_for_security_group_sync: true
|
136
|
+
|
133
137
|
# OPTIONAL: The packages to install on all instances
|
134
138
|
# You can install a specific version of a package by using a sub-array of pkg, version
|
135
139
|
# For example, packages: [[rake, 0.7.1], irb]
|
data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-haproxy.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process haproxy with pidfile <%= PIDFILE %>
|
4
|
+
check process haproxy with pidfile /var/run/haproxy.pid
|
6
5
|
group haproxy-<%= RUBBER_ENV %>
|
7
6
|
start program = "/usr/bin/env service haproxy start"
|
8
7
|
stop program = "/usr/bin/env service haproxy stop"
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-jetty.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process jetty with pidfile <%= PIDFILE %>
|
4
|
+
check process jetty with pidfile /var/run/jetty.pid
|
6
5
|
group jetty-<%= RUBBER_ENV %>
|
7
6
|
start program = "<%= rubber_env.jetty_dir %>/bin/jetty.sh start"
|
8
7
|
stop program = "<%= rubber_env.jetty_dir %>/bin/jetty.sh stop"
|
data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf
CHANGED
@@ -4,17 +4,17 @@
|
|
4
4
|
|
5
5
|
<% (0..(rubber_env.mongrel_count.to_i - 1)).each do |i| %>
|
6
6
|
|
7
|
-
<%
|
8
|
-
<%
|
9
|
-
check process mongrel-<%=
|
7
|
+
<% port = rubber_env.mongrel_base_port + i %>
|
8
|
+
<% pidfile = "#{RUBBER_ROOT}/tmp/pids/mongrel.#{port}.pid" %>
|
9
|
+
check process mongrel-<%= port %> with pidfile <%= pidfile %>
|
10
10
|
group mongrel-<%= RUBBER_ENV %>
|
11
|
-
start program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::start --clean --only <%=
|
11
|
+
start program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::start --clean --only <%= port %>'"
|
12
12
|
<%
|
13
13
|
# Stop gracefully - monit waits for stop to complete (since below process exits immediately, it must
|
14
14
|
# wait for pid to disappear) before trying to start
|
15
15
|
%>
|
16
|
-
stop program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::stop --clean --only <%=
|
16
|
+
stop program = "/bin/sh -c 'cd <%= RUBBER_ROOT %> && PATH=<%= rubber_env.ruby_prefix %>/bin:/usr/local/bin:$PATH && mongrel_rails cluster::stop --clean --only <%= port %> && sleep 30 && mongrel_rails cluster::stop --clean --force --only <%= port %>'"
|
17
17
|
if totalmem > 200.0 MB for 3 cycles then restart
|
18
18
|
<%# monit needs to test on same same interface that mongrel is listening on (see mongrel_cluster.yml) %>
|
19
|
-
if failed host <%= rubber_env.host %> port <%=
|
19
|
+
if failed host <%= rubber_env.host %> port <%= port %> protocol http with timeout 10 seconds for 10 cycles then restart
|
20
20
|
<% end %>
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-nginx.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process nginx with pidfile <%= PIDFILE %>
|
4
|
+
check process nginx with pidfile /var/run/nginx.pid
|
6
5
|
group nginx-<%= RUBBER_ENV %>
|
7
6
|
start program = "/usr/bin/env service nginx start"
|
8
7
|
stop program = "/usr/bin/env service nginx stop"
|
@@ -4,5 +4,12 @@
|
|
4
4
|
@additive = ['# start-redis-crontab', '# end-redis-crontab']
|
5
5
|
%>
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
<%
|
8
|
+
# Backup db every 3 hours to secondary db if available, else primary db
|
9
|
+
backup_redis_host = rubber_instances.for_role('redis_slave').first rescue nil
|
10
|
+
backup_redis_host ||= rubber_instances.for_role('redis_master').first
|
11
|
+
if backup_redis_host.name == rubber_env.host
|
12
|
+
%>
|
13
|
+
# Backup redis DBs every hour.
|
14
|
+
0 * * * * BACKUP_DIR=/mnt/redis_backups BACKUP_NAME=redis BACKUP_CMD="nice zip -r \%dir\%/redis_\%time_stamp\%.zip <%= rubber_env.redis_db_dir %> -x \*temp\*.rdb" <%= RUBBER_ROOT %>/script/cron-rake rubber:backup
|
15
|
+
<% end %>
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-redis.conf'
|
3
3
|
%>
|
4
|
-
|
5
|
-
check process redis with pidfile <%= PIDFILE %>
|
4
|
+
check process redis with pidfile /var/run/redis.pid
|
6
5
|
group redis-<%= RUBBER_ENV %>
|
7
6
|
start program = "/etc/init.d/redis-server start"
|
8
7
|
stop program = "/etc/init.d/redis-server stop"
|
@@ -97,6 +97,11 @@ dbfilename dump.rdb
|
|
97
97
|
# Note that you must specify a directory here, not a file name.
|
98
98
|
dir <%= rubber_env.redis_db_dir %>
|
99
99
|
|
100
|
+
<%-
|
101
|
+
redis_master = rubber_instances.for_role('redis_master').first
|
102
|
+
|
103
|
+
if rubber_instances[rubber_env.host].role_names.include?('redis_slave')
|
104
|
+
%>
|
100
105
|
################################# REPLICATION #################################
|
101
106
|
|
102
107
|
# Master-Slave replication. Use slaveof to make a Redis instance a copy of
|
@@ -106,12 +111,15 @@ dir <%= rubber_env.redis_db_dir %>
|
|
106
111
|
#
|
107
112
|
# slaveof <masterip> <masterport>
|
108
113
|
|
114
|
+
slaveof <%= redis_master.name %> 6379
|
115
|
+
|
109
116
|
# If the master is password protected (using the "requirepass" configuration
|
110
117
|
# directive below) it is possible to tell the slave to authenticate before
|
111
118
|
# starting the replication synchronization process, otherwise the master will
|
112
119
|
# refuse the slave request.
|
113
120
|
#
|
114
121
|
# masterauth <master-password>
|
122
|
+
<%- end %>
|
115
123
|
|
116
124
|
################################## SECURITY ###################################
|
117
125
|
|
data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-resque_web.conf'
|
3
3
|
|
4
|
-
|
5
|
-
start_program = "HOME=/root resque-web --pid-file #{
|
6
|
-
stop_program = "HOME=/root resque-web --pid-file #{
|
4
|
+
pidfile = "/var/run/resque_web.pid"
|
5
|
+
start_program = "HOME=/root resque-web --pid-file #{pidfile} --port #{rubber_env.resque_web_port} --no-launch #{RUBBER_ROOT}/config/initializers/resque.rb"
|
6
|
+
stop_program = "HOME=/root resque-web --pid-file #{pidfile} --kill"
|
7
7
|
%>
|
8
8
|
|
9
|
-
check process resque_web with pidfile <%=
|
9
|
+
check process resque_web with pidfile <%= pidfile %>
|
10
10
|
group resque_web
|
11
11
|
start program = "/bin/bash -l -c '<%= start_program %>'"
|
12
12
|
stop program = "/bin/bash -l -c '<%= stop_program %>'"
|
@@ -4,13 +4,13 @@
|
|
4
4
|
|
5
5
|
<% rubber_env.resque_workers.each_with_index do |worker, i| %>
|
6
6
|
<%
|
7
|
-
|
7
|
+
pidfile = "#{RUBBER_ROOT}/tmp/pids/resque_worker_#{i}.pid"
|
8
8
|
|
9
9
|
start_program = "/usr/bin/sudo -H -u #{rubber_env.app_user} bash -l -c 'cd #{RUBBER_ROOT} && ./script/resque_worker_management.rb start #{i}'"
|
10
10
|
stop_program = "/usr/bin/sudo -H -u #{rubber_env.app_user} bash -l -c 'cd #{RUBBER_ROOT} && ./script/resque_worker_management.rb stop #{i} TERM'"
|
11
11
|
%>
|
12
12
|
|
13
|
-
check process resque_worker_<%= i %> with pidfile <%=
|
13
|
+
check process resque_worker_<%= i %> with pidfile <%= pidfile %>
|
14
14
|
group resque_worker
|
15
15
|
start program = "<%= start_program %>"
|
16
16
|
stop program = "<%= stop_program %>"
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/monit/monit.d/monit-sphinx.conf'
|
3
3
|
|
4
|
-
|
4
|
+
pidfile = "#{RUBBER_ROOT}/log/searchd.#{RUBBER_ENV}.pid"
|
5
5
|
start_program = "cd #{RUBBER_ROOT} && rake ts:start"
|
6
6
|
stop_program = "cd #{RUBBER_ROOT} && rake ts:stop"
|
7
7
|
%>
|
8
8
|
|
9
|
-
check process sphinx with pidfile <%=
|
9
|
+
check process sphinx with pidfile <%= pidfile %>
|
10
10
|
group sphinx-<%= RUBBER_ENV %>
|
11
11
|
start program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> bash -l -c '<%= start_program %>'"
|
12
12
|
stop program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> bash -l -c '<%= stop_program %>'"
|
data/lib/rubber/cloud/aws.rb
CHANGED
@@ -243,11 +243,13 @@ module Rubber
|
|
243
243
|
export RUBYLIB=/usr/lib/site_ruby/
|
244
244
|
unset RUBYOPT
|
245
245
|
nohup ec2-bundle-vol --batch -d /mnt -k #{ec2_pk_dest} -c #{ec2_cert_dest} -u #{@aws_env.account} -p #{image_name} -r #{arch} &> /tmp/ec2-bundle-vol.log &
|
246
|
+
sleep 1
|
247
|
+
|
246
248
|
echo "Creating image from instance volume..."
|
247
249
|
while true; do
|
248
250
|
if ! ps ax | grep -q "[e]c2-bundle-vol"; then exit; fi
|
249
251
|
echo -n .
|
250
|
-
sleep
|
252
|
+
sleep 5
|
251
253
|
done
|
252
254
|
CMD
|
253
255
|
|
data/lib/rubber/instance.rb
CHANGED
@@ -14,9 +14,14 @@ module Rubber
|
|
14
14
|
@file = file
|
15
15
|
@items = {}
|
16
16
|
@artifacts = {'volumes' => {}, 'static_ips' => {}}
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
|
18
|
+
@filters = ENV['FILTER'].split(/\s*,\s*/) rescue []
|
19
|
+
@filters, @filters_negated = @filters.partition {|f| f !~ /^-/ }
|
20
|
+
@filters_negated = @filters_negated.collect {|f| f[1..-1] }
|
21
|
+
|
22
|
+
@filter_roles = ENV['FILTER_ROLES'].split(/\s*,\s*/) rescue []
|
23
|
+
@filter_roles, @filter_roles_negated = @filter_roles.partition {|f| f !~ /^-/ }
|
24
|
+
@filter_roles_negated = @filter_roles_negated.collect {|f| f[1..-1] }
|
20
25
|
|
21
26
|
if File.exist?(@file)
|
22
27
|
item_list = File.open(@file) { |f| YAML.load(f) }
|
@@ -50,7 +55,21 @@ module Rubber
|
|
50
55
|
end
|
51
56
|
|
52
57
|
def filtered()
|
53
|
-
|
58
|
+
filtered_results = []
|
59
|
+
|
60
|
+
if @filters.size == 0 && @filter_roles.size == 0
|
61
|
+
filtered_results.concat(@items.values)
|
62
|
+
else
|
63
|
+
@items.values.each do |ic|
|
64
|
+
filtered_results << ic if @filters.include?(ic.name)
|
65
|
+
filtered_results << ic if ic.roles.any? {|r| @filter_roles.include?(r.name)}
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
filtered_results.delete_if {|ic| @filters_negated.include?(ic.name) }
|
70
|
+
filtered_results.delete_if {|ic| ic.roles.any? {|r| @filter_roles_negated.include?(r.name)} }
|
71
|
+
|
72
|
+
return filtered_results
|
54
73
|
end
|
55
74
|
|
56
75
|
def all_roles()
|
@@ -134,7 +134,14 @@ namespace :rubber do
|
|
134
134
|
# logger.debug "Rule in sync: #{rule_map.inspect}"
|
135
135
|
else
|
136
136
|
# rules don't match, remove them from cloud and re-add below
|
137
|
-
answer =
|
137
|
+
answer = nil
|
138
|
+
msg = "Rule '#{rule_map.inspect}' exists in cloud, but not locally"
|
139
|
+
if rubber_env.prompt_for_security_group_sync
|
140
|
+
answer = Capistrano::CLI.ui.ask("#{msg}, remove from cloud? [y/N]: ")
|
141
|
+
else
|
142
|
+
logger.info(msg)
|
143
|
+
end
|
144
|
+
|
138
145
|
rule_map = Rubber::Util::symbolize_keys(rule_map)
|
139
146
|
if rule_map[:source_group_name]
|
140
147
|
cloud.remove_security_group_rule(group_name, nil, nil, nil, {:name => rule_map[:source_group_name], :account => rule_map[:source_group_account]})
|
@@ -160,7 +167,13 @@ namespace :rubber do
|
|
160
167
|
end
|
161
168
|
else
|
162
169
|
# delete group
|
163
|
-
answer =
|
170
|
+
answer = nil
|
171
|
+
msg = "Security group '#{group_name}' exists in cloud but not locally"
|
172
|
+
if rubber_env.prompt_for_security_group_sync
|
173
|
+
answer = Capistrano::CLI.ui.ask("#{msg}, remove from cloud? [y/N]: ")
|
174
|
+
else
|
175
|
+
logger.debug(msg)
|
176
|
+
end
|
164
177
|
cloud.destroy_security_group(group_name) if answer =~ /^y/
|
165
178
|
end
|
166
179
|
end
|
@@ -183,14 +183,15 @@ namespace :rubber do
|
|
183
183
|
task :_zero_partitions, :hosts => ic.external_ip do
|
184
184
|
rubber.sudo_script 'zero_partitions', <<-ENDSCRIPT
|
185
185
|
# zero out parition for performance (see amazon DevGuide)
|
186
|
-
echo "Zeroing out raid partitions to improve performance, this
|
186
|
+
echo "Zeroing out raid partitions to improve performance, this may take a while"
|
187
187
|
#{zero_script}
|
188
|
+
sleep 1
|
188
189
|
|
189
190
|
echo "Waiting for partitions to zero out"
|
190
191
|
while true; do
|
191
192
|
if ! ps ax | grep -q "[d]d.*/dev/zero"; then exit; fi
|
192
193
|
echo -n .
|
193
|
-
sleep
|
194
|
+
sleep 5
|
194
195
|
done
|
195
196
|
ENDSCRIPT
|
196
197
|
end
|
data/test/environment_test.rb
CHANGED
@@ -127,18 +127,11 @@ class EnvironmentTest < Test::Unit::TestCase
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def test_instances_in_expansion
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
File.expects(:exist?).returns(true)
|
136
|
-
YAML.expects(:load_file).returns({'var1' =>'"#{rubber_instances.for_role("role1").first.external_ip}"'})
|
137
|
-
Rubber::Configuration.expects(:rubber_instances).returns(instances)
|
138
|
-
env = Rubber::Configuration::Environment.new(nil)
|
139
|
-
e = env.bind()
|
140
|
-
|
141
|
-
assert_equal "\"1.2.3.4\"", e['var1']
|
130
|
+
config = Rubber::Configuration::get_configuration('test', "#{File.dirname(__FILE__)}/fixtures/instance_expansion")
|
131
|
+
config.environment
|
132
|
+
e = config.environment.bind()
|
133
|
+
e.stubs(:rubber_instances).returns(config.instance)
|
134
|
+
assert_equal "50.1.1.1", e['var1']
|
142
135
|
end
|
143
136
|
|
144
137
|
end
|
data/test/instance_test.rb
CHANGED
@@ -25,9 +25,16 @@ class InstanceTest < Test::Unit::TestCase
|
|
25
25
|
assert_equal @i4, @instance.for_role('role2', 'primary' => true).first, 'not finding correct instances for role'
|
26
26
|
end
|
27
27
|
|
28
|
+
def test_unfiltered
|
29
|
+
ENV['FILTER'] = nil
|
30
|
+
ENV['FILTER_ROLES'] = nil
|
31
|
+
setup
|
32
|
+
assert_equal 4, @instance.filtered().size, 'should not filter for empty FILTER(_ROLES)'
|
33
|
+
end
|
34
|
+
|
35
|
+
|
28
36
|
def test_filtered
|
29
|
-
|
30
|
-
|
37
|
+
ENV['FILTER_ROLES'] = nil
|
31
38
|
ENV['FILTER'] = 'host1'
|
32
39
|
setup
|
33
40
|
assert_equal [@i1], @instance.filtered(), 'should have only filtered host'
|
@@ -35,7 +42,34 @@ class InstanceTest < Test::Unit::TestCase
|
|
35
42
|
ENV['FILTER'] = 'host2 , host4'
|
36
43
|
setup
|
37
44
|
assert_equal [@i2, @i4], @instance.filtered(), 'should have only filtered hosts'
|
38
|
-
|
45
|
+
|
46
|
+
ENV['FILTER'] = '-host2'
|
47
|
+
setup
|
48
|
+
assert_equal [@i1, @i3, @i4], @instance.filtered(), 'should not have negated hosts'
|
49
|
+
|
50
|
+
ENV['FILTER'] = 'host1,host2,-host2'
|
51
|
+
setup
|
52
|
+
assert_equal [@i1], @instance.filtered(), 'should not have negated hosts'
|
53
|
+
|
54
|
+
ENV['FILTER'] = '-host1'
|
55
|
+
ENV['FILTER_ROLES'] = 'role1'
|
56
|
+
setup
|
57
|
+
assert_equal [@i2], @instance.filtered(), 'should not have negated roles'
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_filtered_roles
|
61
|
+
ENV['FILTER'] = nil
|
62
|
+
ENV['FILTER_ROLES'] = 'role1'
|
63
|
+
setup
|
64
|
+
assert_equal [@i1, @i2], @instance.filtered(), 'should have only filtered roles'
|
65
|
+
|
66
|
+
ENV['FILTER_ROLES'] = 'role1 , role2'
|
67
|
+
setup
|
68
|
+
assert_equal [@i1, @i2, @i3, @i4], @instance.filtered(), 'should have only filtered roles'
|
69
|
+
|
70
|
+
ENV['FILTER_ROLES'] = '-role1'
|
71
|
+
setup
|
72
|
+
assert_equal [@i3, @i4], @instance.filtered(), 'should not have negated roles'
|
39
73
|
end
|
40
74
|
|
41
75
|
def test_equality
|
data/test/zerigo_test.rb
CHANGED
@@ -13,7 +13,7 @@ class ZerigoTest < Test::Unit::TestCase
|
|
13
13
|
env = Rubber::Configuration::Environment::BoundEnv.new({'dns_providers' => {'zerigo' => {'email' => 'foo@bar.com', 'token' => 'testtoken'}}}, nil, nil)
|
14
14
|
@dns = Rubber::Dns::Zerigo.new(env)
|
15
15
|
FakeWeb.register_uri(:get,
|
16
|
-
"
|
16
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/zones.xml",
|
17
17
|
:body => fakeweb_fixture('zerigo/get_zones.xml'))
|
18
18
|
@domain = "example1.com"
|
19
19
|
@zone = ::Zerigo::DNS::Zone.find_or_create(@domain)
|
@@ -22,7 +22,7 @@ class ZerigoTest < Test::Unit::TestCase
|
|
22
22
|
def test_find_records
|
23
23
|
hosts_xml = fakeweb_fixture('zerigo/get_hosts.xml')
|
24
24
|
FakeWeb.register_uri(:get,
|
25
|
-
"
|
25
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts.xml?zone_id=1",
|
26
26
|
:body => hosts_xml)
|
27
27
|
records = @dns.find_host_records(:host => '*', :domain => 'example1.com')
|
28
28
|
assert_equal 2, records.size
|
@@ -32,7 +32,7 @@ class ZerigoTest < Test::Unit::TestCase
|
|
32
32
|
doc.root.elements.delete(1)
|
33
33
|
hosts_xml_single = doc.to_s
|
34
34
|
FakeWeb.register_uri(:get,
|
35
|
-
"
|
35
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts.xml?fqdn=example1.com&zone_id=1",
|
36
36
|
:body => hosts_xml_single)
|
37
37
|
records = @dns.find_host_records(:host => '', :domain => 'example1.com')
|
38
38
|
assert_equal 1, records.size
|
@@ -42,7 +42,7 @@ class ZerigoTest < Test::Unit::TestCase
|
|
42
42
|
doc.root.elements.delete(2)
|
43
43
|
hosts_xml_single = doc.to_s
|
44
44
|
FakeWeb.register_uri(:get,
|
45
|
-
"
|
45
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts.xml?fqdn=host1.example1.com&zone_id=1",
|
46
46
|
:body => hosts_xml_single)
|
47
47
|
records = @dns.find_host_records(:host => 'host1', :domain => 'example1.com')
|
48
48
|
assert_equal 1, records.size
|
@@ -62,10 +62,10 @@ class ZerigoTest < Test::Unit::TestCase
|
|
62
62
|
params = {:host => 'host1', :domain => 'example1.com'}
|
63
63
|
|
64
64
|
FakeWeb.register_uri(:get,
|
65
|
-
"
|
65
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts.xml?fqdn=host1.example1.com&zone_id=1",
|
66
66
|
:body => fakeweb_fixture('zerigo/host1.xml'))
|
67
67
|
FakeWeb.register_uri(:delete,
|
68
|
-
"
|
68
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts/1.xml",
|
69
69
|
:body => "")
|
70
70
|
|
71
71
|
@dns.destroy_host_record(params)
|
@@ -76,10 +76,10 @@ class ZerigoTest < Test::Unit::TestCase
|
|
76
76
|
new = {:host => 'host1', :domain => 'example1.com', :data => "1.1.1.2"}
|
77
77
|
|
78
78
|
FakeWeb.register_uri(:get,
|
79
|
-
"
|
79
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts.xml?fqdn=host1.example1.com&zone_id=1",
|
80
80
|
:body => fakeweb_fixture('zerigo/host1.xml'))
|
81
81
|
FakeWeb.register_uri(:post,
|
82
|
-
"
|
82
|
+
"https://foo%40bar.com:testtoken@ns.zerigo.com/api/1.1/hosts/1.xml",
|
83
83
|
:body => "")
|
84
84
|
|
85
85
|
@dns.update_host_record(params, new)
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 9
|
9
|
-
- 1
|
10
|
-
version: 1.9.1
|
4
|
+
prerelease:
|
5
|
+
version: 1.10.1
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Matt Conway
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
13
|
+
date: 2011-02-17 00:00:00 -05:00
|
19
14
|
default_executable: vulcanize
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,11 +21,6 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 31
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 4
|
33
|
-
- 0
|
34
24
|
version: 2.4.0
|
35
25
|
type: :runtime
|
36
26
|
version_requirements: *id001
|
@@ -42,11 +32,6 @@ dependencies:
|
|
42
32
|
requirements:
|
43
33
|
- - ">="
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 25
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 9
|
49
|
-
- 17
|
50
35
|
version: 0.9.17
|
51
36
|
type: :runtime
|
52
37
|
version_requirements: *id002
|
@@ -58,9 +43,6 @@ dependencies:
|
|
58
43
|
requirements:
|
59
44
|
- - ">="
|
60
45
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 3
|
62
|
-
segments:
|
63
|
-
- 0
|
64
46
|
version: "0"
|
65
47
|
type: :runtime
|
66
48
|
version_requirements: *id003
|
@@ -72,9 +54,6 @@ dependencies:
|
|
72
54
|
requirements:
|
73
55
|
- - ">="
|
74
56
|
- !ruby/object:Gem::Version
|
75
|
-
hash: 3
|
76
|
-
segments:
|
77
|
-
- 0
|
78
57
|
version: "0"
|
79
58
|
type: :runtime
|
80
59
|
version_requirements: *id004
|
@@ -249,6 +228,7 @@ files:
|
|
249
228
|
- generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb
|
250
229
|
- generators/vulcanize/templates/redis/config/rubber/role/redis/crontab
|
251
230
|
- generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf
|
231
|
+
- generators/vulcanize/templates/redis/config/rubber/role/redis/redis-sysctl.conf
|
252
232
|
- generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf
|
253
233
|
- generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml
|
254
234
|
- generators/vulcanize/templates/redis/templates.yml
|
@@ -424,6 +404,7 @@ files:
|
|
424
404
|
- lib/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb
|
425
405
|
- lib/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab
|
426
406
|
- lib/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf
|
407
|
+
- lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis-sysctl.conf
|
427
408
|
- lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf
|
428
409
|
- lib/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml
|
429
410
|
- lib/generators/vulcanize/templates/redis/templates.yml
|
@@ -484,20 +465,14 @@ has_rdoc: true
|
|
484
465
|
homepage: http://github.com/wr0ngway/rubber
|
485
466
|
licenses: []
|
486
467
|
|
487
|
-
post_install_message:
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
make the necessary configuration changes:
|
496
|
-
|
497
|
-
http://wiki.github.com/wr0ngway/rubber/upgrading
|
498
|
-
|
499
|
-
********************************************************************************
|
500
|
-
|
468
|
+
post_install_message: "\n\
|
469
|
+
********************************************************************************\n\n\
|
470
|
+
Thank you for installing rubber. Please note that this is a major upgrade\n\
|
471
|
+
and we've moved towards using RVM for Ruby configuration on your EC2 instances.\n\n\
|
472
|
+
If you're upgrading rubber, please make sure to read the upgrade notes and\n\
|
473
|
+
make the necessary configuration changes:\n\n\
|
474
|
+
http://wiki.github.com/wr0ngway/rubber/upgrading\n\n\
|
475
|
+
********************************************************************************\n\n"
|
501
476
|
rdoc_options: []
|
502
477
|
|
503
478
|
require_paths:
|
@@ -507,23 +482,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
507
482
|
requirements:
|
508
483
|
- - ">="
|
509
484
|
- !ruby/object:Gem::Version
|
510
|
-
hash: 3
|
511
|
-
segments:
|
512
|
-
- 0
|
513
485
|
version: "0"
|
514
486
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
515
487
|
none: false
|
516
488
|
requirements:
|
517
489
|
- - ">="
|
518
490
|
- !ruby/object:Gem::Version
|
519
|
-
hash: 3
|
520
|
-
segments:
|
521
|
-
- 0
|
522
491
|
version: "0"
|
523
492
|
requirements: []
|
524
493
|
|
525
494
|
rubyforge_project: rubber
|
526
|
-
rubygems_version: 1.
|
495
|
+
rubygems_version: 1.5.2
|
527
496
|
signing_key:
|
528
497
|
specification_version: 3
|
529
498
|
summary: A capistrano plugin for managing multi-instance deployments to the cloud (ec2)
|