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
@@ -0,0 +1,5 @@
1
+ NameVirtualHost *:80
2
+
3
+ <IfModule mod_ssl.c>
4
+ NameVirtualHost *:443
5
+ </IfModule>
@@ -0,0 +1,18 @@
1
+ #
2
+ # /etc/apt/sources.list
3
+ #
4
+
5
+
6
+ #
7
+ # gutsy
8
+ #
9
+ deb http://<%= apt_mirror_hostname %>/ubuntu gutsy main restricted universe multiverse
10
+ deb http://archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse
11
+ deb http://security.ubuntu.com/ubuntu gutsy-security main restricted universe
12
+
13
+ deb-src http://archive.ubuntu.com/ubuntu gutsy main restricted universe
14
+ deb-src http://archive.ubuntu.com/ubuntu gutsy-updates main restricted universe
15
+ deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted universe
16
+
17
+
18
+
@@ -0,0 +1,4 @@
1
+ #
2
+ # Regular cron jobs for the apt-mirror package
3
+ #
4
+ 0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
@@ -0,0 +1,33 @@
1
+ ############# config ##################
2
+ #
3
+ # set base_path /var/spool/apt-mirror
4
+ #
5
+ # if you change the base path you must create the directories below with write privlages
6
+ #
7
+ # set mirror_path $base_path/mirror
8
+ # set skel_path $base_path/skel
9
+ # set var_path $base_path/var
10
+ # set cleanscript $var_path/clean.sh
11
+ # set defaultarch <running host architecture>
12
+ set nthreads 20
13
+ set _tilde 0
14
+ #
15
+ ############# end config ##############
16
+
17
+ <% Array(apt_releases_to_mirror).each do |release| %>
18
+ # <%= release %>
19
+ deb http://archive.ubuntu.com/ubuntu <%= release %> main restricted universe multiverse
20
+ #deb http://archive.ubuntu.com/ubuntu <%= release %>-updates main restricted universe multiverse
21
+ #deb http://archive.ubuntu.com/ubuntu <%= release %>-backports main restricted universe multiverse
22
+ #deb http://archive.ubuntu.com/ubuntu <%= release %>-security main restricted universe multiverse
23
+ #deb http://archive.ubuntu.com/ubuntu <%= release %>-proposed main restricted universe multiverse
24
+
25
+ deb-src http://archive.ubuntu.com/ubuntu <%= release %> main restricted universe multiverse
26
+ #deb-src http://archive.ubuntu.com/ubuntu <%= release %>-updates main restricted universe multiverse
27
+ #deb-src http://archive.ubuntu.com/ubuntu <%= release %>-backports main restricted universe multiverse
28
+ #deb-src http://archive.ubuntu.com/ubuntu <%= release %>-security main restricted universe multiverse
29
+ #deb-src http://archive.ubuntu.com/ubuntu <%= release %>-proposed main restricted universe multiverse
30
+ <% end %>
31
+
32
+ clean http://archive.ubuntu.com/ubuntu
33
+
@@ -0,0 +1,9 @@
1
+ <%= shared_path %>/log/ar_sendmail.log {
2
+ daily
3
+ rotate 14
4
+ dateext
5
+ missingok
6
+ compress
7
+ sharedscripts
8
+ copytruncate
9
+ }
@@ -0,0 +1,5 @@
1
+ check process ar_sendmail-<%= application %> with pidfile <%= current_path %>/tmp/pids/ar_sendmail.pid
2
+ start program = "/usr/local/sbin/daemonize -c <%= current_path %> -o <%= current_path %>/log/ar_sendmail.log -e <%= current_path %>/log/ar_sendmail.log -p <%= current_path %>/tmp/pids/ar_sendmail.pid -l <%= current_path %>/tmp/pids/ar_sendmail.pid /usr/local/bin/ar_sendmail --environment production --verbose"
3
+ stop program = "/usr/bin/xargs kill -9 < <%= current_path %>/tmp/pids/ar_sendmail.pid"
4
+
5
+ if 3 restarts within 5 cycles then timeout
@@ -0,0 +1,11 @@
1
+ # Configuration file for ddclient generated by deprec
2
+ #
3
+ # /etc/ddclient.conf
4
+
5
+ pid=/var/run/ddclient.pid
6
+ protocol=dyndns2
7
+ use=if, if=<%= ddclient_interface %>
8
+ server=members.dyndns.org
9
+ login=<%= ddclient_user %>
10
+ password='<%= ddclient_pass %>'
11
+ <%= Array(ddclient_domains).join(',') %>
@@ -0,0 +1,15 @@
1
+ # Configuration for ddclient scripts
2
+ # generated from debconf on Sun Jan 18 09:20:43 UTC 2009
3
+ #
4
+ # /etc/default/ddclient
5
+
6
+ # Set to "true" if ddclient should be run every time a new ppp connection is
7
+ # established. This might be useful, if you are using dial-on-demand
8
+ run_ipup="true"
9
+
10
+ # Set to "true" if ddclient should run in daemon mode
11
+ run_daemon="true"
12
+
13
+ # Set the time interval between the updates of the dynamic DNS name in seconds.
14
+ # This option only takes effect if the ddclient runs in daemon mode.
15
+ daemon_interval="300"
@@ -0,0 +1,14 @@
1
+ ssh_options[:paranoid] = false
2
+ ssh_options[:forward_agent] = true
3
+
4
+
5
+ # Just import the general purpose tasks
6
+ require '/deprec/general_purpose' if respond_to?(:namespace)
7
+
8
+ # Enable all deprec tasks all the time. This will change the
9
+ # behviour of some standard cap tasks (like 'cap deploy') so
10
+ # only enable it if you know what you're doing!
11
+ #
12
+ # require 'deprec/recipes' unless respond_to?(:namespace)
13
+
14
+
@@ -0,0 +1,2 @@
1
+ auth 1
2
+ 1 sha1 <%= heartbeat_auth_key %>
@@ -0,0 +1,15 @@
1
+ # http://linux-ha.org/ha.cf
2
+ logfacility daemon
3
+ keepalive 1
4
+ deadtime 10
5
+ warntime 5
6
+ initdead 120 # depend on your hardware
7
+ udpport 694
8
+ ping <%= heartbeat_ping %>
9
+ bcast <%= heartbeat_bcast %>
10
+ auto_failback <%= heartbeat_auto_failback %>
11
+ <% heartbeat_nodes.each do |node| -%>
12
+ node <%= node %>
13
+ <% end -%>
14
+ respawn hacluster /usr/lib/heartbeat/ipfail
15
+ use_logd yes
@@ -0,0 +1 @@
1
+ <%= heartbeat_preferred_node %> <%= heartbeat_resources %>
@@ -0,0 +1,32 @@
1
+ # see "man logrotate" for details
2
+ # rotate log files weekly
3
+ weekly
4
+
5
+ # keep 4 weeks worth of backlogs
6
+ rotate 4
7
+
8
+ # create new (empty) log files after rotating old ones
9
+ create
10
+
11
+ # uncomment this if you want your log files compressed
12
+ #compress
13
+
14
+ # packages drop log rotation information into this directory
15
+ include /etc/logrotate.d
16
+
17
+ # no packages own wtmp, or btmp -- we'll rotate them here
18
+ /var/log/wtmp {
19
+ missingok
20
+ monthly
21
+ create 0664 root utmp
22
+ rotate 1
23
+ }
24
+
25
+ /var/log/btmp {
26
+ missingok
27
+ monthly
28
+ create 0664 root utmp
29
+ rotate 1
30
+ }
31
+
32
+ # system-specific logs may be configured here
@@ -0,0 +1,148 @@
1
+ <VirtualHost *:80>
2
+ ServerName <%= domain %>
3
+ <%- 4.times do |counter| -%>
4
+ ServerAlias <%= domain.sub(/.*?\./, "assets#{counter}.") %>
5
+ <%- end %>
6
+ DocumentRoot <%= "#{current_path}/public" %>
7
+ ErrorLog <%= apache_log_dir %>/<%= domain %>-error_log
8
+ CustomLog <%= apache_log_dir %>/<%= domain %>-access_log combined
9
+
10
+ <Directory <%= "#{current_path}/public" %>>
11
+ Options FollowSymLinks
12
+ AllowOverride None
13
+ Order allow,deny
14
+ Allow from all
15
+ </Directory>
16
+
17
+ <Proxy *>
18
+ Order deny,allow
19
+ Allow from all
20
+ </Proxy>
21
+
22
+ # Configure mongrel_cluster
23
+ <Proxy balancer://<%= "#{application}_cluster" %>>
24
+ <%- mongrel_servers.times do |counter| -%>
25
+ BalancerMember http://<%= "127.0.0.1:#{mongrel_port+counter}" %>
26
+ <%- end -%>
27
+ </Proxy>
28
+
29
+ RewriteEngine On
30
+
31
+ <%- if apache_ssl_enabled && apache_ssl_forward_all -%>
32
+ RewriteRule ^(.*)$ https://<%= domain %>$1
33
+ <%- else -%>
34
+ # Prevent access to .svn directories
35
+ RewriteRule ^(.*/)?\.svn/ - [F,L]
36
+ ErrorDocument 403 "Access Forbidden"
37
+
38
+ # Check for maintenance file and redirect all requests
39
+ RewriteCond %{REQUEST_URI} !\.(css|jpg|png|gif)$
40
+ RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
41
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.html
42
+ RewriteRule ^.*$ /system/maintenance.html [L]
43
+
44
+ # Rewrite index to check for static
45
+ RewriteRule ^/$ /index.html [QSA]
46
+
47
+ # Rewrite to check for Rails cached page
48
+ RewriteRule ^([^.]+)$ $1.html [QSA]
49
+
50
+ # Redirect all non-static requests to cluster
51
+ RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
52
+ RewriteRule ^/(.*)$ balancer://<%= "#{application}_cluster" %>%{REQUEST_URI} [P,QSA,L]
53
+
54
+ # Deflate
55
+ AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
56
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
57
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
58
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
59
+ <%- end -%>
60
+ </VirtualHost>
61
+
62
+
63
+ <% if apache_ssl_enabled %>
64
+ <VirtualHost <%= apache_ssl_ip ? apache_ssl_ip : '*' %>:443>
65
+ ServerName <%= domain %>
66
+ <%- 4.times do |counter| -%>
67
+ ServerAlias <%= domain.sub(/.*?\./, "assets#{counter}.") %>
68
+ <%- end %>
69
+ DocumentRoot <%= "#{current_path}/public" %>
70
+ ErrorLog <%= apache_log_dir %>/<%= domain %>-error_log
71
+ CustomLog <%= apache_log_dir %>/<%= domain %>-access_log combined
72
+ CustomLog <%= apache_log_dir %>/<%= domain %>-ssl_log \
73
+ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
74
+
75
+ <Directory <%= "#{current_path}/public" %>>
76
+ Options FollowSymLinks
77
+ AllowOverride None
78
+ Order allow,deny
79
+ Allow from all
80
+ </Directory>
81
+
82
+ <Proxy *>
83
+ Order deny,allow
84
+ Allow from all
85
+ </Proxy>
86
+
87
+ # Configure mongrel_cluster
88
+ <Proxy balancer://<%= "#{application}_cluster" %>>
89
+ <%- mongrel_servers.times do |counter| -%>
90
+ BalancerMember http://<%= "127.0.0.1:#{mongrel_port+counter}" %>
91
+ <%- end -%>
92
+ </Proxy>
93
+
94
+ RewriteEngine On
95
+
96
+ # Prevent access to .svn directories
97
+ RewriteRule ^(.*/)?\.svn/ - [F,L]
98
+ ErrorDocument 403 "Access Forbidden"
99
+
100
+ # Prevent access to .git directories
101
+ RewriteRule ^(.*/)?\.git/ - [F,L]
102
+ ErrorDocument 403 "Access Forbidden"
103
+
104
+ # Check for maintenance file and redirect all requests
105
+ RewriteCond %{REQUEST_URI} !\.(css|jpg|png|gif)$
106
+ RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
107
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.html
108
+ RewriteRule ^.*$ /system/maintenance.html [L]
109
+
110
+ # Rewrite index to check for static
111
+ RewriteRule ^/$ /index.html [QSA]
112
+
113
+ # Rewrite to check for Rails cached page
114
+ RewriteRule ^([^.]+)$ $1.html [QSA]
115
+
116
+ # Redirect all non-static requests to cluster
117
+ RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
118
+ # Add header for Mongrel to set HTTPS environment for Rails
119
+ RequestHeader set X-Forwarded-Proto "https"
120
+ RewriteRule ^/(.*)$ balancer://<%= "#{application}_cluster" %>%{REQUEST_URI} [P,QSA,L]
121
+
122
+ # Deflate
123
+ AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
124
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
125
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
126
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
127
+
128
+ # SSL Engine Switch
129
+ SSLEngine on
130
+
131
+ # SSL Cipher Suite:
132
+ SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
133
+
134
+ # Server Certificate
135
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
136
+
137
+ # Server Private Key
138
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
139
+
140
+ <% if apache_ssl_chainfile %>
141
+ # Intermediate keys
142
+ SSLCertificateChainFile /usr/local/apache2/conf/ssl.crt/<%= domain %>-chainfile.crt
143
+ <% end %>
144
+
145
+ BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
146
+
147
+ </VirtualHost>
148
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <%= shared_path %>/log/<%= rails_env %>.log <%= shared_path %>/log/mongrel.*.log {
2
+ daily
3
+ rotate 14
4
+ dateext
5
+ missingok
6
+ compress
7
+ sharedscripts
8
+ copytruncate
9
+ }
10
+
11
+
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
  #
