deprec 1.9.3 → 2.0.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.
Files changed (188) hide show
  1. data/CHANGELOG +280 -0
  2. data/COPYING +19 -0
  3. data/LICENSE +339 -0
  4. data/README +152 -0
  5. data/THANKS +17 -0
  6. data/bin/depify +128 -0
  7. data/docs/EXAMPLE-installing_tracks.txt +41 -0
  8. data/docs/README.nagios +22 -0
  9. data/docs/README.rails +17 -0
  10. data/docs/config_gen_explained.txt +39 -0
  11. data/docs/{README.quickstart → deprec-1.x/deprec-1.x.quickstart} +4 -1
  12. data/docs/{building_edge_capistrano.txt → deprec-1.x/notes.txt} +6 -3
  13. data/docs/old/deprec_banner.gif +0 -0
  14. data/docs/windows_linux.txt +350 -0
  15. data/docs/xen/traffic_monitoring_with_vnstat.txt +95 -0
  16. data/docs/xen/xen-tools-notes.txt +31 -0
  17. data/docs/xen/xen_on_hardy.txt +39 -0
  18. data/lib/deprec.rb +8 -1
  19. data/lib/deprec/capistrano_extensions.rb +442 -0
  20. data/lib/deprec/recipes.rb +50 -233
  21. data/lib/deprec/recipes/aoe.rb +79 -0
  22. data/lib/deprec/recipes/app/mongrel.rb +213 -0
  23. data/lib/deprec/recipes/app/passenger.rb +197 -0
  24. data/lib/deprec/recipes/apt_mirror.rb +99 -0
  25. data/lib/deprec/recipes/ar_sendmail.rb +67 -0
  26. data/lib/deprec/recipes/canonical.rb +68 -0
  27. data/lib/deprec/recipes/db/mysql.rb +144 -0
  28. data/lib/deprec/recipes/db/postgresql.rb +104 -0
  29. data/lib/deprec/recipes/db/sqlite.rb +37 -0
  30. data/lib/deprec/recipes/ddclient.rb +51 -0
  31. data/lib/deprec/recipes/deprec.rb +199 -0
  32. data/lib/deprec/recipes/deprecated.rb +71 -0
  33. data/lib/deprec/recipes/example.rb +115 -0
  34. data/lib/deprec/recipes/git.rb +97 -0
  35. data/lib/deprec/recipes/gitosis.rb +48 -0
  36. data/lib/deprec/recipes/heartbeat.rb +138 -0
  37. data/lib/deprec/recipes/logrotate.rb +54 -0
  38. data/lib/deprec/recipes/lvm.rb +20 -0
  39. data/lib/deprec/recipes/memcache.rb +6 -2
  40. data/lib/deprec/recipes/monit.rb +143 -0
  41. data/lib/deprec/recipes/nagios.rb +305 -0
  42. data/lib/deprec/recipes/network.rb +93 -0
  43. data/lib/deprec/recipes/ntp.rb +103 -0
  44. data/lib/deprec/recipes/php.rb +58 -0
  45. data/lib/deprec/recipes/postfix.rb +115 -0
  46. data/lib/deprec/recipes/rails.rb +300 -55
  47. data/lib/deprec/recipes/ruby/mri.rb +55 -0
  48. data/lib/deprec/recipes/ruby/ree.rb +41 -0
  49. data/lib/deprec/recipes/sphinx.rb +86 -0
  50. data/lib/deprec/recipes/ssh.rb +85 -18
  51. data/lib/deprec/recipes/ssl.rb +55 -0
  52. data/lib/deprec/recipes/starling.rb +119 -0
  53. data/lib/deprec/recipes/svn.rb +163 -183
  54. data/lib/deprec/recipes/trac.rb +239 -62
  55. data/lib/deprec/recipes/ubuntu.rb +18 -100
  56. data/lib/deprec/recipes/users.rb +90 -0
  57. data/lib/deprec/recipes/utils.rb +58 -0
  58. data/lib/deprec/recipes/vnstat.rb +85 -0
  59. data/lib/deprec/recipes/web/apache.rb +119 -0
  60. data/lib/deprec/recipes/web/nginx.rb +172 -0
  61. data/lib/deprec/recipes/wordpress.rb +96 -0
  62. data/lib/deprec/recipes/wpmu.rb +103 -0
  63. data/lib/deprec/recipes/xen.rb +267 -0
  64. data/lib/deprec/recipes/xentools.rb +75 -0
  65. data/lib/deprec/templates/aoe/aoe-init +55 -0
  66. data/lib/deprec/templates/aoe/fence_aoemask +351 -0
  67. data/lib/deprec/templates/apache/namevirtualhosts.conf +5 -0
  68. data/lib/deprec/templates/apt/sources.list +18 -0
  69. data/lib/deprec/templates/apt_mirror/apt-mirror-cron +4 -0
  70. data/lib/deprec/templates/apt_mirror/mirror.list +33 -0
  71. data/lib/deprec/templates/ar_sendmail/logrotate.conf.erb +9 -0
  72. data/lib/deprec/templates/ar_sendmail/monit.conf.erb +5 -0
  73. data/lib/deprec/templates/ddclient/ddclient.conf.erb +11 -0
  74. data/lib/deprec/templates/ddclient/ddclient.erb +15 -0
  75. data/lib/deprec/templates/deprec/caprc.erb +14 -0
  76. data/lib/deprec/templates/heartbeat/authkeys.erb +2 -0
  77. data/lib/deprec/templates/heartbeat/ha.cf.erb +15 -0
  78. data/lib/deprec/templates/heartbeat/haresources.erb +1 -0
  79. data/lib/deprec/templates/logrotate/logrotate.conf.erb +32 -0
  80. data/lib/deprec/templates/mongrel/apache_vhost.erb +148 -0
  81. data/lib/deprec/templates/mongrel/logrotate.conf.erb +11 -0
  82. data/lib/deprec/{third_party/mongrel_cluster/resources/mongrel_cluster → templates/mongrel/mongrel_cluster-init-script} +19 -6
  83. data/lib/deprec/templates/mongrel/mongrel_cluster.yml.erb +10 -0
  84. data/lib/deprec/templates/mongrel/monit.conf.erb +17 -0
  85. data/lib/deprec/templates/mongrel/nginx_vhost.erb +41 -0
  86. data/lib/deprec/templates/monit/monit-init-script +104 -0
  87. data/lib/deprec/templates/monit/monitrc.erb +227 -0
  88. data/lib/deprec/templates/monit/nothing +0 -0
  89. data/lib/deprec/templates/mysql/create_databases.sql +20 -0
  90. data/lib/deprec/templates/mysql/database.yml.prod +6 -0
  91. data/lib/deprec/templates/mysql/database.yml.stage +6 -0
  92. data/lib/deprec/templates/mysql/my.cnf.erb +140 -0
  93. data/lib/deprec/templates/mysql/sphinx.conf.prod +542 -0
  94. data/lib/deprec/templates/mysql/sphinx.conf.stage +542 -0
  95. data/lib/deprec/templates/nagios/cgi.cfg.erb +321 -0
  96. data/lib/deprec/templates/nagios/check_linux_free_memory.pl +118 -0
  97. data/lib/deprec/templates/nagios/check_mongrel_cluster.rb +82 -0
  98. data/lib/deprec/templates/nagios/commands.cfg.erb +240 -0
  99. data/lib/deprec/templates/nagios/contacts.cfg.erb +57 -0
  100. data/lib/deprec/templates/nagios/hosts.cfg.erb +143 -0
  101. data/lib/deprec/templates/nagios/htpasswd.users +1 -0
  102. data/lib/deprec/templates/nagios/localhost.cfg.erb +157 -0
  103. data/lib/deprec/templates/nagios/nagios.cfg.erb +1274 -0
  104. data/lib/deprec/templates/nagios/nagios_apache_vhost.conf.erb +45 -0
  105. data/lib/deprec/templates/nagios/nrpe.cfg.erb +210 -0
  106. data/lib/deprec/templates/nagios/nrpe.xinetd.erb +16 -0
  107. data/lib/deprec/templates/nagios/resource.cfg.erb +34 -0
  108. data/lib/deprec/templates/nagios/services.cfg.erb +79 -0
  109. data/lib/deprec/templates/nagios/templates.cfg.erb +9 -0
  110. data/lib/deprec/templates/nagios/timeperiods.cfg.erb +94 -0
  111. data/lib/deprec/templates/network/hostname.erb +1 -0
  112. data/lib/deprec/templates/network/hosts.erb +2 -0
  113. data/lib/deprec/templates/network/interfaces.erb +18 -0
  114. data/lib/deprec/templates/network/resolv.conf.erb +6 -0
  115. data/lib/deprec/templates/nginx/logrotate.conf.erb +13 -0
  116. data/lib/deprec/templates/nginx/mime.types.erb +70 -0
  117. data/lib/deprec/templates/nginx/nginx-init-script +62 -0
  118. data/lib/deprec/templates/nginx/nginx.conf.erb +125 -0
  119. data/lib/deprec/templates/nginx/nginx.logrotate.d +12 -0
  120. data/lib/deprec/templates/nginx/nothing.conf +1 -0
  121. data/lib/deprec/templates/nginx/rails_nginx_vhost.conf.erb +41 -0
  122. data/lib/deprec/templates/ntp/ntp.conf.erb +42 -0
  123. data/lib/deprec/templates/passenger/apache_vhost.erb +21 -0
  124. data/lib/deprec/templates/passenger/passenger.conf.erb +21 -0
  125. data/lib/deprec/templates/passenger/passenger.load.erb +3 -0
  126. data/lib/deprec/templates/postfix/aliases.erb +3 -0
  127. data/lib/deprec/templates/postfix/dynamicmaps.cf.erb +8 -0
  128. data/lib/deprec/templates/{postfix_main.conf → postfix/main.cf.erb} +6 -8
  129. data/lib/deprec/templates/postfix/master.cf.erb +77 -0
  130. data/lib/deprec/templates/sphinx/monit.conf.erb +5 -0
  131. data/lib/deprec/templates/ssh/ssh_config.erb +50 -0
  132. data/lib/deprec/templates/ssh/sshd_config.erb +78 -0
  133. data/lib/deprec/templates/ssl/make-ssl-cert +138 -0
  134. data/lib/deprec/templates/ssl/ssl-cert-snakeoil.key +15 -0
  135. data/lib/deprec/templates/ssl/ssl-cert-snakeoil.pem +19 -0
  136. data/lib/deprec/templates/starling/monit.conf.erb +14 -0
  137. data/lib/deprec/templates/starling/starling-init-script.erb +71 -0
  138. data/lib/deprec/templates/subversion/svn.apache.vhost.erb +43 -0
  139. data/lib/deprec/templates/trac/apache_vhost.conf.erb +24 -0
  140. data/lib/deprec/templates/trac/nginx_vhost.conf.erb +26 -0
  141. data/lib/deprec/templates/trac/trac.ini.erb +169 -0
  142. data/lib/deprec/templates/trac/trac_deprec.png +0 -0
  143. data/lib/deprec/templates/trac/tracd-init.erb +43 -0
  144. data/lib/deprec/templates/trac/users.htdigest.erb +0 -0
  145. data/lib/deprec/templates/vnstat/config.php +57 -0
  146. data/lib/deprec/templates/wordpress/apache2_wordpress_vhost.conf.erb +31 -0
  147. data/lib/deprec/templates/wordpress/wp-config.php.erb +31 -0
  148. data/lib/deprec/templates/wpmu/apache_vhost.conf.erb +13 -0
  149. data/lib/deprec/templates/xen/network-bridge-wrapper +3 -0
  150. data/lib/deprec/templates/xen/xend-config.sxp.erb +195 -0
  151. data/lib/deprec/templates/xen/xend-init.erb +57 -0
  152. data/lib/deprec/templates/xen/xendomains.erb +137 -0
  153. data/lib/deprec/templates/xentools/15-disable-hwclock +40 -0
  154. data/lib/deprec/templates/xentools/40-setup-networking +145 -0
  155. data/lib/deprec/templates/xentools/xen-tools.conf.erb +276 -0
  156. data/lib/deprec/templates/xentools/xm.tmpl.erb +138 -0
  157. data/lib/deprec_cmd_completion.sh +26 -0
  158. data/lib/vmbuilder_plugins/all.rb +20 -0
  159. data/lib/vmbuilder_plugins/apt.rb +93 -0
  160. data/lib/vmbuilder_plugins/emerge.rb +76 -0
  161. data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/gem.rb +10 -17
  162. data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/std.rb +69 -19
  163. metadata +204 -55
  164. data/bin/deprec +0 -35
  165. data/docs/README.slicehost +0 -14
  166. data/docs/README.svn_trac +0 -19
  167. data/lib/deprec/capistrano_extensions/actor_extensions.rb +0 -89
  168. data/lib/deprec/capistrano_extensions/cli_extensions.rb +0 -38
  169. data/lib/deprec/capistrano_extensions/deprec_extensions.rb +0 -137
  170. data/lib/deprec/generators/deprec/USAGE +0 -11
  171. data/lib/deprec/generators/deprec/deprec_generator.rb +0 -24
  172. data/lib/deprec/generators/deprec/templates/deploy.rb +0 -90
  173. data/lib/deprec/generators/loader.rb +0 -20
  174. data/lib/deprec/recipes/apache.rb +0 -91
  175. data/lib/deprec/recipes/cache_svn.rb +0 -74
  176. data/lib/deprec/recipes/vmware.rb +0 -114
  177. data/lib/deprec/templates/trac.ini.erb +0 -106
  178. data/lib/deprec/third_party/THIRD_PARTY_README +0 -12
  179. data/lib/deprec/third_party/mongrel_cluster/LICENSE +0 -506
  180. data/lib/deprec/third_party/mongrel_cluster/recipes.rb +0 -96
  181. data/lib/deprec/third_party/railsmachine/LICENSE +0 -506
  182. data/lib/deprec/third_party/railsmachine/recipes/apache.rb +0 -92
  183. data/lib/deprec/third_party/railsmachine/recipes/mysql.rb +0 -73
  184. data/lib/deprec/third_party/railsmachine/recipes/templates/httpd-ssl.conf +0 -80
  185. data/lib/deprec/third_party/railsmachine/recipes/templates/httpd.conf +0 -57
  186. data/lib/deprec/third_party/vmbuilder/plugins.rb +0 -8
  187. data/lib/deprec/third_party/vmbuilder/plugins/apt.rb +0 -144
  188. data/resources/capistrano_include_dotfiles.patch +0 -17
