pauldowman-ec2onrails 0.9.10.1 → 0.9.10.2

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/Manifest CHANGED
@@ -33,7 +33,6 @@ server/files/etc/environment
33
33
  server/files/etc/event.d/god
34
34
  server/files/etc/god/db_primary.god
35
35
  server/files/etc/god/dkim_filter.god
36
- server/files/etc/god/examples/have_god_daemonize.god
37
36
  server/files/etc/god/master.conf
38
37
  server/files/etc/god/memcache.god
39
38
  server/files/etc/god/notifications.god
@@ -43,8 +42,9 @@ server/files/etc/god/web.god
43
42
  server/files/etc/init.d/ec2-every-startup
44
43
  server/files/etc/init.d/ec2-first-startup
45
44
  server/files/etc/init.d/nginx
46
- server/files/etc/logrotate.d/mongrel
47
45
  server/files/etc/logrotate.d/nginx
46
+ server/files/etc/logrotate.d/rails
47
+ server/files/etc/logrotate.d/varnish
48
48
  server/files/etc/memcached.conf
49
49
  server/files/etc/motd.tail
50
50
  server/files/etc/mysql/my.cnf
data/ec2onrails.gemspec CHANGED
@@ -5,15 +5,15 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ec2onrails}
8
- s.version = "0.9.10.1"
8
+ s.version = "0.9.10.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Paul Dowman, Adam Greene"]
12
- s.date = %q{2009-07-07}
12
+ s.date = %q{2009-08-06}
13
13
  s.description = %q{Client-side libraries (Capistrano tasks) for managing and deploying to EC2 on Rails servers.}
14
14
  s.email = %q{paul@pauldowman.com}
15
15
  s.extra_rdoc_files = ["CHANGELOG", "lib/ec2onrails/capistrano_utils.rb", "lib/ec2onrails/recipes/db.rb", "lib/ec2onrails/recipes/deploy.rb", "lib/ec2onrails/recipes/server.rb", "lib/ec2onrails/recipes.rb", "lib/ec2onrails/version.rb", "lib/ec2onrails.rb", "README.textile"]
