slingshot 1.0.0 → 1.0.1

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.
@@ -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