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.
@@ -1,4 +1,4 @@
1
1
  module Rubber
2
- VERSION = "2.0.0.pre6"
2
+ VERSION = "2.0.0.pre7"
3
3
  end
4
4
 
@@ -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', '>= 2.8.0'
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', '>= 1.0.0'
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
- after "deploy", "deploy:cleanup"
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
- ! ssh -o 'StrictHostKeyChecking=no' #{repository.gsub(/:.*/, '')} &> /dev/null
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"
@@ -1,6 +1,6 @@
1
1
  require "resque"
2
2
 
3
- redis_server = Rubber.instances.for_role('redis_slave').first.full_name rescue nil
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
 
@@ -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>
@@ -4,3 +4,4 @@
4
4
  %>
5
5
  kernel.shmmax=1610612736
6
6
  kernel.shmall=393216
7
+ kernel.sem=2500 320000 320 1280
@@ -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.pre6
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-08 00:00:00.000000000 Z
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: &11348280 !ruby/object:Gem::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.0
22
+ version: '2.8'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *11348280
25
+ version_requirements: *70150988668160
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: thor
28
- requirement: &11347860 !ruby/object:Gem::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: *11347860
36
+ version_requirements: *70150988678560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: clamp
39
- requirement: &11347400 !ruby/object:Gem::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: *11347400
47
+ version_requirements: *70150988675800
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: open4
50
- requirement: &11346980 !ruby/object:Gem::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: *11346980
58
+ version_requirements: *70150988673100
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: fog
61
- requirement: &11346480 !ruby/object:Gem::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.0.0
66
+ version: '1.2'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *11346480
69
+ version_requirements: *70150988696320
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rake
72
- requirement: &11346060 !ruby/object:Gem::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: *11346060
80
+ version_requirements: *70150988688640
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: test-unit
83
- requirement: &11361900 !ruby/object:Gem::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: *11361900
91
+ version_requirements: *70150988696640
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: shoulda-context
94
- requirement: &11361480 !ruby/object:Gem::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: *11361480
102
+ version_requirements: *70150988741240
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: mocha
105
- requirement: &11361060 !ruby/object:Gem::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: *11361060
113
+ version_requirements: *70150988739720
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: ruby-debug19
116
- requirement: &11360640 !ruby/object:Gem::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: *11360640
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/resque_worker/resque_jobs_processed.rb
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: -3050976247343600522
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.17
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
@@ -1,11 +0,0 @@
1
- <%
2
- @path = '/etc/collectd/conf.d/graphite-ping.conf'
3
- %>
4
-
5
- LoadPlugin ping
6
-
7
- <Plugin "ping">
8
- <% rubber_instances.each do |ic| %>
9
- Host "<%= ic.full_name %>"
10
- <% end %>
11
- </Plugin>