slingshot 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt CHANGED
@@ -1,10 +1,24 @@
1
- == 0.0.1 2007-05-25
1
+ == 1.1.0 2007-07-13
2
2
 
3
- * 1 major enhancement:
4
- * Initial release
5
- * Includes all server setup tasks
3
+ * updated to work with CentOS 5
4
+
5
+ == 1.0.2 2007-07-07
6
+
7
+ * altered monit setup script
8
+
9
+ == 1.0.1 2007-07-02
10
+
11
+ * several minor enhancements
12
+ * addition of mongrel patch method
13
+ * general fixes
6
14
 
7
15
  == 1.0.0 2007-06-30
8
16
 
9
17
  * Version 1.0.0 Release!
10
18
  * New! Improved! Better than Ever!
19
+
20
+ == 0.0.1 2007-05-25
21
+
22
+ * 1 major enhancement:
23
+ * Initial release
24
+ * Includes all server setup tasks
@@ -40,8 +40,8 @@ set :server_timezone, "GMT"
40
40
  # =============================================================================
41
41
 
42
42
  # set this to the correct web start script
43
- set :web_server, "apache2"
44
- set :path_to_web_server, "/usr/local/apache2/"
43
+ set :web_server, "httpd"
44
+ set :path_to_web_server_logs, "/var/log/httpd"
45
45
 
46
46
  # set this to true to add an apache redirect rule to ensure domain requests to
47
47
  # http://yourdomain.com/ are redirected to http://www.yourdomain.com/
@@ -64,7 +64,7 @@ set :keep_releases, 3
64
64
  set :checkout, "export"
65
65
 
66
66
  # mongrel configuration:
67
- set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml"
67
+ set :mongrel_conf, "#{current_path}/system/mongrel_cluster.yml"
68
68
 
69
69
  # number of mongrel servers to start
70
70
  set :mongrel_servers, 3
@@ -77,33 +77,32 @@ set :overwrite_crontab, false
77
77
  set :crontab_email, "root@localhost"
78
78
 
79
79
  set :mongrel_cluster_configuration_dir, "/etc/mongrel_cluster"
80
- set :rails_apache_configuration_dir, "/etc/rails"
81
80
 
82
81
  # =============================================================================
83
82
  # RAILS APPLICATION CONFIGURATION TASKS
84
83
  # =============================================================================
85
84
 
86
- desc "Tasks to execute before initial setup"
87
- task :before_setup do
88
- sudo "mkdir -p #{File.dirname(deploy_to)}"
89
- sudo "chown -R #{user}:#{group} #{File.dirname(deploy_to)}"
90
-
91
- sudo "mkdir -p #{mongrel_cluster_configuration_dir}"
92
- sudo "mkdir -p #{rails_apache_configuration_dir}"
93
- end
85
+ # desc "Tasks to execute before initial setup"
86
+ # task :before_setup do
87
+ # sudo "mkdir -p #{File.dirname(deploy_to)}"
88
+ # sudo "chown -R #{user}:#{group} #{File.dirname(deploy_to)}"
89
+ #
90
+ # sudo "mkdir -p #{mongrel_cluster_configuration_dir}"
91
+ # sudo "mkdir -p #{rails_apache_configuration_dir}"
92
+ # end
94
93
 
95
94
  desc "Tasks to execute after initial setup"
96
95
  task :after_setup do
97
96
 
98
97
  # make shared config dir to hold config files
99
- run "mkdir -p #{deploy_to}/#{shared_dir}/config"
98
+ # run "mkdir -p #{deploy_to}/#{shared_dir}/config"
100
99
 
101
100
  # make a shared tmp dir for sessions
102
- run "mkdir -p #{deploy_to}/#{shared_dir}/tmp"
103
- run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/cache"
104
- run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/sessions"
105
- run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/sockets"
106
- run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/pids"
101
+ # run "mkdir -p #{deploy_to}/#{shared_dir}/tmp"
102
+ # run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/cache"
103
+ # run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/sessions"
104
+ # run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/sockets"
105
+ # run "mkdir -p #{deploy_to}/#{shared_dir}/tmp/pids"
107
106
 
108
107
  # create any other shared dirs
109
108
  # run "mkdir -p #{deploy_to}/#{shared_dir}/db"
@@ -120,10 +119,10 @@ end
120
119
  desc "Tasks to execute after code update"
121
120
  task :after_update_code, :roles => [:app, :db] do
122
121
  # relink shared deployment database configuration
123
- run "ln -nfs #{deploy_to}/#{shared_dir}/config/database.yml #{release_path}/config/database.yml"
122
+ run "ln -nfs #{deploy_to}/#{shared_dir}/system/database.yml #{release_path}/config/database.yml"
124
123
 
