deprec 1.9.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }