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
@@ -1,238 +1,55 @@
1
- require 'deprec/recipes/ssh'
2
- require 'deprec/recipes/svn'
3
- require 'deprec/recipes/trac'
4
- require 'deprec/recipes/rails'
5
- require 'deprec/recipes/ubuntu'
6
- require 'deprec/recipes/apache'
7
- require 'deprec/recipes/memcache'
8
- require 'deprec/third_party/mongrel_cluster/recipes'
9
- require 'deprec/third_party/vmbuilder/plugins'
10
- require 'deprec/third_party/railsmachine/recipes/apache'
11
- require 'deprec/third_party/railsmachine/recipes/mysql'
12
- require 'deprec/capistrano_extensions/cli_extensions.rb'
13
- require 'deprec/capistrano_extensions/deprec_extensions.rb'
14
- require 'deprec/capistrano_extensions/actor_extensions.rb'
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ unless Capistrano::Configuration.respond_to?(:instance)
3
+ abort "deprec2 requires Capistrano 2"
4
+ end
5
+ require "#{File.dirname(__FILE__)}/recipes/canonical"
6
+ require "#{File.dirname(__FILE__)}/recipes/deprec"
7
+ require "#{File.dirname(__FILE__)}/recipes/deprecated"
15
8
 
16
- Capistrano.configuration(:must_exist).load do
17
- set :application, lambda { Capistrano::CLI.prompt "Enter application name" }
18
- set :user, (defined?(user) ? user : ENV['USER']) # user who is deploying
19
- set :group, 'deploy' # deployment group
20
- set :src_dir, (defined?(src_dir) ? src_dir : '/usr/local/src') # 3rd party src on servers
21
- set :app_symlinks, nil
22
- set :mongrel_user_prefix, 'mongrel_'
23
- set :mongrel_user, lambda {mongrel_user_prefix + application}
24
- set :mongrel_group_prefix, 'app_'
25
- set :mongrel_group, lambda {mongrel_group_prefix + application}
26
-
27
- desc <<-DESC
28
- setup_rails_host takes a stock standard ubuntu 'dapper' 6.06.1 server
29
- and installs everything needed to be a rails machine
30
- DESC
31
- task :install_rails_stack do
32
- setup_user_perms
33
- enable_universe # we'll need some packages from the 'universe' repository
34
- disable_cdrom_install # we don't want to have to insert cdrom
35
- install_packages_for_rails # install packages that come with distribution
36
- install_rubygems
37
- install_gems
38
- apache_install
39
- end
40
-
41
- desc <<-DESC
42
- deprecated: this function has been replaced by :before_setup and :after_setup
43
- DESC
44
- task :deprec_setup, :except => { :no_release => true } do
45
- setup
46
- end
47
-
48
- desc "creates paths required by Capistrano's :setup task"
49
- task :before_setup, :except => { :no_release => true } do
50
- setup_paths
51
- end
52
-
53
- desc "sets up and configures servers "
54
- task :after_setup, :except => { :no_release => true } do
55
- setup_servers
56
- end
57
-
58
- desc "setup and configure servers"
59
- task :setup_servers do
60
- setup_web
61
- setup_paths
62
- setup_app
63
- setup_symlinks
64
- setup_db # XXX fails is database already exists
65
- end
66
-
67
- task :after_symlink, :roles => :app do
68
- set_perms_for_mongrel_dirs
69
- end
70
-
71
- desc "set group ownership and permissions on dirs mongrel needs to write to"
72
- task :set_perms_for_mongrel_dirs, :roles => :app do
73
- tmp_dir = "#{deploy_to}/current/tmp"
74
- shared_dir = "#{deploy_to}/shared"
75
- files = ["#{deploy_to}/shared/log/mongrel.log", "#{deploy_to}/shared/log/#{rails_env}.log"]
76
-
77
- sudo "chgrp -R #{mongrel_group} #{tmp_dir} #{shared_dir}"
78
- sudo "chmod -R g+w #{tmp_dir} #{shared_dir}"
79
- # set owner and group of mongrels file (if they exist)
80
- files.each { |file|
81
- sudo "chown #{mongrel_user} #{file} || exit 0"
82
- sudo "chgrp #{mongrel_group} #{file} || exit 0"
83
- }
84
- end
85
-
86
- desc "Setup web server."
87
- task :setup_web, :roles => :web do
88
- set :apache_server_name, domain unless apache_server_name
89
- setup_apache
90
- configure_apache
91
- end
92
-
93
- desc "create user and group for mongel to run as"
94
- task :create_mongrel_user_and_group do
95
- set :mongrel_user, 'mongrel_' + application if mongrel_user.nil?
96
- set :mongrel_group, 'app_' + application if mongrel_group.nil?
97
- deprec.groupadd(mongrel_group)
98
- deprec.useradd(mongrel_user, :group => mongrel_group, :homedir => false)
99
- sudo "usermod --gid #{mongrel_group} #{mongrel_user}"
100
- end
101
-
102
- desc "Setup application server."
103
- task :setup_app, :roles => :app do
104
- set :mongrel_environment, rails_env
105
- set :mongrel_port, apache_proxy_port
106
- set :mongrel_servers, apache_proxy_servers
107
- create_mongrel_user_and_group
108
- install_mongrel_start_script
109
- setup_mongrel_cluster_path
110
- configure_mongrel_cluster
111
- end
112
-
113
- desc "Restart application server."
114
- task :restart_app, :roles => :app do
115
- restart_mongrel_cluster
116
- end
117
-
118
- desc "Start application server."
119
- task :start_app, :roles => :app do
120
- start_mongrel_cluster
121
- end
9
+ require "#{File.dirname(__FILE__)}/recipes/app/mongrel"
10
+ require "#{File.dirname(__FILE__)}/recipes/app/passenger"
11
+ require "#{File.dirname(__FILE__)}/recipes/db/mysql"
12
+ require "#{File.dirname(__FILE__)}/recipes/db/postgresql"
13
+ require "#{File.dirname(__FILE__)}/recipes/db/sqlite"
14
+ require "#{File.dirname(__FILE__)}/recipes/ruby/mri"
15
+ require "#{File.dirname(__FILE__)}/recipes/ruby/ree"
16
+ require "#{File.dirname(__FILE__)}/recipes/web/apache"
17
+ require "#{File.dirname(__FILE__)}/recipes/web/nginx"
122
18
 