125
124
  # relink shared deployment mongrel_cluster configuration
126
- run "ln -nfs #{deploy_to}/#{shared_dir}/config/mongrel_cluster.yml #{release_path}/config/mongrel_cluster.yml"
125
+ run "ln -nfs #{deploy_to}/#{shared_dir}/system/mongrel_cluster.yml #{release_path}/config/mongrel_cluster.yml"
127
126
 
128
127
  # relink shared tmp dir (for session and cache data)
129
128
  sudo "rm -rf #{release_path}/tmp" # technically shouldn't be in svn
@@ -147,7 +146,7 @@ cwd: #{deploy_to}/current
147
146
  port: "#{mongrel_start_port}"
148
147
  environment: production
149
148
  address: 127.0.0.1
150
- pid_file: #{deploy_to}/current/log/mongrel.pid
149
+ pid_file: /var/run/mongrel_cluster/mongrel.pid
151
150
  log_file: #{deploy_to}/current/log/mongrel.log
152
151
  servers: #{mongrel_servers}
153
152
  user: #{user}
@@ -156,8 +155,8 @@ group: #{group}
156
155
  EOF
157
156
 
158
157
  # put mongrel configuration in shared config dir and link in /etc/mongrel_cluster
159
- put mongrel_configuration, "#{deploy_to}/#{shared_dir}/config/mongrel_cluster.yml"
160
- sudo "ln -nfs #{deploy_to}/#{shared_dir}/config/mongrel_cluster.yml /etc/mongrel_cluster/#{application}.yml"
158
+ put mongrel_configuration, "#{deploy_to}/#{shared_dir}/system/mongrel_cluster.yml"
159
+ sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/mongrel_cluster.yml #{mongrel_cluster_configuration_dir}/#{application}.yml"
161
160
 
162
161
  end
163
162
 
@@ -187,7 +186,7 @@ production:
187
186
  EOF
188
187
 
189
188
  # put database configuration in shared config dir
190
- put database_configuration, "#{deploy_to}/#{shared_dir}/config/database.yml"
189
+ put database_configuration, "#{deploy_to}/#{shared_dir}/system/database.yml"
191
190
  end
192
191
 
193
192
  # =============================================================================
@@ -7,6 +7,8 @@
7
7
  Capistrano.configuration(:must_exist).load do
8
8
 
9
9
  set :src_home, "/usr/local/src"
10
+ set :apache_conf_home, "/etc/httpd/conf.d"
11
+ set :apache_ssl_home, "/etc/httpd/conf/ssl"
10
12
 
11
13
  set :apache2, "httpd-2.2.4"
12
14
  set :apache2_url, "http://www.apache.org/dist/httpd/#{apache2}.tar.gz"
@@ -131,18 +133,24 @@ end
131
133
 
132
134
  desc "Create directories, links, startup files"
133
135
  task :create_startup_files_and_entries do
134
- run "ln -s /usr/local/lib/ruby/gems/1.8/gems/mongrel_cluster-0.2.1/resources/mongrel_cluster /etc/init.d/mongrel_cluster"
136
+ run "ln -s /usr/local/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/resources/mongrel_cluster /etc/init.d/mongrel_cluster"
135
137
  run "chmod +x /etc/init.d/mongrel_cluster"
136
138
  run "/sbin/chkconfig --level 345 mongrel_cluster on"
139
+ run "mkdir -p /etc/mongrel_cluster"
140
+ run "chown -R #{deploy_username} /etc/mongrel_cluster"
137
141
 
138
- run "mkdir -p /etc/rails"
139
- run "chown deploy -R /etc/rails"
142
+ # run "mkdir -p /etc/rails"
143
+ # run "chown deploy -R /etc/rails"
140
144
  # run "chgrp deploy -R /etc/rails"
141
145
 
142
- run "echo \"\" >> /usr/local/apache2/conf/httpd.conf"
143
- run "echo \"# Added by Slingshot Install script\" >> /usr/local/apache2/conf/httpd.conf"
144
- run "echo \"Include /etc/rails/*.conf\" >> /usr/local/apache2/conf/httpd.conf"
145
- run "echo \"NameVirtualHost *:80\" >> /usr/local/apache2/conf/httpd.conf"
146
+ # run "echo \"\" >> /usr/local/apache2/conf/httpd.conf"
147
+ # run "echo \"# Added by Slingshot Install script\" >> /usr/local/apache2/conf/httpd.conf"
148
+ # run "echo \"Include /etc/rails/*.conf\" >> /usr/local/apache2/conf/httpd.conf"
149
+ # run "echo \"NameVirtualHost *:80\" >> /usr/local/apache2/conf/httpd.conf"
150
+
151
+ # apache
152
+ run "/etc/init.d/httpd start"
153
+ run "/sbin/chkconfig httpd on"
146
154
 
