rubber 2.0.0.pre6 → 2.0.0.pre7
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/lib/rubber/version.rb +1 -1
- data/rubber.gemspec +2 -2
- data/templates/base/config/deploy.rb +22 -1
- data/templates/base/config/rubber/deploy-setup.rb +1 -1
- data/templates/collectd/config/rubber/role/collectd/collectd-ping.conf +21 -0
- data/templates/collectd/config/rubber/role/collectd/collectd.conf +0 -22
- data/templates/collectd/script/collectd/role/{resque_worker → web_tools}/global_worker_stats.rb +1 -1
- data/templates/collectd/script/collectd/role/{resque_worker → web_tools}/resque_jobs_processed.rb +0 -0
- data/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +6 -0
- data/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +1 -0
- data/templates/postgresql/config/rubber/role/db/postgresql.conf +1 -1
- data/templates/postgresql/config/rubber/rubber-postgresql.yml +1 -1
- data/templates/resque/config/rubber/rubber-resque.yml +0 -8
- metadata +66 -32
- data/templates/graphite/config/rubber/role/graphite_server/graphite-collectd-ping.conf +0 -11
data/lib/rubber/version.rb
CHANGED
data/rubber.gemspec
CHANGED
@@ -28,11 +28,11 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
29
29
|
s.require_paths = ["lib"]
|
30
30
|
|
31
|
-
s.add_dependency 'capistrano', '
|
31
|
+
s.add_dependency 'capistrano', '~> 2.8'
|
32
32
|
s.add_dependency 'thor'
|
33
33
|
s.add_dependency 'clamp'
|
34
34
|
s.add_dependency 'open4'
|
35
|
-
s.add_dependency 'fog', '
|
35
|
+
s.add_dependency 'fog', '~> 1.2'
|
36
36
|
|
37
37
|
s.add_development_dependency('rake')
|
38
38
|
s.add_development_dependency('test-unit')
|
@@ -33,6 +33,15 @@ set :keep_releases, 3
|
|
33
33
|
# the safety of forcing it to be checked in for production.
|
34
34
|
set :push_instance_config, Rubber.env != 'production'
|
35
35
|
|
36
|
+
# don't waste time bundling gems that don't need to be there
|
37
|
+
set :bundle_without, [:development, :test, :staging] if Rubber.env == 'production'
|
38
|
+
|
39
|
+
# Allow us to do N hosts at a time for all tasks - useful when trying
|
40
|
+
# to figure out which host in a large set is down:
|
41
|
+
# RUBBER_ENV=production MAX_HOSTS=1 cap invoke COMMAND=hostname
|
42
|
+
max_hosts = ENV['MAX_HOSTS'].to_i
|
43
|
+
default_run_options[:max_hosts] = max_hosts if max_hosts > 0
|
44
|
+
|
36
45
|
# Allows the tasks defined to fail gracefully if there are no hosts for them.
|
37
46
|
# Comment out or use "required_task" for default cap behavior of a hard failure
|
38
47
|
rubber.allow_optional_tasks(self)
|
@@ -65,7 +74,19 @@ Dir["#{File.dirname(__FILE__)}/rubber/deploy-*.rb"].each do |deploy_file|
|
|
65
74
|
load deploy_file
|
66
75
|
end
|
67
76
|
|
68
|
-
|
77
|
+
# capistrano's deploy:cleanup doesn't play well with FILTER
|
78
|
+
after "deploy", "cleanup"
|
79
|
+
after "deploy:migrations", "cleanup"
|
80
|
+
task :cleanup, :except => { :no_release => true } do
|
81
|
+
count = fetch(:keep_releases, 5).to_i
|
82
|
+
|
83
|
+
rsudo <<-CMD
|
84
|
+
all=$(ls -x1 #{releases_path} | sort -n);
|
85
|
+
keep=$(ls -x1 #{releases_path} | sort -n | tail -n #{count});
|
86
|
+
remove=$(comm -23 <(echo -e "$all") <(echo -e "$keep"));
|
87
|
+
for r in $remove; do rm -rf #{releases_path}/$r; done;
|
88
|
+
CMD
|
89
|
+
end
|
69
90
|
|
70
91
|
if Rubber::Util.has_asset_pipeline?
|
71
92
|
# load asset pipeline tasks, and reorder them to run after
|
@@ -75,7 +75,7 @@ namespace :rubber do
|
|
75
75
|
if [[ "#{repository}" =~ "@" ]]; then
|
76
76
|
# Get host key for src machine to prevent ssh from failing
|
77
77
|
rm -f ~/.ssh/known_hosts
|
78
|
-
|
78
|
+
ssh -o 'StrictHostKeyChecking=no' #{repository.gsub(/:.*/, '')} &> /dev/null || true
|
79
79
|
fi
|
80
80
|
ENDSCRIPT
|
81
81
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<%
|
2
|
+
@path = '/etc/collectd/conf.d/collectd-ping.conf'
|
3
|
+
|
4
|
+
ping_hosts = []
|
5
|
+
if rubber_instances[rubber_env.host].role_names.include?('graphite_server')
|
6
|
+
# monitor all servers from graphite_server
|
7
|
+
ping_hosts = rubber_instances.collect {|ic| ic.full_name }.select {|h| h != rubber_env.full_host }
|
8
|
+
elsif rubber_instances[rubber_env.host].role_names.include?('web_tools')
|
9
|
+
# monitor just graphite_server from tools
|
10
|
+
ping_hosts = [rubber_instances.for_role('graphite_server').first.full_name]
|
11
|
+
end
|
12
|
+
|
13
|
+
@skip = (ping_hosts.size == 0)
|
14
|
+
%>
|
15
|
+
|
16
|
+
LoadPlugin ping
|
17
|
+
<Plugin "ping">
|
18
|
+
<% ping_hosts.each do |h| %>
|
19
|
+
Host "<%= h %>"
|
20
|
+
<% end %>
|
21
|
+
</Plugin>
|
@@ -64,28 +64,6 @@ LoadPlugin notify_email
|
|
64
64
|
|
65
65
|
<% end %>
|
66
66
|
|
67
|
-
<%
|
68
|
-
ping_hosts = []
|
69
|
-
if rubber_instances[rubber_env.host].role_names.include?('graphite_server')
|
70
|
-
# monitor all servers from graphite_server
|
71
|
-
ping_hosts = rubber_instances.collect {|ic| ic.full_name }.select {|h| h != rubber_env.full_host }
|
72
|
-
elsif rubber_instances[rubber_env.host].role_names.include?('web_tools')
|
73
|
-
# monitor just graphite_server from tools
|
74
|
-
ping_hosts = [rubber_instances.for_role('graphite_server').first.full_name]
|
75
|
-
end
|
76
|
-
%>
|
77
|
-
|
78
|
-
<% if ping_hosts.size > 0 %>
|
79
|
-
|
80
|
-
LoadPlugin ping
|
81
|
-
<Plugin "ping">
|
82
|
-
<% ping_hosts.each do |h| %>
|
83
|
-
Host "<%= h %>"
|
84
|
-
<% end %>
|
85
|
-
</Plugin>
|
86
|
-
|
87
|
-
<% end %>
|
88
|
-
|
89
67
|
Include "/etc/collectd/conf.d/*.conf"
|
90
68
|
Include "/etc/collectd/thresholds.d/*.conf"
|
91
69
|
Include "/etc/collectd/filters.d/*.conf"
|
data/templates/collectd/script/collectd/role/{resque_worker → web_tools}/global_worker_stats.rb
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "resque"
|
2
2
|
|
3
|
-
redis_server = Rubber.instances.for_role('
|
3
|
+
redis_server = Rubber.instances.for_role('redis_master').first.full_name rescue nil
|
4
4
|
redis_server ||= 'localhost' if Rubber.env == 'development'
|
5
5
|
Resque.redis = "#{redis_server}:6379"
|
6
6
|
|
data/templates/collectd/script/collectd/role/{resque_worker → web_tools}/resque_jobs_processed.rb
RENAMED
File without changes
|
@@ -18,6 +18,9 @@ Listen <%= port %>
|
|
18
18
|
|
19
19
|
SetEnvIf User-Agent "^(.*MSIE.*)|(.*AppleWebKit.*)$" nokeepalive
|
20
20
|
|
21
|
+
# Don't show haproxy checks in access log (see also apache2.conf)
|
22
|
+
SetEnvIf Request_URI "^/httpchk.txt$" dontlog
|
23
|
+
|
21
24
|
RailsEnv <%= Rubber.env %>
|
22
25
|
|
23
26
|
XSendFile on
|
@@ -74,6 +77,9 @@ Listen <%= port %>
|
|
74
77
|
# SSLCertificateFile <%= Rubber.root %>/config/<%= rubber_env.domain %>.crt
|
75
78
|
# SSLCertificateKeyFile <%= Rubber.root %>/config/<%= rubber_env.domain %>.key
|
76
79
|
# SSLCertificateChainFile /etc/ssl/certs/gd_intermediate_bundle.crt
|
80
|
+
|
81
|
+
SSLHonorCipherOrder On
|
82
|
+
SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM
|
77
83
|
<% end %>
|
78
84
|
|
79
85
|
</VirtualHost>
|
@@ -489,7 +489,7 @@ autovacuum = on # Enable autovacuum subprocess? 'on'
|
|
489
489
|
#statement_timeout = 0 # in milliseconds, 0 is disabled
|
490
490
|
#vacuum_freeze_min_age = 50000000
|
491
491
|
#vacuum_freeze_table_age = 150000000
|
492
|
-
bytea_output = 'hex' # hex, escape
|
492
|
+
#bytea_output = 'hex' # hex, escape
|
493
493
|
#xmlbinary = 'base64'
|
494
494
|
#xmloption = 'content'
|
495
495
|
|
@@ -10,7 +10,7 @@ postgresql_synchronous_replication: false
|
|
10
10
|
|
11
11
|
# REQUIRED: The command to use to do a full backup of your database using
|
12
12
|
# "rubber util:backup_db"
|
13
|
-
db_backup_cmd: "nice sudo -u postgres pg_dumpall -U postgres | gzip -c > %backup_file%"
|
13
|
+
db_backup_cmd: "set -e -o pipefail; nice sudo -u postgres pg_dumpall -U postgres | gzip -c > %backup_file%"
|
14
14
|
|
15
15
|
# REQUIRED: The command to use to restore the database using
|
16
16
|
# "rake util:restore_db"
|
@@ -7,14 +7,6 @@ resque_pool_pid_file: /var/run/resque-pool.pid
|
|
7
7
|
#
|
8
8
|
resque_worker_count: "#{Rubber.env == 'production' ? 4 : 2}"
|
9
9
|
|
10
|
-
resque_workers:
|
11
|
-
-
|
12
|
-
queues: "*"
|
13
|
-
poll_interval: 1
|
14
|
-
-
|
15
|
-
queues: "*"
|
16
|
-
poll_interval: 1
|
17
|
-
|
18
10
|
gems: [yajl-ruby, resque, resque-pool]
|
19
11
|
|
20
12
|
web_tools_proxies:
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.pre7
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,22 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-03-
|
13
|
+
date: 2012-03-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: capistrano
|
17
|
-
requirement: &
|
17
|
+
requirement: &70150988668160 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.8
|
22
|
+
version: '2.8'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70150988668160
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: thor
|
28
|
-
requirement: &
|
28
|
+
requirement: &70150988678560 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70150988678560
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: clamp
|
39
|
-
requirement: &
|
39
|
+
requirement: &70150988675800 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70150988675800
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: open4
|
50
|
-
requirement: &
|
50
|
+
requirement: &70150988673100 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,21 +55,21 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70150988673100
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: fog
|
61
|
-
requirement: &
|
61
|
+
requirement: &70150988696320 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
|
-
- -
|
64
|
+
- - ~>
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 1.
|
66
|
+
version: '1.2'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70150988696320
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rake
|
72
|
-
requirement: &
|
72
|
+
requirement: &70150988688640 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70150988688640
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: test-unit
|
83
|
-
requirement: &
|
83
|
+
requirement: &70150988696640 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70150988696640
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: shoulda-context
|
94
|
-
requirement: &
|
94
|
+
requirement: &70150988741240 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70150988741240
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: mocha
|
105
|
-
requirement: &
|
105
|
+
requirement: &70150988739720 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70150988739720
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: ruby-debug19
|
116
|
-
requirement: &
|
116
|
+
requirement: &70150988755820 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *70150988755820
|
125
125
|
description: ! " The rubber plugin enables relatively complex multi-instance deployments
|
126
126
|
of RubyOnRails applications to\n Amazon's Elastic Compute Cloud (EC2). Like
|
127
127
|
capistrano, rubber is role based, so you can define a set\n of configuration
|
@@ -221,6 +221,7 @@ files:
|
|
221
221
|
- templates/cassandra/config/rubber/rubber-cassandra.yml
|
222
222
|
- templates/cassandra/templates.yml
|
223
223
|
- templates/collectd/config/rubber/deploy-collectd.rb
|
224
|
+
- templates/collectd/config/rubber/role/collectd/collectd-ping.conf
|
224
225
|
- templates/collectd/config/rubber/role/collectd/collectd.conf
|
225
226
|
- templates/collectd/config/rubber/role/collectd/filters.conf
|
226
227
|
- templates/collectd/config/rubber/role/collectd/thresholds.conf
|
@@ -236,9 +237,9 @@ files:
|
|
236
237
|
- templates/collectd/script/collectd/role/examples/example_simple.rb
|
237
238
|
- templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
|
238
239
|
- templates/collectd/script/collectd/role/redis/redis_info.rb
|
239
|
-
- templates/collectd/script/collectd/role/resque_worker/global_worker_stats.rb
|
240
240
|
- templates/collectd/script/collectd/role/resque_worker/host_worker_stats.rb
|
241
|
-
- templates/collectd/script/collectd/role/
|
241
|
+
- templates/collectd/script/collectd/role/web_tools/global_worker_stats.rb
|
242
|
+
- templates/collectd/script/collectd/role/web_tools/resque_jobs_processed.rb
|
242
243
|
- templates/collectd/templates.yml
|
243
244
|
- templates/complete_mongrel_mysql/config/rubber/role/haproxy/haproxy-mongrel.conf
|
244
245
|
- templates/complete_mongrel_mysql/config/rubber/role/nginx/nginx-mongrel.conf
|
@@ -273,7 +274,6 @@ files:
|
|
273
274
|
- templates/graphite/config/rubber/deploy-graphite.rb
|
274
275
|
- templates/graphite/config/rubber/role/collectd/graphite-collectd.conf
|
275
276
|
- templates/graphite/config/rubber/role/graphite_server/carbon.conf
|
276
|
-
- templates/graphite/config/rubber/role/graphite_server/graphite-collectd-ping.conf
|
277
277
|
- templates/graphite/config/rubber/role/graphite_server/graphite_server-upstart.conf
|
278
278
|
- templates/graphite/config/rubber/role/graphite_server/storage-schemas.conf
|
279
279
|
- templates/graphite/config/rubber/role/graphite_web/crontab
|
@@ -506,7 +506,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
506
506
|
version: '0'
|
507
507
|
segments:
|
508
508
|
- 0
|
509
|
-
hash: -
|
509
|
+
hash: -4342084380980422767
|
510
510
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
511
511
|
none: false
|
512
512
|
requirements:
|
@@ -515,9 +515,43 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
515
515
|
version: 1.3.1
|
516
516
|
requirements: []
|
517
517
|
rubyforge_project: rubber
|
518
|
-
rubygems_version: 1.8.
|
518
|
+
rubygems_version: 1.8.15
|
519
519
|
signing_key:
|
520
520
|
specification_version: 3
|
521
521
|
summary: A capistrano plugin for managing multi-instance deployments to the cloud
|
522
522
|
(ec2)
|
523
|
-
test_files:
|
523
|
+
test_files:
|
524
|
+
- test/cloud/aws_table_store_test.rb
|
525
|
+
- test/cloud/aws_test.rb
|
526
|
+
- test/cloud/fog_storage_test.rb
|
527
|
+
- test/cloud/fog_test.rb
|
528
|
+
- test/command_test.rb
|
529
|
+
- test/dns/fog_test.rb
|
530
|
+
- test/environment_test.rb
|
531
|
+
- test/fixtures/basic/common/bar.conf
|
532
|
+
- test/fixtures/basic/common/foo.conf
|
533
|
+
- test/fixtures/basic/host/host1/foo.conf
|
534
|
+
- test/fixtures/basic/host/host2/foo.conf
|
535
|
+
- test/fixtures/basic/role/role1/foo.conf
|
536
|
+
- test/fixtures/basic/role/role2/foo.conf
|
537
|
+
- test/fixtures/basic/rubber-extra.yml
|
538
|
+
- test/fixtures/basic/rubber.yml
|
539
|
+
- test/fixtures/expansion/rubber.yml
|
540
|
+
- test/fixtures/generator_order/common/a_first.conf
|
541
|
+
- test/fixtures/generator_order/common/z_last.conf
|
542
|
+
- test/fixtures/generator_order/host/host1/a_first.conf
|
543
|
+
- test/fixtures/generator_order/host/host1/z_last.conf
|
544
|
+
- test/fixtures/generator_order/role/role1/a_first.conf
|
545
|
+
- test/fixtures/generator_order/role/role1/z_last.conf
|
546
|
+
- test/fixtures/generator_order/role/role2/a_first.conf
|
547
|
+
- test/fixtures/generator_order/role/role2/z_last.conf
|
548
|
+
- test/fixtures/instance_expansion/instance-test.yml
|
549
|
+
- test/fixtures/instance_expansion/rubber.yml
|
550
|
+
- test/fixtures/nested/rubber.yml
|
551
|
+
- test/fixtures/secret/rubber.yml
|
552
|
+
- test/fixtures/secret/secret.yml
|
553
|
+
- test/generator_test.rb
|
554
|
+
- test/instance_test.rb
|
555
|
+
- test/test-rails-template.rb
|
556
|
+
- test/test_helper.rb
|
557
|
+
- test/util_test.rb
|