123
- desc "Start the processes on the application server by calling start_app."
124
- task :spinner, :roles => :app do
125
- start_app
126
- end
127
-
128
- desc "Setup public symlink directories"
129
- task :setup_symlinks, :roles => [:app, :web] do
130
- if app_symlinks
131
- app_symlinks.each { |link| run "mkdir -p #{shared_path}/public/#{link}" }
132
- end
133
- end
134
-
135
- desc "Setup database server."
136
- task :setup_db, :roles => :db, :only => { :primary => true } do
137
- setup_mysql
138
- end
139
-
140
- desc "Setup source control server."
141
- task :setup_scm, :roles => :scm do
142
- svn_create_repos
143
- svn_import
144
- end
145
-
146
- desc "setup extra paths required for deployment"
147
- task :setup_paths, :roles => :app do
148
- # XXX make a function to create a group writable dir
149
- sudo "test -d #{shared_path}/config || sudo mkdir -p #{shared_path}/config"
150
- sudo "chgrp -R #{group} #{deploy_to}"
151
- sudo "chmod -R g+w #{deploy_to}"
152
- end
153
-
154
- task :install_gems do
155
- gem.install 'rails' # gem lib makes installing gems fun
156
- gem.install 'fastthread'
157
- gem.select 'mongrel' # mongrel requires we select a version
158
- gem.install 'mongrel_cluster'
159
- gem.install 'builder'
160
- end
161
-
162
- desc "create deployment group and add current user to it"
163
- task :setup_user_perms do
164
- deprec.groupadd(group)
165
- deprec.add_user_to_group(user, group)
166
- end
167
-
168
- task :install_rubygems do
169
- # XXX should check for presence of ruby first!
170
- version = 'rubygems-1.1.1'
171
- set :src_package, {
172
- :file => version + '.tgz',
173
- :md5sum => '1a77c5b6b293a3ccd5261dc120641ccc rubygems-1.1.1.tgz',
174
- :dir => version,
175
- :url => "http://rubyforge.org/frs/download.php/35283/rubygems-1.1.1.tgz",
176
- :unpack => "tar zxf #{version}.tgz;",
177
- :install => '/usr/bin/ruby1.8 setup.rb;'
178
- }
179
- deprec.download_src(src_package, src_dir)
180
- deprec.install_from_src(src_package, src_dir)
181
- gem.upgrade
182
- gem.update_system
183
- end
184
-
185
- desc "Setup public symlink directories"
186
- task :setup_symlinks, :roles => [:app, :web] do
187
- if app_symlinks
188
- app_symlinks.each { |link| run "mkdir -p #{shared_path}/public/#{link}" }
189
- end
190
- end
19
+ require "#{File.dirname(__FILE__)}/recipes/git"
20
+ require "#{File.dirname(__FILE__)}/recipes/gitosis"
21
+ require "#{File.dirname(__FILE__)}/recipes/svn"
191
22
 