147
155
  # mysql
148
156
  run "/etc/init.d/mysqld start"
@@ -153,8 +161,8 @@ task :create_startup_files_and_entries do
153
161
  run "/sbin/chkconfig sendmail on"
154
162
 
155
163
  # yum nightly updates
156
- run "/etc/init.d/yum start"
157
- run "/sbin/chkconfig yum on"
164
+ run "/etc/init.d/yum-updatesd start"
165
+ run "/sbin/chkconfig yum-updatesd on"
158
166
  end
159
167
 
160
168
  desc "Setup timezone and ntpdate"
@@ -311,17 +319,22 @@ EOF
311
319
 
312
320
  (0..mongrel_servers-1).each do |server|
313
321
  monit_configuration +=<<-EOF
314
- check process mongrel-#{mongrel_start_port + server} with pidfile #{deploy_to}/current/log/mongrel.#{mongrel_start_port + server}.pid
322
+ check process mongrel-#{mongrel_start_port + server} with pidfile #{deploy_to}/shared/log/mongrel.#{mongrel_start_port + server}.pid
315
323
  group mongrel
316
- start program = "/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e production -p #{mongrel_start_port + server} -a 127.0.0.1 -l #{deploy_to}/current/log/mongrel.log -P #{deploy_to}/shared/log/mongrel.#{mongrel_start_port + server}.pid -c #{deploy_to}/current"
324
+ start program = "/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e production -p #{mongrel_start_port + server} -a 127.0.0.1 -l #{deploy_to}/current/log/mongrel.log -P #{deploy_to}/shared/log/mongrel.#{mongrel_start_port + server}.pid -c #{deploy_to}/current --user #{user} --group #{group}"
317
325
  stop program = "/usr/local/bin/ruby /usr/local/bin/mongrel_rails stop -P #{deploy_to}/shared/log/mongrel.#{mongrel_start_port + server}.pid"
318
326
  if totalmem > 100.0 MB for 5 cycles then restart
319
- if failed port #{mongrel_start_port + server} protocol http with timeout 30 seconds then restart
327
+ if failed port #{mongrel_start_port + server} protocol http with timeout 59 seconds then restart
328
+ if cpu is greater than 60% for 2 cycles then alert
329
+ if cpu > 80% for 5 cycles then restart
330
+ if loadavg(5min) greater than 10 for 8 cycles then restart
331
+ if 3 restarts within 5 cycles then timeout
320
332
 
321
333
  EOF
322
334
  end
323
335
 
324
- put monit_configuration, "/etc/monit.d/rails.conf"
336
+ put monit_configuration, "#{deploy_to}/shared/system/monit_#{application}.conf"
337
+ sudo "ln -nfs #{deploy_to}/shared/system/monit_#{application}.conf /etc/monit.d/#{application}.conf"
325
338
 
326
339
  end
327
340
 
@@ -331,10 +344,10 @@ task :apache_configuration_setup do
331
344
  # generate web server configuration (apache specific)
332
345
  apache2_rails_conf = <<-EOF
333
346
  <VirtualHost *:80>
334
- Include /etc/rails/#{application}.common
347
+ Include #{apache_conf_home}/#{application}.common
335
348
 
336
- ErrorLog #{path_to_web_server}logs/#{application}_errors_log
337
- CustomLog #{path_to_web_server}logs/#{application}_log combined
349
+ ErrorLog #{path_to_web_server_logs}/#{application}_errors_log
350
+ CustomLog #{path_to_web_server_logs}/#{application}_log combined
338
351
  </VirtualHost>
339
352
  EOF
340
353
 
@@ -343,7 +356,7 @@ EOF
343
356
  apache2_rails_conf +=<<-EOF
344
357
  Listen 443
345
358
  <VirtualHost _default_:443>
346
- Include /etc/rails/#{application}.common
359
+ Include #{apache_conf_home}/#{application}.common
347
360
 
348
361
  RequestHeader set X_FORWARDED_PROTO 'https'
349
362
 
@@ -351,9 +364,9 @@ EOF
351
364
  SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
352
365
 
353
366
  # Server Certificate and CA:
354
- SSLCertificateFile #{path_to_web_server}conf/ssl/#{ssl_certificate_file}
355
- SSLCertificateKeyFile #{path_to_web_server}conf/ssl/#{ssl_certificate_key_file}
356
- SSLCACertificateFile #{path_to_web_server}conf/ssl/#{ssl_ca_certificate_file}
367
+ SSLCertificateFile #{apache_ssl_home}/#{ssl_certificate_file}
368
+ SSLCertificateKeyFile #{apache_ssl_home}/#{ssl_certificate_key_file}
369
+ SSLCACertificateFile #{apache_ssl_home}/#{ssl_ca_certificate_file}
357
370
 