3
- # Copyright (c) 2006 Bradley Taylor, bradley@railsmachine.com
3
+ # Copyright (c) 2007 Bradley Taylor, bradley@railsmachine.com
4
4
  #
5
5
  # mongrel_cluster Startup script for Mongrel clusters.
6
6
  #
@@ -9,9 +9,14 @@
9
9
  # behind a load balancer.
10
10
  #
11
11
 
12
+ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local:/usr/local/sbin:/usr/local/bin
12
13
  CONF_DIR=/etc/mongrel_cluster
13
- RETVAL=0
14
+ PID_DIR=/var/run/mongrel_cluster
15
+ # USER=mongrel
16
+
17
+ EVENT=1
14
18
 
19
+ RETVAL=0
15
20
 
16
21
  # Gracefully exit if the controller is missing.
17
22
  which mongrel_cluster_ctl >/dev/null || exit 0
@@ -21,7 +26,11 @@ which mongrel_cluster_ctl >/dev/null || exit 0
21
26
 
22
27
  case "$1" in
23
28
  start)
24
- mongrel_cluster_ctl start -c $CONF_DIR
29
+ # Create pid directory
30
+ mkdir -p $PID_DIR
31
+ # chown $USER:$USER $PID_DIR
32
+
33
+ mongrel_cluster_ctl start --clean -c $CONF_DIR
25
34
  RETVAL=$?