192
- desc "Link up any public directories."
193
- task :symlink_public, :roles => [:app, :web] do
194
- if app_symlinks
195
- app_symlinks.each { |link| run "ln -nfs #{shared_path}/public/#{link} #{current_path}/public/#{link}" }
196
- end
197
- end
198
-
199
- desc "install the rmagic gem, and dependent image-magick library"
200
- task :install_rmagick, :roles => [:app, :web] do
201
- install_image_magic
202
- gem.install 'rmagick'
203
- end
204
-
205
- # Craig: I've kept this generic rather than calling the task setup postfix.
206
- # if people want other smtp servers, it could be configurable
207
- desc "install and configure postfix"
208
- task :setup_smtp_server do
209
- install_postfix
210
- set :postfix_destination_domains, [domain] + apache_server_aliases
211
- deprec.render_template_to_file('postfix_main', '/etc/postfix/main.cf')
212
- end
213
-
214
- task :setup_admin_account do
215
- user = Capistrano::CLI.prompt "Enter userid for new user"
216
- deprec.useradd(user, :shell => '/bin/bash')
217
- puts "Setting pasword for new account"
218
- sudo_with_input("passwd #{user}", /UNIX password/) # ??? how many versions of the prompt are there?
219
- deprec.groupadd('admin')
220
- deprec.add_user_to_group(user, 'admin')
221
- deprec.append_to_file_if_missing('/etc/sudoers', '%admin ALL=(ALL) ALL')
222
- end
223
-
224
- task :setup_admin_account_as_root do
225
- as_root { setup_admin_account }
226
- end
227
-
228
- desc "Change password for the root account"
229
- task :change_root_password do
230
- sudo_with_input("passwd root", /UNIX password/) # ??? how many versions of the prompt are there?
231
- end
23
+ require "#{File.dirname(__FILE__)}/recipes/users"
24
+ require "#{File.dirname(__FILE__)}/recipes/ssh"
25
+ require "#{File.dirname(__FILE__)}/recipes/php"
26
+ # require "#{File.dirname(__FILE__)}/recipes/scm/trac"
232
27
 
233
- task :change_root_password_as_root do
234
- as_root { change_root_password }
235
- end
28
+ require "#{File.dirname(__FILE__)}/recipes/aoe"
236
29
 