16
- s.files = ["CHANGELOG", "COPYING", "echoe_config.rb", "examples/Capfile", "examples/deploy.rb", "examples/s3.yml", "lib/ec2onrails/capistrano_utils.rb", "lib/ec2onrails/recipes/db.rb", "lib/ec2onrails/recipes/deploy.rb", "lib/ec2onrails/recipes/server.rb", "lib/ec2onrails/recipes.rb", "lib/ec2onrails/version.rb", "lib/ec2onrails.rb", "Manifest", "Rakefile", "README.textile", "server/build", "server/files/etc/aliases", "server/files/etc/cron.d/ec2onrails", "server/files/etc/cron.daily/app", "server/files/etc/cron.daily/logrotate_post", "server/files/etc/cron.hourly/app", "server/files/etc/cron.monthly/app", "server/files/etc/cron.weekly/app", "server/files/etc/default/varnish", "server/files/etc/default/varnishncsa", "server/files/etc/denyhosts.conf", "server/files/etc/dpkg/dpkg.cfg", "server/files/etc/ec2onrails/rails_env", "server/files/etc/ec2onrails/roles.yml", "server/files/etc/environment", "server/files/etc/event.d/god", "server/files/etc/god/db_primary.god", "server/files/etc/god/dkim_filter.god", "server/files/etc/god/examples/have_god_daemonize.god", "server/files/etc/god/master.conf", "server/files/etc/god/memcache.god", "server/files/etc/god/notifications.god", "server/files/etc/god/proxy.god", "server/files/etc/god/system.god", "server/files/etc/god/web.god", "server/files/etc/init.d/ec2-every-startup", "server/files/etc/init.d/ec2-first-startup", "server/files/etc/init.d/nginx", "server/files/etc/logrotate.d/mongrel", "server/files/etc/logrotate.d/nginx", "server/files/etc/memcached.conf", "server/files/etc/motd.tail", "server/files/etc/mysql/my.cnf", "server/files/etc/nginx/conf.d/custom.conf", "server/files/etc/nginx/nginx.conf.erb", "server/files/etc/postfix/main.cf", "server/files/etc/README", "server/files/etc/ssh/sshd_config", "server/files/etc/sudoers", "server/files/etc/syslog.conf", "server/files/etc/varnish/default.vcl.erb", "server/files/usr/local/ec2onrails/bin/archive_file", "server/files/usr/local/ec2onrails/bin/backup_app_db", "server/files/usr/local/ec2onrails/bin/backup_dir", "server/files/usr/local/ec2onrails/bin/ec2_meta_data", "server/files/usr/local/ec2onrails/bin/exec_runner", "server/files/usr/local/ec2onrails/bin/in_role", "server/files/usr/local/ec2onrails/bin/init_services", "server/files/usr/local/ec2onrails/bin/install_system_files", "server/files/usr/local/ec2onrails/bin/optimize_mysql", "server/files/usr/local/ec2onrails/bin/public-hostname", "server/files/usr/local/ec2onrails/bin/rails_env", "server/files/usr/local/ec2onrails/bin/rebundle", "server/files/usr/local/ec2onrails/bin/restore_app_db", "server/files/usr/local/ec2onrails/bin/set_rails_env", "server/files/usr/local/ec2onrails/bin/set_roles", "server/files/usr/local/ec2onrails/bin/uninstall_system_files", "server/files/usr/local/ec2onrails/config", "server/files/usr/local/ec2onrails/COPYING", "server/files/usr/local/ec2onrails/lib/aws_helper.rb", "server/files/usr/local/ec2onrails/lib/god_helper.rb", "server/files/usr/local/ec2onrails/lib/mysql_helper.rb", "server/files/usr/local/ec2onrails/lib/roles_helper.rb", "server/files/usr/local/ec2onrails/lib/s3_helper.rb", "server/files/usr/local/ec2onrails/lib/system_files_helper.rb", "server/files/usr/local/ec2onrails/lib/system_files_manifest.rb", "server/files/usr/local/ec2onrails/lib/utils.rb", "server/files/usr/local/ec2onrails/lib/vendor/ini.rb", "server/files/usr/local/ec2onrails/startup-scripts/every-startup/create-mysqld-pid-dir", "server/files/usr/local/ec2onrails/startup-scripts/every-startup/README", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/create-dirs", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/generate-default-web-cert-and-key", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/get-hostname", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/misc", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/prepare-mysql-data-dir", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/README", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/setup-credentials", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/setup-file-permissions", "server/rakefile-wrapper", "server/rakefile.rb", "test/autobench.conf", "test/spec/lib/s3_helper_spec.rb", "test/spec/lib/s3_old.yml", "test/spec/lib/system_files_manifest_spec.rb", "test/spec/test_files/system_files1/_manifest", "test/spec/test_files/system_files1/test1", "test/spec/test_files/system_files1/test2", "test/spec/test_files/system_files1/testfolder/test3", "test/spec/test_files/system_files2/_manifest", "test/spec/test_files/system_files2/test1", "test/spec/test_files/system_files2/test2", "test/spec/test_files/system_files2/testfolder/test3", "test/spec/test_files/test2", "test/test_app/app/controllers/application_controller.rb", "test/test_app/app/controllers/db_fast_controller.rb", "test/test_app/app/controllers/fast_controller.rb", "test/test_app/app/controllers/slow_controller.rb", "test/test_app/app/controllers/very_slow_controller.rb", "test/test_app/app/helpers/application_helper.rb", "test/test_app/Capfile", "test/test_app/config/boot.rb", "test/test_app/config/database.yml", "test/test_app/config/deploy.rb", "test/test_app/config/ec2onrails/config.rb", "test/test_app/config/environment.rb", "test/test_app/config/environments/development.rb", "test/test_app/config/environments/production.rb", "test/test_app/config/environments/test.rb", "test/test_app/config/initializers/backtrace_silencers.rb", "test/test_app/config/initializers/inflections.rb", "test/test_app/config/initializers/mime_types.rb", "test/test_app/config/initializers/new_rails_defaults.rb", "test/test_app/config/initializers/session_store.rb", "test/test_app/config/locales/en.yml", "test/test_app/config/routes.rb", "test/test_app/doc/README_FOR_APP", "test/test_app/public/404.html", "test/test_app/public/422.html", "test/test_app/public/500.html", "test/test_app/public/favicon.ico", "test/test_app/public/images/rails.png", "test/test_app/public/index.html", "test/test_app/public/javascripts/application.js", "test/test_app/public/javascripts/controls.js", "test/test_app/public/javascripts/dragdrop.js", "test/test_app/public/javascripts/effects.js", "test/test_app/public/javascripts/prototype.js", "test/test_app/public/robots.txt", "test/test_app/Rakefile", "test/test_app/README", "test/test_app/script/about", "test/test_app/script/console", "test/test_app/script/dbconsole", "test/test_app/script/destroy", "test/test_app/script/generate", "test/test_app/script/performance/benchmarker", "test/test_app/script/performance/profiler", "test/test_app/script/plugin", "test/test_app/script/runner", "test/test_app/script/server", "test/test_app/test/performance/browsing_test.rb", "test/test_app/test/test_helper.rb", "TODO", "ec2onrails.gemspec"]
16
+ s.files = ["CHANGELOG", "COPYING", "ec2onrails.gemspec", "echoe_config.rb", "examples/Capfile", "examples/deploy.rb", "examples/s3.yml", "lib/ec2onrails/capistrano_utils.rb", "lib/ec2onrails/recipes/db.rb", "lib/ec2onrails/recipes/deploy.rb", "lib/ec2onrails/recipes/server.rb", "lib/ec2onrails/recipes.rb", "lib/ec2onrails/version.rb", "lib/ec2onrails.rb", "Manifest", "Rakefile", "README.textile", "server/build", "server/files/etc/aliases", "server/files/etc/cron.d/ec2onrails", "server/files/etc/cron.daily/app", "server/files/etc/cron.daily/logrotate_post", "server/files/etc/cron.hourly/app", "server/files/etc/cron.monthly/app", "server/files/etc/cron.weekly/app", "server/files/etc/default/varnish", "server/files/etc/default/varnishncsa", "server/files/etc/denyhosts.conf", "server/files/etc/dpkg/dpkg.cfg", "server/files/etc/ec2onrails/rails_env", "server/files/etc/ec2onrails/roles.yml", "server/files/etc/environment", "server/files/etc/event.d/god", "server/files/etc/god/db_primary.god", "server/files/etc/god/dkim_filter.god", "server/files/etc/god/master.conf", "server/files/etc/god/memcache.god", "server/files/etc/god/notifications.god", "server/files/etc/god/proxy.god", "server/files/etc/god/system.god", "server/files/etc/god/web.god", "server/files/etc/init.d/ec2-every-startup", "server/files/etc/init.d/ec2-first-startup", "server/files/etc/init.d/nginx", "server/files/etc/logrotate.d/nginx", "server/files/etc/logrotate.d/rails", "server/files/etc/logrotate.d/varnish", "server/files/etc/memcached.conf", "server/files/etc/motd.tail", "server/files/etc/mysql/my.cnf", "server/files/etc/nginx/conf.d/custom.conf", "server/files/etc/nginx/nginx.conf.erb", "server/files/etc/postfix/main.cf", "server/files/etc/README", "server/files/etc/ssh/sshd_config", "server/files/etc/sudoers", "server/files/etc/syslog.conf", "server/files/etc/varnish/default.vcl.erb", "server/files/usr/local/ec2onrails/bin/archive_file", "server/files/usr/local/ec2onrails/bin/backup_app_db", "server/files/usr/local/ec2onrails/bin/backup_dir", "server/files/usr/local/ec2onrails/bin/ec2_meta_data", "server/files/usr/local/ec2onrails/bin/exec_runner", "server/files/usr/local/ec2onrails/bin/in_role", "server/files/usr/local/ec2onrails/bin/init_services", "server/files/usr/local/ec2onrails/bin/install_system_files", "server/files/usr/local/ec2onrails/bin/optimize_mysql", "server/files/usr/local/ec2onrails/bin/public-hostname", "server/files/usr/local/ec2onrails/bin/rails_env", "server/files/usr/local/ec2onrails/bin/rebundle", "server/files/usr/local/ec2onrails/bin/restore_app_db", "server/files/usr/local/ec2onrails/bin/set_rails_env", "server/files/usr/local/ec2onrails/bin/set_roles", "server/files/usr/local/ec2onrails/bin/uninstall_system_files", "server/files/usr/local/ec2onrails/config", "server/files/usr/local/ec2onrails/COPYING", "server/files/usr/local/ec2onrails/lib/aws_helper.rb", "server/files/usr/local/ec2onrails/lib/god_helper.rb", "server/files/usr/local/ec2onrails/lib/mysql_helper.rb", "server/files/usr/local/ec2onrails/lib/roles_helper.rb", "server/files/usr/local/ec2onrails/lib/s3_helper.rb", "server/files/usr/local/ec2onrails/lib/system_files_helper.rb", "server/files/usr/local/ec2onrails/lib/system_files_manifest.rb", "server/files/usr/local/ec2onrails/lib/utils.rb", "server/files/usr/local/ec2onrails/lib/vendor/ini.rb", "server/files/usr/local/ec2onrails/startup-scripts/every-startup/create-mysqld-pid-dir", "server/files/usr/local/ec2onrails/startup-scripts/every-startup/README", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/create-dirs", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/generate-default-web-cert-and-key", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/get-hostname", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/misc", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/prepare-mysql-data-dir", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/README", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/setup-credentials", "server/files/usr/local/ec2onrails/startup-scripts/first-startup/setup-file-permissions", "server/rakefile-wrapper", "server/rakefile.rb", "test/autobench.conf", "test/spec/lib/s3_helper_spec.rb", "test/spec/lib/s3_old.yml", "test/spec/lib/system_files_manifest_spec.rb", "test/spec/test_files/system_files1/_manifest", "test/spec/test_files/system_files1/test1", "test/spec/test_files/system_files1/test2", "test/spec/test_files/system_files1/testfolder/test3", "test/spec/test_files/system_files2/_manifest", "test/spec/test_files/system_files2/test1", "test/spec/test_files/system_files2/test2", "test/spec/test_files/system_files2/testfolder/test3", "test/spec/test_files/test2", "test/test_app/app/controllers/application_controller.rb", "test/test_app/app/controllers/db_fast_controller.rb", "test/test_app/app/controllers/fast_controller.rb", "test/test_app/app/controllers/slow_controller.rb", "test/test_app/app/controllers/very_slow_controller.rb", "test/test_app/app/helpers/application_helper.rb", "test/test_app/Capfile", "test/test_app/config/boot.rb", "test/test_app/config/database.yml", "test/test_app/config/deploy.rb", "test/test_app/config/ec2onrails/config.rb", "test/test_app/config/environment.rb", "test/test_app/config/environments/development.rb", "test/test_app/config/environments/production.rb", "test/test_app/config/environments/test.rb", "test/test_app/config/initializers/backtrace_silencers.rb", "test/test_app/config/initializers/inflections.rb", "test/test_app/config/initializers/mime_types.rb", "test/test_app/config/initializers/new_rails_defaults.rb", "test/test_app/config/initializers/session_store.rb", "test/test_app/config/locales/en.yml", "test/test_app/config/routes.rb", "test/test_app/doc/README_FOR_APP", "test/test_app/public/404.html", "test/test_app/public/422.html", "test/test_app/public/500.html", "test/test_app/public/favicon.ico", "test/test_app/public/images/rails.png", "test/test_app/public/index.html", "test/test_app/public/javascripts/application.js", "test/test_app/public/javascripts/controls.js", "test/test_app/public/javascripts/dragdrop.js", "test/test_app/public/javascripts/effects.js", "test/test_app/public/javascripts/prototype.js", "test/test_app/public/robots.txt", "test/test_app/Rakefile", "test/test_app/README", "test/test_app/script/about", "test/test_app/script/console", "test/test_app/script/dbconsole", "test/test_app/script/destroy", "test/test_app/script/generate", "test/test_app/script/performance/benchmarker", "test/test_app/script/performance/profiler", "test/test_app/script/plugin", "test/test_app/script/runner", "test/test_app/script/server", "test/test_app/test/performance/browsing_test.rb", "test/test_app/test/test_helper.rb", "TODO"]
17
17
  s.homepage = %q{http://ec2onrails.rubyforge.org}
18
18
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Ec2onrails", "--main", "README.textile"]
19
19
  s.require_paths = ["lib"]
@@ -322,13 +322,7 @@ Capistrano::Configuration.instance(:must_exist).load do
322
322
  end
323
323
 
324
324
  desc <<-DESC
325
- DEPRECATED. To install files into the system create the directory
326
- RAILS_ROOT/config/ec2onrails/system_files, it can contain files
327
- that will be installed into the server relative to "/", and it
328
- can contain a manifest file with metadata, this allows the files
329
- to be chowned to any user on the system, and it allows the files
330
- to be cleanly uninstalled from the system.
331
- TODO pointer to full documentation
325
+ DEPRECATED. See install_system_files.
332
326
  DESC
333
327
  task :deploy_files do
334
328
  if cfg[:server_config_files_root]
@@ -352,12 +346,12 @@ Capistrano::Configuration.instance(:must_exist).load do
352
346
  end
353
347
 
354
348
  desc <<-DESC
355
- DEPRECATED. To install files into the system create the directory
356
- RAILS_ROOT/config/ec2onrails/system_files, it can contain files
357
- that will be installed into the server relative to "/", and it
358
- can contain a manifest file with metadata, this allows the files
359
- to be chowned to any user on the system, and it allows the files
360
- to be cleanly uninstalled from the system.
349
+ Installs files into the system anywhere outside of the Rails app.
350
+ The directory RAILS_ROOT/config/ec2onrails/system_files can contain
351
+ files that will be installed into the server relative to "/", and it
352
+ can contain a manifest file with metadata to change the file owner
353
+ and permissions, and it allows the files to be cleanly uninstalled
354
+ from the system.
361
355
  TODO pointer to full documentation
362
356
  DESC
363
357
  task :install_system_files do
@@ -434,6 +428,14 @@ Capistrano::Configuration.instance(:must_exist).load do
434
428
  end
435
429
  end
436
430
 
431
+ desc <<-DESC
432
+ Clear the varnish proxy cache (if caching is enabled, which it isn't
433
+ by default). Purges all documents from the cache.
434
+ DESC
435
+ task :purge_proxy_cache, :roles => :proxy do
436
+ run "varnishadm -T localhost:6082 'url.purge .*'"
437
+ end
438
+
437
439
  desc <<-DESC
438
440
  Restrict the app user's sudo access.
439
441
  Defaults the user to only be able to \
@@ -18,7 +18,7 @@
18
18
 
19
19
  module Ec2onrails #:nodoc:
20
20
  module VERSION #:nodoc:
21
- STRING = "0.9.10.0"
21
+ STRING = "0.9.10.2"
22
22
 
23
23
  AMI_ID_32_BIT_US = 'ami-xx'
24
24
  AMI_ID_64_BIT_US = 'ami-xx'
@@ -17,3 +17,9 @@ for f in `ls /mnt/log/nginx/*.log` ; do
17
17
  /usr/local/ec2onrails/bin/archive_file --file $logfile.gz --dir logs/nginx && rm $logfile.gz
18
18
  fi
19
19
  done
20
+
21
+ logfile=/mnt/log/varnish/varnishncsa.log-`date +%Y%m%d`
22
+ if [ -e $logfile ] ; then
23
+ gzip $logfile
24
+ /usr/local/ec2onrails/bin/archive_file --file $logfile.gz --dir logs/varnish && rm $logfile.gz
25
+ fi
@@ -13,5 +13,4 @@ God.watch do |w|
13
13
  w.grace = 60.seconds
14
14
 
15
15
  restart_if_resource_hog(w, :memory_usage => false)
16
- monitor_lifecycle(w)
17
- end
16
+ end
@@ -13,7 +13,5 @@ if File.exists?('/etc/init.d/dkim-filter')
13
13
 
14
14
  default_configurations(w)
15
15
  restart_if_resource_hog(w, :memory_usage => 20.megabytes, :cpu_usage => 10.percent)
16
- monitor_lifecycle(w)
17
16
  end
18
17
  end
19
-
@@ -1,5 +1,8 @@
1
1
  # For TextMate users, change the language type (at bottom of window, next to line/column counter, to ruby)
2
2
  #
3
+
4
+ # TODO move to event-based config
5
+
3
6
  applog(nil, :info, "loading /etc/god/master.conf")
4
7
 
5
8
  require '/usr/local/ec2onrails/lib/god_helper'
@@ -15,10 +18,11 @@ APP_ROOT = "/mnt/app/current"
15
18
  @configs = GodHelper::Configs.new
16
19
 
17
20
  God.pid_file_directory = "/var/run/god"
18
- God.load "/etc/god/*.god"
19
21
 
20
- applog(nil, :info, "about to load application specific configs at #{APP_ROOT}/config/god/*.god")
22
+ applog(nil, :info, "About to load system configs at /etc/god/*.god")
23
+ God.load "/etc/god/*.god"
21
24
 
25
+ applog(nil, :info, "About to load application-specific configs at #{APP_ROOT}/config/god/*.god")
22
26
  God.load "#{APP_ROOT}/config/god/*.god"
23
27
 
24
28
 
@@ -12,5 +12,4 @@ God.watch do |w|
12
12
  w.grace = 10.seconds
13
13
 
14
14
  restart_if_resource_hog(w, :memory_usage => false)
15
- monitor_lifecycle(w)
16
15
  end
@@ -2,13 +2,10 @@ God::Contacts::Email.message_settings = {
2
2
  :from => 'root@localhost'
3
3
  }
4
4
 
5
- God::Contacts::Email.server_settings = {
6
- :address => 'localhost',
7
- :port => 25
8
- }
5
+ God::Contacts::Email.delivery_method = :sendmail
9
6
 
10
7
  God.contact(:email) do |c|
11
- c.name = 'app'
8
+ c.name = 'root'
12
9
  c.email = 'root@localhost'
13
10
  c.group = 'default'
14
11
  end
@@ -21,6 +21,20 @@ God.watch do |w|
21
21
  # the moment we don't have much swap configured (just using the defaults
22
22
  # from Eric Hammond's base image).
23
23
  restart_if_resource_hog(w, :memory_usage => 100.megabytes, :cpu_usage => 50.percent)
24
-
25
- monitor_lifecycle(w)
24
+ end
25
+
26
+ God.watch do |w|
27
+ w.name = "varnishncsa"
28
+ w.group = "proxy"
29
+ w.autostart = false
30
+
31
+ w.start = "/etc/init.d/varnishncsa start"
32
+ w.stop = "/etc/init.d/varnishncsa stop"
33
+ w.restart = "/etc/init.d/varnishncsa restart"
34
+ w.pid_file = "/var/run/varnishncsa.pid"
35
+ w.grace = 10.seconds
36
+
37
+ default_configurations(w)
38
+
39
+ restart_if_resource_hog(w, :memory_usage => 100.megabytes, :cpu_usage => 50.percent)
26
40
  end
@@ -12,23 +12,26 @@ God.watch do |w|
12
12
  on.condition(:disk_usage) do |c|
13
13
  c.mount_point = "/"
14
14
  c.above = 75
15
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
15
16
  end
16
17
 
17
18
  on.condition(:disk_usage) do |c|
18
19
  c.mount_point = "/mnt"
19
20
  c.above = 75
21
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
20
22
  end
21
23
 
22
- # on.condition(:memory_usage) do |c|
23
- # c.above = 170.megabytes
24
- # c.times = [3, 5] # 3 out of 5 intervals
25
- # end
24
+ on.condition(:memory_usage) do |c|
25
+ c.above = 80.percent
26
+ c.times = [3, 5] # 3 out of 5 intervals
27
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
28
+ end
26
29
 
27
30
  on.condition(:cpu_usage) do |c|
28
31
  c.above = 90.percent
29
32
  c.times = [5, 8]
30
- end
31
-
33
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
34
+ end
32
35
  end
33
36
 
34
37
  end
@@ -20,6 +20,4 @@ God.watch do |w|
20
20
  c.times = [3, 5] # 3 out of 5 intervals
21
21
  end
22
22
  end
23
-
24
- monitor_lifecycle(w)
25
23
  end
@@ -1,11 +1,10 @@
1
1
  /mnt/log/nginx/*.log {
2
2
  daily
3
+ rotate 7
3
4
  missingok
4
5
  dateext
5
- compress
6
- create 640 root app
7
- notifempty
8
6
  sharedscripts
9
- extension gz
10
- copytruncate
7
+ postrotate
8
+ test -f /var/run/nginx.pid && kill -USR1 `cat /var/run/nginx.pid`
9
+ endscript
11
10
  }
@@ -0,0 +1,8 @@
1
+ # Rotate Rails application logs
2
+ /mnt/app/current/log/*.log {
3
+ daily
4
+ rotate 7
5
+ missingok
6
+ dateext
7
+ copytruncate
8
+ }
@@ -0,0 +1,14 @@
1
+ /mnt/log/varnish/varnish.log /mnt/log/varnish/varnishncsa.log {
2
+ daily
3
+ rotate 7
4
+ missingok
5
+ dateext
6
+ sharedscripts
7
+ postrotate
8
+ for service in varnishlog varnishncsa; do
9
+ if /usr/bin/pgrep -P 1 $service >/dev/null; then
10
+ /usr/sbin/invoke-rc.d $service reload > /dev/null
11
+ fi
12
+ done
13
+ endscript
14
+ }
@@ -12,13 +12,17 @@ http {
12
12
  passenger_root <%= `/usr/bin/passenger-config --root`.strip %>;
13
13
  passenger_default_user app;
14
14
  passenger_pool_idle_time 0;
15
- rails_spawn_method conservative;
16
15
  rails_framework_spawner_idle_time 0;
17
16
  rails_app_spawner_idle_time 0;
17
+
18
18
  # We leave passenger_max_pool_size at the default for now. (It might
19
19
  # eventually be an ERB variable that can be set automatically based on the
20
20
  # instance type and what roles it's in.)
21
21
  # passenger_max_pool_size 6;
22
+
23
+ # We leave the rails_spawn_method at the default, but we might want a config setting
24
+ # to allow it to be changed.
25
+ # rails_spawn_method smart-lv2;
22
26
 
23
27
  include /etc/nginx/mime.types;
24
28
 
@@ -88,7 +92,7 @@ http {
88
92
  root /mnt/app/current/public;
89
93
 
90
94
  error_page 400 /400.html;
91
- error_page 500 502 503 504 /500.html;
95
+ error_page 500 502 504 /500.html;
92
96
  location = /500.html {
93
97
  root /mnt/app/current/public;
94
98
  }
@@ -110,9 +114,14 @@ http {
110
114
  # page if it exists in the doc root. This is for capistrano's
111
115
  # disable web task
112
116
  if (-f $document_root/system/maintenance.html) {
117
+ return 503;
118
+ }
119
+ error_page 503 @503;
120
+ location @503 {
113
121
  rewrite ^(.*)$ /system/maintenance.html break;
114
122
  }
115
123
 
124
+
116
125
  # see http://wiki.codemongers.com/NginxHttpStubStatusModule
117
126
  # for more information
118
127
  location /nginx_status {
@@ -29,7 +29,7 @@ RAILS_ENV = Ec2onrails::Utils.rails_env
29
29
 
30
30
  #reload configs to pick up any new changes
31
31
  # Just a thought... do we really need to load god files from inside the app? They could just be installed via install_system_files, that would be simpler
32
- Dir.glob("/etc/god/*.god") + Dir.glob("/mnt/app/current/config/god/#{RAILS_ENV}/*.god").each do |f|
32
+ Dir.glob("/etc/god/*.god") + Dir.glob("/mnt/app/current/config/god/*.god").each do |f|
33
33
  sudo "god load '#{f}'"
34
34
  end
35
35
 
@@ -12,7 +12,7 @@ fi
12
12
  export EC2_HOME=/usr/local/ec2-api-tools
13
13
  export PATH="$PATH:$EC2_HOME/bin"
14
14
 
15
- export JAVA_HOME="/usr/lib/jvm/java-6-sun"
15
+ if [ -e "/usr/lib/jvm/java-6-sun" ]; then export JAVA_HOME="/usr/lib/jvm/java-6-sun"; fi
16
16
 
17
17
  # Set the bash prompt to include the rails environment name
18
18
  case "$TERM" in
@@ -1,5 +1,6 @@
1
1
  module GodHelper
2
2
  require '/usr/local/ec2onrails/lib/roles_helper'
3
+ require '/usr/local/ec2onrails/lib/utils'
3
4
  require 'fileutils'
4
5
 
5
6
  def default_configurations(w)
@@ -11,32 +12,45 @@ module GodHelper
11
12
 
12
13
  w.start_if do |start|
13
14
  start.condition(:process_running) do |c|
14
- c.notify = {:contacts => ['default'], :category => 'process not started...starting'}
15
15
  c.interval = 5.seconds
16
16
  c.running = false
17
17
  end
18
18
  end
19
19
 
20
20
  # determine when process has finished starting
21
- # w.transition([:start, :restart], :up) do |on|
22
- # on.condition(:process_running) do |c|
23
- # c.running = true
24
- # end
25
- #
26
- # # failsafe
27
- # on.condition(:tries) do |c|
28
- # c.times = 8
29
- # c.within = 2.minutes
30
- # c.transition = :start
31
- # end
32
- # end
33
- #
34
- # # start if process is not running
35
- # w.transition(:up, :start) do |on|
36
- # on.condition(:process_exits) do |c|
37
- # c.notify = {:contacts => ['default'], :category => 'process exited...restarting'}
38
- # end
39
- # end
21
+ w.transition([:start, :restart], :up) do |on|
22
+ on.condition(:process_running) do |c|
23
+ c.running = true
24
+ end
25
+
26
+ # failsafe
27
+ on.condition(:tries) do |c|
28
+ c.times = 8
29
+ c.within = 2.minutes
30
+ c.transition = :start
31
+ end
32
+ end
33
+
34
+ # start if process is not running
35
+ w.transition(:up, :start) do |on|
36
+ on.condition(:process_exits) do |c|
37
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
38
+ end
39
+ end
40
+
41
+ w.lifecycle do |on|
42
+ on.condition(:flapping) do |c|
43
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
44
+ c.to_state = [:start, :restart]
45
+ c.times = 5
46
+ c.within = 5.minutes
47
+ c.transition = :unmonitored
48
+ c.retry_in = 10.minutes
49
+ c.retry_times = 5
50
+ c.retry_within = 2.hours
51
+ end
52
+ end
53
+
40
54
  end
41
55
 
42
56
  def restart_if_resource_hog(w, options={})
@@ -44,7 +58,7 @@ module GodHelper
44
58
  w.restart_if do |restart|
45
59
  if options[:memory_usage]
46
60
  restart.condition(:memory_usage) do |c|
47
- c.notify = {:contacts => ['default'], :category => "process over #{options[:memory_usage]/1.megabyte}MB. restarting"}
61
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
48
62
  c.above = options[:memory_usage]
49
63
  c.times = [3,5]
50
64
  end
@@ -52,7 +66,7 @@ module GodHelper
52
66
 
53
67
  if options[:cpu_usage]
54
68
  restart.condition(:cpu_usage) do |c|
55
- c.notify = {:contacts => ['default'], :category => "process over #{options[:cpu_usage]*100}%. restarting"}
69
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
56
70
  c.above = options[:cpu_usage]
57
71
  c.times = 5
58
72
  end
@@ -63,24 +77,8 @@ module GodHelper
63
77
  end
64
78
  end
65
79
 
66
- def monitor_lifecycle(w)
67
- # w.transition(:up, :unmonitored) do |on|
68
- w.lifecycle do |on|
69
- on.condition(:flapping) do |c|
70
- c.notify = {:contacts => ['default'], :category => 'process flapping...restarting'}
71
- c.to_state = [:start, :restart]
72
- c.times = 5
73
- c.within = 5.minutes
74
- c.transition = :unmonitored
75
- c.retry_in = 10.minutes
76
- c.retry_times = 5
77
- c.retry_within = 2.hours
78
- end
79
- end
80
- end
81
-
82
80
  class Configs
83
81
  include Ec2onrails::RolesHelper
84
82
  end
85
83
 
86
- end
84
+ end
data/server/rakefile.rb CHANGED
@@ -87,7 +87,7 @@ require "#{File.dirname(__FILE__)}/../lib/ec2onrails/version"
87
87
  "optiflag",
88
88
  "passenger",
89
89
  "rails",
90
- "rails -v '~> 2.3.2'",
90
+ "rails -v '~> 2.3.3'",
91
91
  "rails -v '~> 2.2.2'",
92
92
  "rails -v '~> 2.1.2'",
93
93
  "rails -v '~> 2.0.5'",
@@ -134,11 +134,13 @@ end
134
134
  desc "Install required ruby gems inside the image's filesystem"
135
135
  task :install_gems => [:require_root, :install_packages] do |t|
136
136
  unless_completed(t) do
137
- url = "http://rubyforge.org/frs/download.php/56227/rubygems-1.3.3.tgz"
138
- filename = "rubygems-1.3.3.tgz"
137
+ version = "1.3.5"
138
+ dir = "60718"
139
139
 
140
+ filename = "rubygems-#{version}.tgz"
141
+ url = "http://rubyforge.org/frs/download.php/#{dir}/#{filename}"
140
142
  run_chroot "sh -c 'cd /tmp && wget -q #{url} && tar zxf #{filename}'"
141
- run_chroot "sh -c 'cd /tmp/rubygems-1.3.3 && ruby setup.rb'"
143
+ run_chroot "sh -c 'cd /tmp/rubygems-#{version} && ruby setup.rb'"
142
144
  run_chroot "ln -sf /usr/bin/gem1.8 /usr/bin/gem"
143
145
  #NOTE: this will update to the most recent rubygems version even if we haven't updated the url here
144
146
  run_chroot "gem update --system --no-rdoc --no-ri"
@@ -204,7 +206,7 @@ task :configure => [:require_root, :install_software] do |t|
204
206
  run_chroot "update-rc.d ec2-every-startup start 92 S ."
205
207
 
206
208
  # Disable the services that will be managed by god, depending on the roles
207
- %w(nginx mysql memcached varnish).each do |service|
209
+ %w(nginx mysql memcached varnish varnishncsa).each do |service|
208
210
  run_chroot "update-rc.d -f #{service} remove"
209
211
  run_chroot "update-rc.d #{service} stop 20 2 3 4 5 ."
210
212
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pauldowman-ec2onrails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10.1
4
+ version: 0.9.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Dowman, Adam Greene
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-07 00:00:00 -07:00
12
+ date: 2009-08-06 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -71,6 +71,7 @@ extra_rdoc_files:
71
71
  files:
72
72
  - CHANGELOG
73
73
  - COPYING
74
+ - ec2onrails.gemspec
74
75
  - echoe_config.rb
75
76
  - examples/Capfile
76
77
  - examples/deploy.rb
@@ -103,7 +104,6 @@ files:
103
104
  - server/files/etc/event.d/god
104
105
  - server/files/etc/god/db_primary.god
105
106
  - server/files/etc/god/dkim_filter.god
106
- - server/files/etc/god/examples/have_god_daemonize.god
107
107
  - server/files/etc/god/master.conf
108
108
  - server/files/etc/god/memcache.god
109
109
  - server/files/etc/god/notifications.god
@@ -113,8 +113,9 @@ files:
113
113
  - server/files/etc/init.d/ec2-every-startup
114
114
  - server/files/etc/init.d/ec2-first-startup
115
115
  - server/files/etc/init.d/nginx
116
- - server/files/etc/logrotate.d/mongrel
117
116
  - server/files/etc/logrotate.d/nginx
117
+ - server/files/etc/logrotate.d/rails
118
+ - server/files/etc/logrotate.d/varnish
118
119
  - server/files/etc/memcached.conf
119
120
  - server/files/etc/motd.tail
120
121
  - server/files/etc/mysql/my.cnf
@@ -228,9 +229,9 @@ files:
228
229
  - test/test_app/test/performance/browsing_test.rb
229
230
  - test/test_app/test/test_helper.rb
230
231
  - TODO
231
- - ec2onrails.gemspec
232
232
  has_rdoc: false
233
233
  homepage: http://ec2onrails.rubyforge.org
234
+ licenses:
234
235
  post_install_message:
235
236
  rdoc_options:
236
237
  - --line-numbers
@@ -256,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
257
  requirements: []
257
258
 
258
259
  rubyforge_project: ec2onrails
259
- rubygems_version: 1.2.0
260
+ rubygems_version: 1.3.5
260
261
  signing_key:
261
262
  specification_version: 3
262
263
  summary: Client-side libraries (Capistrano tasks) for managing and deploying to EC2 on Rails servers.
@@ -1,18 +0,0 @@
1
- # here we have an example script which is not daemonized.
2
- #
3
- # Make sure that mq_poller requires the right libraries and runs in a loop...
4
-
5
- God.watch do |w|
6
- w.name = 'queue'
7
- w.group = 'app'
8
-
9
- w.uid = @configs.user
10
- w.gid = @configs.group
11
- w.autostart = false
12
-
13
- w.start = "/usr/local/ec2onrails/bin/rails_env #{APP_ROOT}/script/mq_poller"
14
-
15
- default_configurations(w)
16
- restart_if_resource_hog(w)
17
- monitor_lifecycle(w)
18
- end
@@ -1,11 +0,0 @@
1
- /mnt/app/current/log/*/*.log /mnt/app/current/log/*.log {
2
- daily
3
- missingok
4
- dateext
5
- rotate 365
6
- compress
7
- notifempty
8
- sharedscripts
9
- extension gz
10
- copytruncate
11
- }