data/README ADDED
@@ -0,0 +1,152 @@
1
+ ------------------------------------------
2
+ deprec - Deployment Recipes for Capistrano
3
+ ------------------------------------------
4
+
5
+ == Introduction
6
+
7
+ The deprec [1] gem is a set of tasks for Capistrano [2]. These tasks provide
8
+ for the installation, configuration and control of system services on servers
9
+ running Ubuntu linux. Deprec was created in 2006 by Mike Bailey to setup an
10
+ environment for running Ruby on Rails web applications on Ubuntu servers. Since
11
+ then its uses have grown to installing Xen virtualization, mail, monitoring, high
12
+ availability IP failover and other services.
13
+
14
+ The tasks are run at the command line on your workstation and connect to
15
+ remote servers via ssh to run commands and copy out files.
16
+
17
+ Deprec-2.x is a complete rewrite of the project that achieves the following:
18
+
19
+ - support for Capistrano 2
20
+ - generated config files are stored locally to enable editing and version control
21
+ - support for more services (heartbeat, nagios, nginx, ntp, postfix, etc)
22
+ - multiple Rails deployment options (Passenger+Apache, Mongrel+Apache/Nginx)
23
+ - creation of a standard base set of task names
24
+ - tasks are cleanly separated into namespaced units (one file per service)
25
+ - interactive prompting for missing config values
26
+
27
+ Deprec and Capistrano are written in the Ruby programming language [3] however
28
+ no knowledge of Ruby is required to use it. Users should be able to write
29
+ new tasks and modify existing options without prior knowledge of Ruby.
30
+
31
+
32
+ == Installation
33
+
34
+ Deprec can be obtained from rubyforge[4] and installed using rubygems[5].
35
+
36
+ sudo gem install deprec # installs deprec and dependancies
37
+ cap depify . # creates ~/.caprc which you may edit
38
+ cap -T # should list lots of deprec tasks
39
+
40
+ The .caprc file is loaded every time you use Capistrano. It in turn loads
41
+ the deprec tasks so you always have them available. Editing the .caprc file
42
+ in your home directory allows you to specify the location of your ssh key
43
+ and enable some other useful options (documented in the comments). You can
44
+ also put tasks here that you want access to, regardless of the current working
45
+ directory.
46
+
47
+
48
+ == Getting a Ruby on Rails app running on a fresh Ubuntu server
49
+
50
+ This is still what brings people to deprec. You can install a full Rails stack
51
+ and get multiple apps running on it in much less time than it would take to
52
+ do it manually (e.g. an hour vs. a weekend).
53
+
54
+ Get your app running on a fresh Ubuntu (7.10, 8.04) server with these commands:
55
+
56
+ cd your_rails_app
57
+ depify .
58
+ # Edit config/deploy.rb
59
+ cap deprec:rails:install_stack
60
+
61
+ # WARNING! Don't run the following command if you are using a shared
62
+ # database server that has already been installed.
63
+ cap deprec:db:install
64
+
65
+ cap deploy:setup
66
+ cap deploy
67
+ cap deploy:migrate
68
+
69
+ Recorded times for complete install on Ubuntu hardy server (7.10 amd64)
70
+
71
+ * Passenger+REE+Apache : 14m29s
72
+ * Passenger+ruby-1.8.7+Apache : 17m51s
73
+ * nginx+mongrel : 16m25s
74
+
75
+ Note you can choose combinations of:
76
+
77
+ * Ruby Enterprise Edition or ruby-1.8.7
78
+ * Passenger or mongrel (passenger requires you choose to the apache option)
79
+ * Apache or nginx
80
+
81
+ You can find documentation on the deprec site. http://www.deprec.org/
82
+
83
+
84
+ == Installing other things
85
+
86
+ I plan to document other things I use deprec for on http://www.deprec.org/.
87
+ Feel free to poke around and see what's there. I use deprec to provision and
88
+ manage servers so you might find some things in there I haven't documented. Lucky you.
89
+
90
+
91
+ == Disclaimer
92
+
93
+ The tasks run commands that may make changes to your workstation and remote server.
94
+ You are advised to read the source and use at your own risk.
95
+
96
+
97
+ == Credits
98
+
99
+ Deprec is written and maintained by Mike Bailey <mike@bailey.net.au>.
100
+ More about me here: [http://mike.bailey.net.au/]
101
+
102
+ Deprec was inspired and uses the brilliantly executed Capistrano. Thanks Jamis!
103
+ This gem includes a modified copy of Neil Wilson's very useful vmbuilder_plugins gem.
104
+
105
+
106
+ == Thanks
107
+
108
+ Deprec wouldn't be what it is without the contributions of many people, a few of whom are listed here:
109
+
110
+ Square Circle Triangle: commissioned work that has included in the project.
111
+ Eric Harris-Braun: great testing, bug reports and suggestions
112
+ Gus Gollings: helped restore www.deprec.org
113
+ Craig Ambrose: testing, documentation and beer
114
+
115
+ github forks of note:
116
+ isaac
117
+ paulreimer
118
+ jasherai
119
+ saimonmoore
120
+ zippy
121
+
122
+
123
+ == License
124
+
125
+ Deprec is licenced under the GPL. This means that you can use it in commercial
126
+ or open source applications. More details found here:
127
+ http://www.gnu.org/licenses/gpl.html
128
+
129
+ deprec - deployment recipes for capistrano
130
+ Copyright (C) 2006-2008 Mike Bailey
131
+
132
+ This program is free software; you can redistribute it and/or
133
+ modify it under the terms of the GNU General Public License
134
+ as published by the Free Software Foundation; either version 2
135
+ of the License, or (at your option) any later version.
136
+
137
+ This program is distributed in the hope that it will be useful,
138
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
139
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140
+ GNU General Public License for more details.
141
+
142
+ You should have received a copy of the GNU General Public License
143
+ along with this program; if not, write to the Free Software
144
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
145
+
146
+
147
+ [1] http://www.deprec.org/
148
+ [2] http://www.capify.org/
149
+ [3] http://www.ruby-lang.org/en/
150
+ [4] http://rubyforge.org/
151
+ [5] http://rubygems.org/
152
+ [6] http://www.sct.com.au/
data/THANKS ADDED
@@ -0,0 +1,17 @@
1
+ Big thanks go to the following people. Apologies to any I have missed! - Mike
2
+
3
+ 20080226 Chris Turner for an excellent HOWTO http://crackthenut.cracklabs.com/deprec2-your-slice-from-windows/
4
+ 20080206 Eric Harris-Braun for some great testing, bug reports and suggestions.
5
+ 20071004 Gus Gollings for helping restore www.deprec.org
6
+
7
+ Seen on github http://github.com/mbailey/deprec/network
8
+
9
+ isaac
10
+ jasherai Pritesh (London)
11
+ zippy Eric Harris-Braun (NY) <eric@harris-braun.com> http://eric.harris-braun.com
12
+ kovacs Michael Kovacs (SF) <michael@mkovacs.com> http://javathehutt.blogspot.com
13
+ robc Rob Caporetto (Melbourne) rcaporetto@gmail.com http://www.rob-caporetto.com
14
+
15
+
16
+
17
+
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+
5
+ OptionParser.new do |opts|
6
+ opts.banner = "Usage: #{File.basename($0)} [path]"
7
+
8
+ opts.on("-h", "--help", "Displays this help info") do
9
+ puts opts
10
+ exit 0
11
+ end
12
+
13
+ begin
14
+ opts.parse!(ARGV)
15
+ rescue OptionParser::ParseError => e
16
+ warn e.message
17
+ puts opts
18
+ exit 1
19
+ end
20
+ end
21
+
22
+ if ARGV.empty?
23
+ abort "Please specify the directory to depify, e.g. `#{File.basename($0)} .'"
24
+ elsif !File.exists?(ARGV.first)
25
+ abort "`#{ARGV.first}' does not exist."
26
+ elsif !File.directory?(ARGV.first)
27
+ abort "`#{ARGV.first}' is not a directory."
28
+ elsif ARGV.length > 1
29
+ abort "Too many arguments; please specify only the directory to capify."
30
+ end
31
+
32
+ def unindent(string)
33
+ indentation = string[/\A\s*/]
34
+ string.strip.gsub(/^#{indentation}/, "")
35
+ end
36
+
37
+
38
+ caprc = unindent(<<-FILE)
39
+ # .caprc - Capistrano configs (added by deprec gem [www.deprec.org])
40
+ #
41
+ # Include settings that you want active whenever you use Capistrano
42
+ # You can over ride these for particular projects by putting entries
43
+ # into Capfile or deploy.rb for those projects
44
+ #
45
+ # Uncomment any of the following entries to enable them.
46
+ #
47
+ # Include deprec - deployment recipes for Capistrano (www.deprec.org)
48
+ #
49
+ require 'deprec'
50
+
51
+ FILE
52
+
53
+ files = {
54
+ "Capfile" => unindent(<<-FILE),
55
+ load 'deploy' if respond_to?(:namespace) # cap2 differentiator
56
+ Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
57
+ Dir['config/*/recipes.rb'].each { |plugin| load(plugin) }
58
+ load 'config/deploy'
59
+ FILE
60
+
61
+ "config/deploy.rb" => unindent(<<-FILE),
62
+ require 'deprec'
63
+
64
+ set :application, "set your application name here"
65
+ set :domain, "set domain name project will be served on here"
66
+ set :repository, "git://github.com/\#{user}/\#{application}.git"
67
+
68
+ # If you aren't using Subversion to manage your source code, specify
69
+ # your SCM below:
70
+ set :scm, :git
71
+
72
+ set :ruby_vm_type, :ree
73
+ set :web_server_type, :apache
74
+ set :app_server_type, :passenger
75
+ set :db_server_type, :mysql
76
+
77
+ # set :packages_for_project, %w(libmagick9-dev imagemagick libfreeimage3) # list of packages to be installed
78
+ # set :gems_for_project, %w(rmagick mini_magick image_science) # list of gems to be installed
79
+
80
+ # Update these if you're not running everything on one host.
81
+ role :app, domain
82
+ role :web, domain
83
+ role :db, domain, :primary => true
84
+
85
+ # If you aren't deploying to /opt/apps/\#{application} on the target
86
+ # servers (which is the deprec default), you can specify the actual location
87
+ # via the :deploy_to variable:
88
+ # set :deploy_to, "/opt/apps/\#{application}"
89
+
90
+ namespace :deploy do
91
+ task :restart, :roles => :app, :except => { :no_release => true } do
92
+ top.deprec.app.restart
93
+ end
94
+ end
95
+
96
+ FILE
97
+ }
98
+
99
+ def create_file(file, content)
100
+ if !File.exists?(File.dirname(file))
101
+ puts "[add] creating directory `#{File.dirname(file)}'"
102
+ Dir.mkdir(File.dirname(file))
103
+ end
104
+ if File.exists?(file)
105
+ warn "[skip] `#{file}' already exists"
106
+ elsif File.exists?(file.downcase)
107
+ warn "[skip] `#{file.downcase}' exists, which could conflict with `#{file}'"
108
+ else
109
+ puts "[add] writing `#{file}'"
110
+ File.open(file, "w") { |f| f.write(content) }
111
+ end
112
+ end
113
+
114
+ create_file(File.join(ENV['HOME'], '.caprc'), caprc)
115
+
116
+ base = ARGV.shift
117
+ config_dir = File.join(base,'config')
118
+ if File.directory?(config_dir)
119
+ files.each do |file, content|
120
+ create_file(File.join(base, file), content)
121
+ end
122
+ else
123
+ warn "[warn] directory `#{config_dir}' does not exist"
124
+ warn "[skip] '#{base}/Capfile'"
125
+ warn "[skip] '#{base}/config/deploy.rb'"
126
+ end
127
+
128
+ puts "[done] depified!"
@@ -0,0 +1,41 @@
1
+ #
2
+ # Install tracks locally
3
+ #
4
+ git clone git://github.com/bsag/tracks.git
5
+ cd tracks
6
+
7
+ cp config/database.yml.tmpl config/database.yml
8
+ cp config/site.yml.tmpl config/site.yml
9
+ cp -r log.tmpl log -u
10
+ rake db:create
11
+ rake db:migrate
12
+ ./script/server # Test locally
13
+
14
+
15
+ #
16
+ # Install deprec
17
+ #
18
+ sudo gem install deprec
19
+ cap deprec:users:passwd HOSTS=192.168.0.135 USER=root # Change root password
20
+ cap deprec:users:add HOSTS=192.168.0.135 USER=root # Add personal account
21
+
22
+
23
+ #
24
+ # Create deploy.rb file for tracks
25
+ #
26
+ depify .
27
+ curl -o config/deploy.rb http://mbailey.github.com/deprec/deploy.rb-tracks
28
+ # Edit config/deploy.rb specifying the domain name to serve the app on.
29
+
30
+
31
+ #
32
+ # Install on remote server
33
+ #
34
+
35
+ cap deprec:rails:install_stack
36
+ cap deprec:db:install
37
+ cap deploy:setup
38
+ cap deploy
39
+ cap deploy:migrate
40
+
41
+ # Tracks is now running on your server. Enjoy!
@@ -0,0 +1,22 @@
1
+ deprec: Install and configure Nagios on Ubuntu 7.10 (gutsy), 8.04 (hardy)
2
+ =========================================================================
3
+
4
+ * Quickstart
5
+
6
+ # You need the following item defined in config/deploy.rb (or ~/.caprc)
7
+ role :nagios, 'monitor.blah.com'
8
+
9
+ # Run the following on your workstation
10
+ export HOSTS=nagios.domain.name # replace with desired domain
11
+ cap deprec:apache:install
12
+ cap deprec:nagios:install
13
+ cap deprec:nagios_plugins:install
14
+ cap deprec:nagios:config_gen
15
+ cap deprec:nagios:htpass # create web logins
16
+ cap deprec:nagios:config
17
+ cap deprec:apache:restart
18
+
19
+
20
+ * The detail
21
+
22
+ TBC
@@ -0,0 +1,17 @@
1
+ deprec: Install Ruby on Rails app on fresh Ubuntu 7.10 (gutsy), 8.04 (hardy)
2
+ ============================================================================
3
+
4
+ * Quickstart
5
+
6
+ cd your_rails_app
7
+ depify .
8
+ # Edit config/deploy.rb
9
+ cap deprec:rails:install_stack
10
+
11
+ # WARNING! Don't run the following command if you are using a shared
12
+ # database server that has already been installed.
13
+ cap deprec:db:install
14
+
15
+ cap deploy:setup
16
+ cap deploy
17
+ cap deploy:migrate
@@ -0,0 +1,39 @@
1
+ == Configuration
2
+
3
+ deprec2 has a two stage process for generating/deploying configuration files.
4
+ Configuration files for web, app, db servers (and more) are generated from
5
+ templates and put under the config/ tree in your Rails apps source tree.
6
+ Alternatively you could create a non-rails-app tree to hold them. The second
7
+ stage is pushing the files out to the destination servers. This used to be a
8
+ one stage process in deprec1 however the change has been made so that:
9
+
10
+ - all config files for a project can be kept under source control
11
+ - you can make changes to config files that are not available through deprec
12
+
13
+ Many of the settings in these config files are based on values in the projects
14
+ deploy.rb file. Others reflect defaults in deprec that you can override by adding
15
+ fields to deploy.rb. This means you may never need to edit the generated config
16
+ files directly. You can generate a set of config files with the following:
17
+
18
+ cap deprec:nginx:config_gen # generates config files for trac from templates
19
+
20
+ config_gen is re-runnable and will prompt you before overwriting a file. It will
21
+ also show you what changes overwriting would make (in diff format) to help you
22
+ decide whether you want it to do so.
23
+
24
+ Changes to service configuration should never be made on the server. Deprec
25
+ acknowledges this by offering no assistance to people who want to copy config
26
+ files back from servers. But pushing the files out couldn't be simpler!
27
+
28
+ cap deprec:nginx:config # pushes out all config files for nginx
29
+
30
+ deprec2 takes into consideration the fact that that some services are used to
31
+ host more than one application. For example, a webserver will often have one
32
+ main configuration and a number of virtual host configurations. Monit has a
33
+ single config file (/etc/monitrc) but will also load other configs it finds in
34
+ a certain directory (/etc/monit.d).
35
+
36
+ When you deploy a Ruby on Rails app with deprec it drops configs for your project
37
+ into the config/ directory for your project and symlinks them into a shared path
38
+ on the server. This means you can install multiple apps on a remote server and
39
+ they shouldn't stop on each other.
@@ -1,3 +1,7 @@
1
+ #
2
+ # Old notes - YMMV
3
+ #
4
+
1
5
  == deprec quickstart (with svn, trac and deployment to apache/mongrel/mysql)
2
6
 
3
7
  Here are instructions that will take a fresh install of Ubuntu Dapper (6.06.1 server), create a working rails app, create an SVN repository and trac installation for it and deploy it using apache, mongrel and mysql.
@@ -7,7 +11,6 @@ to log into the remote server manually. Capistrano does all the work.
7
11
 
8
12
  - Mike
9
13
 
10
-
11
14
  # Install deprec on workstation
12
15
  sudo gem install deprec --include-dependencies
13
16
  echo 'require "deprec/recipes"' >> ~/.caprc
@@ -1,9 +1,12 @@
1
+ # update timezone on gutsy
2
+ # dpkg-reconfigure tzdata
3
+
4
+
5
+ # Building Edge Capistrano
1
6
  You can build an edge gem by cd'ing to that directory and doing:
2
7
 
3
8
  1. svn info. Find the line that says "Revision:" and mark the revision number.
4
-
5
9
  2. rake PKG_BUILD=<rev> gem. Replace <rev> with the revision number.
6
-
7
10
  3. Look in the pkg subdirectory. Install that gem file via "gem install pkg/<gem file>"
8
11
 
9
- - Jamis
12
+ - Jamis