26
35
  ;;
27
36
  stop)
@@ -29,13 +38,17 @@ case "$1" in
29
38
  RETVAL=$?
30
39
  ;;
31
40
  restart)
32
- mongrel_cluster_ctl restart -c $CONF_DIR
41
+ mongrel_cluster_ctl restart --clean -c $CONF_DIR
42
+ RETVAL=$?
43
+ ;;
44
+ status)
45
+ mongrel_cluster_ctl status -c $CONF_DIR
33
46
  RETVAL=$?
34
47
  ;;
35
48
  *)
36
- echo "Usage: mongrel_cluster {start|stop|restart}"
49
+ echo "Usage: mongrel_cluster {start|stop|restart|status}"
37
50
  exit 1
38
51
  ;;
39
52
  esac
40
53
 
41
- exit $RETVAL
54
+ exit $RETVAL
@@ -0,0 +1,10 @@
1
+ ---
2
+ user: <%= app_user %>
3
+ group: <%= app_group %>
4
+ cwd: <%= current_path %>
5
+ log_file: <%= mongrel_log_dir %>/mongrel.log
6
+ port: "<%= mongrel_port.to_s %>"
7
+ environment: <%= mongrel_environment %>
8
+ address: <%= mongrel_address %>
9
+ pid_file: <%= mongrel_pid_dir %>/mongrel.pid
10
+ servers: <%= mongrel_servers.to_s %>
@@ -0,0 +1,17 @@
1
+ <% mongrel_servers.times do |counter| -%>
2
+ check process mongrel-<%=mongrel_port+counter%> with pidfile <%= mongrel_pid_dir %>/mongrel.<%=mongrel_port+counter%>.pid
3
+ group mongrel_<%= application %>
4
+ start program = "/usr/local/bin/ruby /usr/local/bin/mongrel_rails cluster::start --clean -C <%= mongrel_conf %> --only <%=mongrel_port+counter%>"
5
+ stop program = "/usr/local/bin/ruby /usr/local/bin/mongrel_rails cluster::stop -C <%= mongrel_conf %> --only <%=mongrel_port+counter%>"
6
+
7
+ if failed host 127.0.0.1 port <%=mongrel_port+counter%> protocol http
8
+ with timeout 10 seconds
9
+ then alert
10
+
11
+ if totalmem > 100 Mb then restart
12
+ if cpu > 60% for 2 cycles then alert
13
+ if cpu > 80% for 5 cycles then restart
14
+ if loadavg(5min) > 10 for 8 cycles then restart
15
+ if 3 restarts within 5 cycles then timeout
16
+
17
+ <% end -%>
@@ -0,0 +1,41 @@
1
+ upstream <%= application %> {
2
+ <% mongrel_servers.times do |counter| -%>
3
+ <%= "server 127.0.0.1:#{mongrel_port+counter};" %>
4
+ <% end -%>
5
+ }
6
+
7
+ server {
8
+ listen 80;
9
+ server_name <%= domain %> <% 4.times do |counter| %> <%= domain.sub(/.*?\./, "assets#{counter}.") %><% end %>;
10
+ root <%= deploy_to %>/current/public;
11
+ access_log <%= deploy_to %>/shared/log/<%= domain %>-access.log;
12
+ error_log <%= deploy_to %>/shared/log/<%= domain %>-error.log;
13
+ client_max_body_size <%= nginx_client_max_body_size %>;
14
+
15
+ if (-f $document_root/system/maintenance.html){
16
+ rewrite ^(.*)$ /system/maintenance.html last;
17
+ break;
18
+ }
19
+ location / {
20
+ proxy_set_header X-Real-IP $remote_addr;
21
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
22
+ proxy_set_header Host $http_host;
23
+ proxy_redirect false;
24
+
25
+ if (-f $request_filename/index.html) {
26
+ rewrite (.*) $1/index.html break;
27
+ }
28
+ if (-f $request_filename.html) {
29
+ rewrite (.*) $1.html break;
30
+ }
31
+ if (!-f $request_filename) {
32
+ proxy_pass http://<%= application %>;
33
+ break;
34
+ }
35
+ }
36
+
37
+ error_page 500 502 503 504 /50x.html;
38
+ location = /50x.html {
39
+ root html;
40
+ }
41
+ }