slingshot 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,7 +13,7 @@ set :user, "deploy"
13
13
  set :password, "password"
14
14
  set :group, "users"
15
15
 
16
- set :deploy_to, "/var/www/apps"
16
+ set :deploy_to, "/var/www/apps/#{application}"
17
17
 
18
18
  set :server_name, 'daytona.slingshothosting.com'
19
19
  set :server_ip, '1.2.3.4'
@@ -144,12 +144,17 @@ task :create_startup_files_and_entries do
144
144
  run "echo \"Include /etc/rails/*.conf\" >> /usr/local/apache2/conf/httpd.conf"
145
145
  run "echo \"NameVirtualHost *:80\" >> /usr/local/apache2/conf/httpd.conf"
146
146
 
147
+ # mysql
147
148
  run "/etc/init.d/mysqld start"
148
149
  run "/sbin/chkconfig mysqld on"
149
150
 
150
151
  # sendmail
151
152
  run "/etc/init.d/sendmail start"
152
153
  run "/sbin/chkconfig sendmail on"
154
+
155
+ # yum nightly updates
156
+ run "/etc/init.d/yum start"
157
+ run "/sbin/chkconfig yum on"
153
158
  end
154
159
 
155
160
  desc "Setup timezone and ntpdate"
@@ -542,4 +547,79 @@ EOF
542
547
  run "mysql -u root < #{deploy_to}/#{shared_dir}/system/mysql_setup_file.sql"
543
548
  end
544
549
 
550
+ desc "Setup Daily tasks"
551
+ task :setup_daily_tasks do
552
+ svn_backup_cron_job = render :template => <<-EOF
553
+ #~/bin/bash
554
+ # backup and make hotcopies of svn repos
555
+ # ex:
556
+ # svnadmin hotcopy /var/svn/repos/simple /backups/svn/simple
557
+
558
+ svnAdmin="/usr/local/bin/svnadmin"
559
+ svnDirs=`find /var/svn/repos/* -type d -prune`
560
+ backupDir="/backups/svn/"
561
+
562
+ # hotcopy expects an empty directory
563
+ rm -rf $backupDir
564
+ mkdir -p $backupDir
565
+
566
+ for dir in $svnDirs; do
567
+ appName=`basename $dir`
568
+ $svnAdmin hotcopy $dir $backupDir/$appName
569
+ done
570
+ EOF
571
+
572
+ put svn_backup_cron_job, "#{deploy_to}/#{shared_dir}/system/svn_backup.sh"
573
+ sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/svn_backup.sh /etc/cron.daily/svn_backup.sh"
574
+ sudo "chmod +x /etc/cron.daily/svn_backup.sh"
575
+
576
+ mysql_backup_cron_job = render :template => <<-EOF
577
+ #!/bin/bash
578
+ # backup all databases
579
+ mkdir -p /backups/mysql
580
+ /usr/bin/mysqldump --user=root --all-databases > /backups/mysql/mysqldump_all_databases.sql
581
+ EOF
582
+
583
+ put mysql_backup_cron_job, "#{deploy_to}/#{shared_dir}/system/mysql_backup.sh"
584
+ sudo "ln -nfs #{deploy_to}/#{shared_dir}/system/mysql_backup.sh /etc/cron.daily/mysql_backup.sh"
585
+ sudo "chmod +x /etc/cron.daily/mysql_backup.sh"
586
+
587
+ end
588
+
589
+ desc "Patch mongrel to remove stale PIDS"
590
+ task :patch_mongrel_to_remove_stale_pids do
591
+
592
+ mongrel_patch_to_remove_stale_pids = render :template => <<-'EOF'
593
+ --- bin/mongrel_rails-orig 2007-04-13 09:44:11.000000000 +0300
594
+ +++ bin/mongrel_rails 2007-04-13 10:00:39.000000000 +0300
595
+ @@ -83,10 +83,18 @@
596
+ config = Mongrel::Rails::RailsConfigurator.new(settings) do
597
+ if defaults[:daemon]
598
+ if File.exist? defaults[:pid_file]
599
+ - log "!!! PID file #{defaults[:pid_file]} already exists. Mongrel could be running already. Check your #{defaults[:log_file]} for errors."
600
+ - log "!!! Exiting with error. You must stop mongrel and clear the .pid before I'll attempt a start."
601
+ - exit 1
602
+ - end
603
+ + # mongrels that crash can leave stale PID files behind, and these
604
+ + # should not stop mongrel from being restarted by monitors...
605
+ + pid = File.new(defaults[:pid_file]).readline
606
+ + unless `ps -ef | grep #{pid} | grep -v grep`.length > 0
607
+ + # use "ps ax" for freebsd
608
+ + log "!!! PID file #{defaults[:pid_file]} exists, but is stale, and will be deleted so that this mongrel can run."
609
+ + File.delete(defaults[:pid_file])
610
+ + else
611
+ + log "!!! PID file #{defaults[:pid_file]} already exists and the process id referred to in it is running. This mongrel is probably already running. #{defaults[:log_file]} for errors. EXITING."
612
+ + exit 1
613
+ + end
614
+ + end
615
+
616
+ daemonize
617
+ log "Daemonized, any open files are closed. Look at #{defaults[:pid_file]} and #{defaults[:log_file]} for info."
618
+ EOF
619
+
620
+ put mongrel_patch_to_remove_stale_pids, "/tmp/mongrel_patch_to_remove_stale_pids.patch"
621
+ run "cd /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1 && sudo patch -p0 < /tmp/mongrel_patch_to_remove_stale_pids.patch"
622
+ end
623
+
624
+
545
625
  end # end capistrano extensions