358
371
  <IfModule setenvif_module>
359
372
  BrowserMatch ".*MSIE.*" \
@@ -446,8 +459,8 @@ EOF
446
459
 
447
460
  # if apache is setup to read /etc/rails/*.conf these will get read as configuration files
448
461
  # see prerequisites above for more info
449
- sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/#{application}.conf /etc/rails/#{application}.conf"
450
- sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/#{application}.common /etc/rails/#{application}.common"
462
+ sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/#{application}.conf #{apache_conf_home}/#{application}.conf"
463
+ sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/#{application}.common #{apache_conf_home}/#{application}.common"
451
464
 
452
465
  end
453
466
 
@@ -470,7 +483,7 @@ EOF
470
483
  put redirect_apache2_rails_configuration, "#{deploy_to}/#{shared_dir}/system/redirects.conf"
471
484
 
472
485
  # since apache is setup to read /etc/rails/*.conf these will get read as configuration files
473
- sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/redirects.conf /etc/rails/redirects.conf"
486
+ sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/redirects.conf #{apache_conf_home}/redirects.conf"
474
487
  end
475
488
  end
476
489
 
@@ -506,13 +519,13 @@ HOME=/
506
519
 
507
520
  # BACKUP tasks - to supress all output use: cd #{deploy_to}/current && rake s3:backup >/dev/null 2>&1
508
521
  # every day at 3:00am:
509
- 00 3 * * * root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=daily >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=7 INCREMENT=daily >> #{deploy_to}/shared/log/backup.log
522
+ # 00 3 * * * root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=daily >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=7 INCREMENT=daily >> #{deploy_to}/shared/log/backup.log
510
523
  # every sunday at 3:22am:
511
- 22 3 * * 0 root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=weekly >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=5 INCREMENT=weekly >> #{deploy_to}/shared/log/backup.log
524
+ # 22 3 * * 0 root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=weekly >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=5 INCREMENT=weekly >> #{deploy_to}/shared/log/backup.log
512
525
  # every 1st of month at 3:42am:
513
- 42 3 1 * * root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=monthly >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=12 INCREMENT=monthly >> #{deploy_to}/shared/log/backup.log
526
+ # 42 3 1 * * root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=monthly >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=12 INCREMENT=monthly >> #{deploy_to}/shared/log/backup.log
514
527
  # every year on dec 31 at 4:00am:
515
- 00 4 31 12 * root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=yearly >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=1 INCREMENT=yearly >> #{deploy_to}/shared/log/backup.log
528
+ # 00 4 31 12 * root cd #{deploy_to}/current && /usr/local/bin/rake RAILS_ENV=production s3:backup INCREMENT=yearly >> #{deploy_to}/shared/log/backup.log && /usr/local/bin/rake RAILS_ENV=production s3:manage:clean_up KEEP=1 INCREMENT=yearly >> #{deploy_to}/shared/log/backup.log
516
529
 
517
530
  # resync time at 2:59am:
518
531
  59 2 * * * root /usr/sbin/ntpdate 0.pool.ntp.org
@@ -1,8 +1,8 @@
1
1
  module Slingshot #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
- MINOR = 0
5
- TINY = 1
4
+ MINOR = 1
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/website/index.html CHANGED
@@ -33,7 +33,7 @@
33
33
  <h1>Slingshot</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/slingshot"; return false'>
35
35
  Get Version
36
- <a href="http://rubyforge.org/projects/slingshot" class="numbers">1.0.1</a>
36
+ <a href="http://rubyforge.org/projects/slingshot" class="numbers">1.1.0</a>
37
37
  </div>
38
38
  <h2>What</h2>
39
39
 
@@ -188,7 +188,7 @@ just holler at the Highgroove Studios or Slingshot Hosting team.</p>
188
188
 
189
189
  <p>Comments are welcome. Send an email to <a href="mailto:cbq@highgroove.com">Charles Brian Quinn</a>.</p>
190
190
  <p class="coda">
191
- <a href="mailto:cbq@highgroove.com">Charles Brian Quinn</a>, 1st July 2007<br>
191
+ <a href="mailto:cbq@highgroove.com">Charles Brian Quinn</a>, 2nd July 2007<br>
192
192
  Gem packager/webpage/scripts by <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a><br>
193
193
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
194
194
  </p>
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: slingshot
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.1
7
- date: 2007-07-02 00:00:00 -04:00
6
+ version: 1.1.0
7
+ date: 2007-07-13 00:00:00 -04:00
8
8
  summary: Set of server setup tasks for use with Slingshot Hosting
9
9
  require_paths:
10
10
  - lib