237
-
238
- end
30
+ require "#{File.dirname(__FILE__)}/recipes/xen"
31
+ require "#{File.dirname(__FILE__)}/recipes/xentools"
32
+
33
+ require "#{File.dirname(__FILE__)}/recipes/ddclient"
34
+ require "#{File.dirname(__FILE__)}/recipes/ntp"
35
+ require "#{File.dirname(__FILE__)}/recipes/logrotate"
36
+ require "#{File.dirname(__FILE__)}/recipes/ssl"
37
+
38
+ require "#{File.dirname(__FILE__)}/recipes/rails"
39
+ require "#{File.dirname(__FILE__)}/recipes/postfix"
40
+ require "#{File.dirname(__FILE__)}/recipes/memcache"
41
+ require "#{File.dirname(__FILE__)}/recipes/monit"
42
+ require "#{File.dirname(__FILE__)}/recipes/network"
43
+ require "#{File.dirname(__FILE__)}/recipes/nagios"
44
+ require "#{File.dirname(__FILE__)}/recipes/heartbeat"
45
+
46
+ require "#{File.dirname(__FILE__)}/recipes/ubuntu"
47
+ require "#{File.dirname(__FILE__)}/recipes/lvm"
48
+ require "#{File.dirname(__FILE__)}/recipes/vnstat"
49
+ require "#{File.dirname(__FILE__)}/recipes/sphinx"
50
+ require "#{File.dirname(__FILE__)}/recipes/utils"
51
+ require "#{File.dirname(__FILE__)}/recipes/apt_mirror"
52
+ # require "#{File.dirname(__FILE__)}/recipes/wordpress" Not working
53
+ require "#{File.dirname(__FILE__)}/recipes/wpmu"
54
+ require "#{File.dirname(__FILE__)}/recipes/ar_sendmail"
55
+ require "#{File.dirname(__FILE__)}/recipes/starling"
@@ -0,0 +1,79 @@
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+
4
+ SRC_PACKAGES[:aoe] = {
5
+ :url => "http://support.coraid.com/support/linux/aoe6-64.tar.gz",
6
+ :md5sum => "c5e1ebb734e3b29c0a3d886a700ca44a aoe6-64.tar.gz",
7
+ :configure => ''
8
+ }
9
+
10
+ SRC_PACKAGES[:cec] = {
11
+ :url => "http://easynews.dl.sourceforge.net/sourceforge/aoetools/cec-8.tgz",
12
+ :md5sum => "7899dc549f9a368e532f9c39ed819f71 cec-8.tgz",
13
+ :configure => '',
14
+ :install => "test -f /usr/sbin/cec && rm /usr/sbin/cec; make install;"
15
+ }
16
+
17
+ SRC_PACKAGES[:ddt] = {
18
+ :url => "http://support.coraid.com/support/sr/ddt-8.tgz",
19
+ :md5sum => "256a58aba5e05f9995fb9de6aadadf92 ddt-8.tgz"
20
+ }
21
+
22
+ SRC_PACKAGES[:aoemask] = {
23
+ :url => "http://support.coraid.com/support/sr/aoemask-1.tgz",
24
+ :md5sum => "379461a28d511e269f4593b846bd1288 aoemask-1.tgz"
25
+ }
26
+
27
+ namespace :deprec do
28
+ namespace :aoe do
29
+
30
+ desc "Install aoe drivers required to mount Coraid block devices"
31
+ task :install, :roles => :aoe do
32
+ install_deps
33
+ deprec2.download_src(SRC_PACKAGES[:aoe], src_dir)
34
+ deprec2.install_from_src(SRC_PACKAGES[:aoe], src_dir)
35
+ end
36
+
37
+ task :install_deps, :roles => :aoe do
38
+ apt.install( {:base => %w(build-essential linux-headers-$(uname -r) vblade aoetools)}, :stable )
39
+ end
40
+
41
+ desc "Install all AoE related software"
42
+ task :install_all, :roles => :aoe do
43
+ top.deprec.aoe.install
44
+ top.deprec.cec.install
45
+ top.deprec.ddt.install
46
+ top.deprec.aoemask.install
47
+ end
48
+
49
+ end
50
+
51
+ namespace :cec do
52
+ desc "install CEC (Coraid Ethernet Console)"
53
+ task :install, :roles => :aoe do
54
+ deprec2.download_src(SRC_PACKAGES[:cec], src_dir)
55
+ deprec2.install_from_src(SRC_PACKAGES[:cec], src_dir)
56
+ end
57
+ end
58
+
59
+ namespace :ddt do
60
+ desc "install DDT (tool for testing performance)"
61
+ task :install, :roles => :aoe do
62
+ deprec2.download_src(SRC_PACKAGES[:ddt], src_dir)
63
+ deprec2.install_from_src(SRC_PACKAGES[:ddt], src_dir)
64
+ end
65
+ end
66
+
67
+ namespace :aoemask do
68
+ desc "install aoemask"
69
+ task :install, :roles => :aoe do
70
+ deprec2.download_src(SRC_PACKAGES[:aoemask], src_dir)
71
+ deprec2.install_from_src(SRC_PACKAGES[:aoemask], src_dir)
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+ end
78
+
79
+
@@ -0,0 +1,213 @@
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+
4
+ namespace :deprec do
5
+ namespace :mongrel do
6
+
7
+ set :mongrel_servers, 2
8
+ set :mongrel_port, 8000
9
+ set :mongrel_address, "127.0.0.1"
10
+ set(:mongrel_environment) { rails_env }
11
+ set(:mongrel_log_dir) { "#{deploy_to}/shared/log" }
12
+ set(:mongrel_pid_dir) { "#{deploy_to}/shared/pids" }
13
+ set :mongrel_conf_dir, '/etc/mongrel_cluster'
14
+ set(:mongrel_conf) { "/etc/mongrel_cluster/#{application}.yml" }
15
+
16
+ desc "Install mongrel"
17
+ task :install, :roles => :app do
18
+ gem2.install 'mongrel'
19
+ gem2.install 'mongrel_cluster'
20
+ gem2.install 'swiftiply'
21
+ symlink_mongrel_rails
22
+ SYSTEM_CONFIG_FILES[:mongrel].each do |file|
23
+ deprec2.render_template(:mongrel, file.merge(:remote=>true))
24
+ end
25
+ activate_system
26
+ end
27
+
28
+ task :symlink_mongrel_rails, :roles => :app do
29
+ sudo "ln -sf /usr/local/bin/mongrel_rails /usr/bin/mongrel_rails"
30
+ end
31
+
32
+ task :symlink_logrotate_config, :roles => :app do
33
+ sudo "ln -sf #{deploy_to}/mongrel/logrotate.conf /etc/logrotate.d/mongrel-#{application}"
34
+ end
35
+
36
+ # Configure
37
+
38
+ SYSTEM_CONFIG_FILES[:mongrel] = [
39
+
40
+ {:template => 'mongrel_cluster-init-script',
41
+ :path => '/etc/init.d/mongrel_cluster',
42
+ :mode => 0755,
43
+ :owner => 'root:root'}
44
+
45
+ ]
46
+
47
+ PROJECT_CONFIG_FILES[:mongrel] = [
48
+
49
+ {:template => 'mongrel_cluster.yml.erb',
50
+ :path => 'cluster.yml',
51
+ :mode => 0644,
52
+ :owner => 'root:root'},
53
+
54
+ {:template => 'monit.conf.erb',
55
+ :path => "monit.conf",
56
+ :mode => 0600,
57
+ :owner => 'root:root'},
58
+
59
+ {:template => 'logrotate.conf.erb',
60
+ :path => "logrotate.conf",
61
+ :mode => 0644,
62
+ :owner => 'root:root'},
63
+
64
+ {:template => 'nginx_vhost.erb',
65
+ :path => "nginx_vhost.conf",
66
+ :mode => 0644,
67
+ :owner => 'root:root'},
68
+
69
+ {:template => 'apache_vhost.erb',
70
+ :path => "apache_vhost",
71
+ :mode => 0644,
72
+ :owner => 'root:root'}
73
+
74
+ ]
75
+
76
+ desc "Generate configuration file(s) for mongrel from template(s)"
77
+ task :config_gen do
78
+ config_gen_system
79
+ config_gen_project
80
+ end
81
+
82
+ task :config_gen_system do
83
+ SYSTEM_CONFIG_FILES[:mongrel].each do |file|
84
+ deprec2.render_template(:mongrel, file)
85
+ end
86
+ end
87
+
88
+ task :config_gen_project do
89
+ PROJECT_CONFIG_FILES[:mongrel].each do |file|
90
+ deprec2.render_template(:mongrel, file)
91
+ end
92
+ end
93
+
94
+ desc 'Deploy configuration files(s) for mongrel'
95
+ task :config, :roles => :app do
96
+ config_system
97
+ config_project
98
+ end
99
+
100
+ task :config_system, :roles => :app do
101
+ deprec2.push_configs(:mongrel, SYSTEM_CONFIG_FILES[:mongrel])
102
+ end
103
+
104
+ task :config_project, :roles => :app do
105
+ deprec2.push_configs(:mongrel, PROJECT_CONFIG_FILES[:mongrel])
106
+ symlink_mongrel_cluster
107
+ send("symlink_#{web_server_type}_vhost")
108
+ symlink_monit_config
109
+ symlink_logrotate_config
110
+ activate_project
111
+ end
112
+
113
+ task :symlink_apache_vhost, :roles => :app do
114
+ sudo "ln -sf #{deploy_to}/mongrel/apache_vhost #{apache_vhost_dir}/#{application}"
115
+ end
116
+
117
+ task :symlink_nginx_vhost, :roles => :app do
118
+ sudo "ln -sf #{deploy_to}/mongrel/nginx_vhost #{nginx_vhost_dir}/#{application}"
119
+ end
120
+
121
+ task :symlink_monit_config, :roles => :app do
122
+ deprec2.mkdir(monit_confd_dir, :via => :sudo)
123
+ sudo "ln -sf #{deploy_to}/mongrel/monit.conf #{monit_confd_dir}/mongrel_#{application}.conf"
124
+ end
125
+
126
+ task :unlink_monit_config, :roles => :app do
127
+ sudo "test -L #{monit_confd_dir}/mongrel_#{application}.conf && unlink #{monit_confd_dir}/mongrel_#{application}.conf"
128
+ end
129
+
130
+ task :symlink_mongrel_cluster, :roles => :app do
131
+ deprec2.mkdir(mongrel_conf_dir, :via => :sudo)
132
+ sudo "ln -sf #{deploy_to}/mongrel/cluster.yml #{mongrel_conf}"
133
+ end
134
+
135
+ task :unlink_mongrel_cluster, :roles => :app do
136
+ sudo "test -L #{mongrel_conf} && unlink #{mongrel_conf}"
137
+ end
138
+
139
+
140
+ # Control
141
+
142
+ desc "Start application server."
143
+ task :start, :roles => :app do
144
+ send(run_method, "mongrel_rails cluster::start --clean -C #{mongrel_conf}")
145
+ end
146
+
147
+ desc "Stop application server."
148
+ task :stop, :roles => :app do
149
+ send(run_method, "mongrel_rails cluster::stop -C #{mongrel_conf}")
150
+ end
151
+
152
+ desc "Stop all mongrel clusters."
153
+ task :stop_all, :roles => :app do
154
+ run "#{sudo} /etc/init.d/mongrel_cluster stop"
155
+ end
156
+
157
+ desc "Restart application server."
158
+ task :restart, :roles => :app do
159
+ send(run_method, "mongrel_rails cluster::restart --clean -C #{mongrel_conf}")
160
+ end
161
+
162
+ task :activate, :roles => :app do
163
+ activate_system
164
+ activate_project
165
+ end
166
+
167
+ task :activate_system, :roles => :app do
168
+ send(run_method, "update-rc.d mongrel_cluster defaults")
169
+ end
170
+
171
+ task :activate_project, :roles => :app do
172
+ symlink_mongrel_cluster
173
+ symlink_monit_config
174
+ if web_server_type.to_s == 'apache'
175
+ sudo "a2ensite #{application}"
176
+ end
177
+ end
178
+
179
+ task :deactivate, :roles => :app do
180
+ puts
181
+ puts "******************************************************************"
182
+ puts
183
+ puts "Danger!"
184
+ puts
185
+ puts "Do you want to deactivate just this project or all mongrel"
186
+ puts "clusters on this server? Try a more granular command:"
187
+ puts
188
+ puts "cap deprec:mongrel:deactivate_system # disable all clusters"
189
+ puts "cap deprec:mongrel:deactivate_project # disable only this project"
190
+ puts
191
+ puts "******************************************************************"
192
+ puts
193
+ end
194
+
195
+ task :deactivate_system, :roles => :app do
196
+ send(run_method, "update-rc.d -f mongrel_cluster remove")
197
+ end
198
+
199
+ task :deactivate_project, :roles => :app do
200
+ unlink_mongrel_cluster
201
+ unlink_monit_config
202
+ restart
203
+ end
204
+
205
+ task :backup, :roles => :app do
206
+ end
207
+
208
+ task :restore, :roles => :app do
209
+ end
210
+
211
+ end
212
+ end
213
+ end