@@ -2,7 +2,7 @@ module Slingshot #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 0
5
+ TINY = 1
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.0</a>
36
+ <a href="http://rubyforge.org/projects/slingshot" class="numbers">1.0.1</a>
37
37
  </div>
38
38
  <h2>What</h2>
39
39
 
@@ -108,11 +108,27 @@ config/deploy.rb:</p>
108
108
 
109
109
 
110
110
  <pre syntax="ruby">
111
+ set :application, "application"
112
+ set :repository, "http://svn.yourhost.com/#{application}/trunk"
113
+
111
114
  set :server_name, 'daytona.slingshothosting.com'
112
115
  set :server_ip, '1.2.3.4'
113
116
  set :server_fqdn, 'daytona.slingshothosting.com'
114
117
 
115
118
  set :domain_name, 'yourdomain.com'
119
+
120
+ set :user, 'deploy'
121
+ set :password, 'password'
122
+
123
+ set :deploy_to, "/var/www/apps/#{application}"
124
+ </pre>
125
+
126
+ <p>You can also optionally set a valid timezone such as <span class="caps">EST</span>, EST5EDT,
127
+ <span class="caps">CST6DT</span>, MST, or <span class="caps">PST8PDT</span> (the default is <span class="caps">GMT</span>):</p>
128
+
129
+
130
+ <pre syntax="ruby">
131
+ set :server_timezone, 'GMT'
116
132
  </pre>
117
133
 
118
134
  <p>Let&#8217;s do a pretend setup to see what happens:</p>
@@ -172,7 +188,7 @@ just holler at the Highgroove Studios or Slingshot Hosting team.</p>
172
188
 
173
189
  <p>Comments are welcome. Send an email to <a href="mailto:cbq@highgroove.com">Charles Brian Quinn</a>.</p>
174
190
  <p class="coda">
175
- <a href="mailto:cbq@highgroove.com">Charles Brian Quinn</a>, 30th June 2007<br>
191
+ <a href="mailto:cbq@highgroove.com">Charles Brian Quinn</a>, 1st July 2007<br>
176
192
  Gem packager/webpage/scripts by <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a><br>
177
193
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
178
194
  </p>
data/website/index.txt CHANGED
@@ -56,11 +56,26 @@ We now need to configure a few variables, simply add these to the
56
56
  config/deploy.rb:
57
57
 
58
58
  <pre syntax="ruby">
59
+ set :application, "application"
60
+ set :repository, "http://svn.yourhost.com/#{application}/trunk"
61
+
59
62
  set :server_name, 'daytona.slingshothosting.com'
60
63
  set :server_ip, '1.2.3.4'
61
64
  set :server_fqdn, 'daytona.slingshothosting.com'
62
65
 
63
66
  set :domain_name, 'yourdomain.com'
67
+
68
+ set :user, 'deploy'
69
+ set :password, 'password'
70
+
71
+ set :deploy_to, "/var/www/apps/#{application}"
72
+ </pre>
73
+
74
+ You can also optionally set a valid timezone such as EST, EST5EDT,
75
+ CST6DT, MST, or PST8PDT (the default is GMT):
76
+
77
+ <pre syntax="ruby">
78
+ set :server_timezone, 'GMT'
64
79
  </pre>
65
80
 
66
81
  Let's do a pretend setup to see what happens:
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.0
7
- date: 2007-07-01 00:00:00 -04:00
6
+ version: 1.0.1
7
+ date: 2007-07-02 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