rubber 1.3.2 → 1.5.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 (277) hide show
  1. data/CHANGELOG +7 -0
  2. data/VERSION +1 -1
  3. data/bin/vulcanize +16 -32
  4. data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +6 -6
  5. data/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +2 -2
  6. data/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +3 -0
  7. data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +29 -16
  8. data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +1 -1
  9. data/generators/vulcanize/templates/base/Rakefile +21 -0
  10. data/generators/vulcanize/templates/base/config/rubber/common/crontab +6 -1
  11. data/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +2 -2
  12. data/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +3 -4
  13. data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +27 -48
  14. data/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
  15. data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +25 -0
  16. data/generators/vulcanize/templates/base/config/rubber/rubber.yml +7 -12
  17. data/generators/vulcanize/templates/base/script/cron-runner +1 -1
  18. data/generators/vulcanize/templates/base/templates.rb +9 -0
  19. data/generators/vulcanize/templates/base/templates.yml +5 -0
  20. data/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
  21. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +58 -0
  22. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.yaml +210 -0
  23. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/log4j-server.properties +45 -0
  24. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/monit-cassandra.conf +8 -0
  25. data/generators/vulcanize/templates/cassandra/config/rubber/rubber-cassandra.yml +18 -0
  26. data/generators/vulcanize/templates/cassandra/templates.yml +1 -0
  27. data/generators/vulcanize/templates/{complete_passenger_mysql → complete_passenger}/config/rubber/role/haproxy/haproxy-passenger.conf +1 -1
  28. data/generators/vulcanize/templates/{complete_passenger_mysql → complete_passenger}/config/rubber/rubber-complete.yml +0 -0
  29. data/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
  30. data/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
  31. data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +1 -7
  32. data/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
  33. data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +3 -3
  34. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +1 -1
  35. data/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +5 -5
  36. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +2 -2
  37. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +1 -1
  38. data/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +4 -4
  39. data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +1 -1
  40. data/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +4 -4
  41. data/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +2 -0
  42. data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +3 -3
  43. data/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +2 -2
  44. data/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +1 -1
  45. data/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +4 -2
  46. data/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +4 -4
  47. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +2 -2
  48. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +1 -0
  49. data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +1 -1
  50. data/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +6 -8
  51. data/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +1 -0
  52. data/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +24 -109
  53. data/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +1 -1
  54. data/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +2 -2
  55. data/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +1 -1
  56. data/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +19 -15
  57. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +2 -2
  58. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +2 -2
  59. data/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +3 -3
  60. data/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +5 -5
  61. data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +2 -2
  62. data/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +10 -1
  63. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +1 -1
  64. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +2 -2
  65. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +1 -1
  66. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +3 -3
  67. data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +2 -2
  68. data/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
  69. data/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +131 -0
  70. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/crontab +14 -0
  71. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/monit-postgresql.conf +10 -0
  72. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/pg_hba.conf +89 -0
  73. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +6 -0
  74. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql.conf +504 -0
  75. data/generators/vulcanize/templates/postgresql/config/rubber/rubber-postgresql.yml +45 -0
  76. data/generators/vulcanize/templates/postgresql/templates.yml +1 -0
  77. data/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb +8 -7
  78. data/generators/vulcanize/templates/resque/config/initializers/resque.rb +15 -0
  79. data/generators/vulcanize/templates/resque/config/rubber/common/resque.yml +5 -0
  80. data/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +46 -27
  81. data/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +14 -0
  82. data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +19 -0
  83. data/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +14 -6
  84. data/generators/vulcanize/templates/resque/script/resque_worker_management.rb +112 -0
  85. data/generators/vulcanize/templates/resque/templates.rb +1 -0
  86. data/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +7 -8
  87. data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +7 -4
  88. data/generators/vulcanize/vulcanize_generator.rb +154 -49
  89. data/lib/generators/vulcanize/USAGE +6 -0
  90. data/lib/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +51 -0
  91. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/deflate.conf +10 -0
  92. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/expires.conf +9 -0
  93. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/headers.conf +6 -0
  94. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +8 -0
  95. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +8 -0
  96. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/setenvif.conf +52 -0
  97. data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +79 -0
  98. data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache.auth +7 -0
  99. data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +34 -0
  100. data/lib/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +6 -0
  101. data/lib/generators/vulcanize/templates/apache/templates.yml +1 -0
  102. data/lib/generators/vulcanize/templates/base/Capfile +14 -0
  103. data/lib/generators/vulcanize/templates/base/Rakefile +21 -0
  104. data/lib/generators/vulcanize/templates/base/config/deploy.rb +55 -0
  105. data/lib/generators/vulcanize/templates/base/config/rubber/common/crontab +22 -0
  106. data/lib/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +8 -0
  107. data/lib/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +13 -0
  108. data/lib/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +63 -0
  109. data/lib/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
  110. data/lib/generators/vulcanize/templates/base/config/rubber/rubber-dns.yml +78 -0
  111. data/lib/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +25 -0
  112. data/lib/generators/vulcanize/templates/base/config/rubber/rubber.yml +235 -0
  113. data/lib/generators/vulcanize/templates/base/lib/tasks/rubber.rake +15 -0
  114. data/lib/generators/vulcanize/templates/base/script/cron-rake +18 -0
  115. data/lib/generators/vulcanize/templates/base/script/cron-runner +18 -0
  116. data/lib/generators/vulcanize/templates/base/script/cron-sh +67 -0
  117. data/lib/generators/vulcanize/templates/base/templates.rb +9 -0
  118. data/lib/generators/vulcanize/templates/base/templates.yml +6 -0
  119. data/lib/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
  120. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +58 -0
  121. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.yaml +210 -0
  122. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/log4j-server.properties +45 -0
  123. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/monit-cassandra.conf +8 -0
  124. data/lib/generators/vulcanize/templates/cassandra/config/rubber/rubber-cassandra.yml +18 -0
  125. data/lib/generators/vulcanize/templates/cassandra/templates.yml +1 -0
  126. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/haproxy/haproxy-mongrel.conf +23 -0
  127. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/nginx/nginx-mongrel.conf +113 -0
  128. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/rubber-complete.yml +41 -0
  129. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/templates.yml +6 -0
  130. data/lib/generators/vulcanize/templates/complete_passenger/config/rubber/role/haproxy/haproxy-passenger.conf +21 -0
  131. data/lib/generators/vulcanize/templates/complete_passenger/config/rubber/rubber-complete.yml +40 -0
  132. data/lib/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
  133. data/lib/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
  134. data/lib/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +4 -0
  135. data/lib/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
  136. data/lib/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +72 -0
  137. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/cruise +40 -0
  138. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +165 -0
  139. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/production.rb +8 -0
  140. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/site_config.rb +76 -0
  141. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/web_tools/cruise-nginx.conf +11 -0
  142. data/lib/generators/vulcanize/templates/cruise/config/rubber/rubber-cruise.yml +18 -0
  143. data/lib/generators/vulcanize/templates/cruise/templates.yml +1 -0
  144. data/lib/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +45 -0
  145. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-base.conf +26 -0
  146. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-default.conf +8 -0
  147. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +9 -0
  148. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +11 -0
  149. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +21 -0
  150. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/web_tools/haproxy-nginx.conf +10 -0
  151. data/lib/generators/vulcanize/templates/haproxy/config/rubber/rubber-haproxy.yml +7 -0
  152. data/lib/generators/vulcanize/templates/haproxy/templates.yml +1 -0
  153. data/lib/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +59 -0
  154. data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.sh +589 -0
  155. data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.xml +199 -0
  156. data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +9 -0
  157. data/lib/generators/vulcanize/templates/jetty/config/rubber/rubber-jetty.yml +10 -0
  158. data/lib/generators/vulcanize/templates/jetty/templates.yml +1 -0
  159. data/lib/generators/vulcanize/templates/memcached/config/memcached.yml +28 -0
  160. data/lib/generators/vulcanize/templates/memcached/config/rubber/common/memcached.yml +14 -0
  161. data/lib/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +52 -0
  162. data/lib/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached_munin_plugin +249 -0
  163. data/lib/generators/vulcanize/templates/memcached/config/rubber/rubber-memcached.yml +7 -0
  164. data/lib/generators/vulcanize/templates/memcached/templates.yml +1 -0
  165. data/lib/generators/vulcanize/templates/minimal_mysql/templates.yml +7 -0
  166. data/lib/generators/vulcanize/templates/minimal_nodb/templates.yml +6 -0
  167. data/lib/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +75 -0
  168. data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/mongrel_cluster.yml +12 -0
  169. data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +20 -0
  170. data/lib/generators/vulcanize/templates/mongrel/config/rubber/rubber-mongrel.yml +9 -0
  171. data/lib/generators/vulcanize/templates/mongrel/templates.yml +1 -0
  172. data/lib/generators/vulcanize/templates/monit/config/rubber/common/monit-default.conf +15 -0
  173. data/lib/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +252 -0
  174. data/lib/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +33 -0
  175. data/lib/generators/vulcanize/templates/monit/config/rubber/role/web_tools/monit-admin-nginx.conf +10 -0
  176. data/lib/generators/vulcanize/templates/monit/config/rubber/rubber-monit.yml +6 -0
  177. data/lib/generators/vulcanize/templates/monit/templates.yml +1 -0
  178. data/lib/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +8 -0
  179. data/lib/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +48 -0
  180. data/lib/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +11 -0
  181. data/lib/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +46 -0
  182. data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-nginx.conf +8 -0
  183. data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +31 -0
  184. data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +81 -0
  185. data/lib/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
  186. data/lib/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +55 -0
  187. data/lib/generators/vulcanize/templates/munin/script/munin/example_simple.rb +24 -0
  188. data/lib/generators/vulcanize/templates/munin/templates.yml +1 -0
  189. data/lib/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +12 -0
  190. data/lib/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +169 -0
  191. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +46 -0
  192. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/crontab +14 -0
  193. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +10 -0
  194. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +163 -0
  195. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/mysql_slave/mysql_slave_munin_plugin +51 -0
  196. data/lib/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +47 -0
  197. data/lib/generators/vulcanize/templates/mysql/templates.yml +1 -0
  198. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/common/mysql_cluster_migrations.rb +13 -0
  199. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +177 -0
  200. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_data/my.cnf +15 -0
  201. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf +39 -0
  202. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +10 -0
  203. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +23 -0
  204. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/rubber-mysql_cluster.yml +32 -0
  205. data/lib/generators/vulcanize/templates/mysql_cluster/templates.yml +1 -0
  206. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/database.yml +16 -0
  207. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +10 -0
  208. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy +153 -0
  209. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.conf +10 -0
  210. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.lua +5 -0
  211. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +52 -0
  212. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/rubber-mysql_proxy.yml +11 -0
  213. data/lib/generators/vulcanize/templates/mysql_proxy/templates.yml +1 -0
  214. data/lib/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +45 -0
  215. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +9 -0
  216. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +8 -0
  217. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/nginx.conf +42 -0
  218. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +55 -0
  219. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-index.html +30 -0
  220. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-nginx.auth +7 -0
  221. data/lib/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +10 -0
  222. data/lib/generators/vulcanize/templates/nginx/templates.yml +1 -0
  223. data/lib/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +46 -0
  224. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +34 -0
  225. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +7 -0
  226. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +47 -0
  227. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +46 -0
  228. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +35 -0
  229. data/lib/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +15 -0
  230. data/lib/generators/vulcanize/templates/passenger/templates.yml +3 -0
  231. data/lib/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
  232. data/lib/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +131 -0
  233. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/crontab +14 -0
  234. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/monit-postgresql.conf +10 -0
  235. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/pg_hba.conf +89 -0
  236. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +6 -0
  237. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql.conf +504 -0
  238. data/lib/generators/vulcanize/templates/postgresql/config/rubber/rubber-postgresql.yml +45 -0
  239. data/lib/generators/vulcanize/templates/postgresql/templates.yml +1 -0
  240. data/lib/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb +37 -0
  241. data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +8 -0
  242. data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +9 -0
  243. data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +141 -0
  244. data/lib/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +4 -0
  245. data/lib/generators/vulcanize/templates/redis/templates.yml +1 -0
  246. data/lib/generators/vulcanize/templates/resque/config/initializers/resque.rb +15 -0
  247. data/lib/generators/vulcanize/templates/resque/config/rubber/common/resque.yml +5 -0
  248. data/lib/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +58 -0
  249. data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +14 -0
  250. data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +19 -0
  251. data/lib/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +18 -0
  252. data/lib/generators/vulcanize/templates/resque/script/resque_worker_management.rb +112 -0
  253. data/lib/generators/vulcanize/templates/resque/templates.rb +1 -0
  254. data/lib/generators/vulcanize/templates/resque/templates.yml +3 -0
  255. data/lib/generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml +46 -0
  256. data/lib/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +112 -0
  257. data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab +11 -0
  258. data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +13 -0
  259. data/lib/generators/vulcanize/templates/sphinx/config/rubber/rubber-sphinx.yml +6 -0
  260. data/lib/generators/vulcanize/templates/sphinx/templates.yml +1 -0
  261. data/lib/generators/vulcanize/vulcanize_generator.rb +172 -0
  262. data/lib/rubber.rb +42 -6
  263. data/lib/rubber/cloud/aws.rb +4 -0
  264. data/lib/rubber/dns/zerigo.rb +9 -3
  265. data/lib/rubber/environment.rb +1 -1
  266. data/lib/rubber/generator.rb +8 -8
  267. data/lib/rubber/instance.rb +1 -1
  268. data/lib/rubber/railtie.rb +14 -0
  269. data/lib/rubber/recipes/rubber.rb +6 -0
  270. data/lib/rubber/recipes/rubber/deploy.rb +3 -3
  271. data/lib/rubber/recipes/rubber/setup.rb +22 -17
  272. data/lib/rubber/recipes/rubber/utils.rb +37 -14
  273. data/lib/rubber/util.rb +36 -1
  274. data/rails/init.rb +1 -4
  275. metadata +244 -35
  276. data/generators/vulcanize/templates/resque/config/rubber/deploy-resque-worker-default.rb +0 -38
  277. data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker_default/monit-resque_worker_default.conf +0 -19
@@ -0,0 +1,97 @@
1
+ namespace :rubber do
2
+ namespace :util do
3
+
4
+ rubber.allow_optional_tasks(self)
5
+
6
+ desc <<-DESC
7
+ Backup database using rake task rubber:backup_db
8
+ DESC
9
+ task :backup do
10
+ master_instances = rubber_instances.for_role('db', :primary => true)
11
+ slaves = rubber_instances.for_role('db', {})
12
+
13
+ # Select only one instance for backup. Favor slave database.
14
+ selected_db_instance = (slaves+master_instances).first
15
+
16
+ task_name = "_backup_db_#{selected_db_instance.full_name}".to_sym()
17
+ task task_name, :hosts => selected_db_instance.full_name do
18
+ rsudo "cd #{current_path} && RUBBER_ENV=#{RUBBER_ENV} BACKUP_DIR=/mnt/db_backups DBUSER=#{rubber_env.db_user} DBPASS=#{rubber_env.db_pass} DBNAME=#{rubber_env.db_name} DBHOST=#{selected_db_instance.full_name} rake rubber:backup_db"
19
+ end
20
+ send task_name
21
+ end
22
+
23
+ desc <<-DESC
24
+ Restore database from s3 using rake task rubber:restore_db_s3
25
+ DESC
26
+ task :restore_s3 do
27
+ master_instances = rubber_instances.for_role('db', :primary => true)
28
+ slaves = rubber_instances.for_role('db', {})
29
+
30
+ for instance in master_instances+slaves
31
+ task_name = "_restore_db_s3_#{instance.full_name}".to_sym()
32
+ task task_name, :hosts => instance.full_name do
33
+ rsudo "cd #{current_path} && RUBBER_ENV=#{RUBBER_ENV} BACKUP_DIR=/mnt/db_backups DBUSER=#{rubber_env.db_user} DBPASS=#{rubber_env.db_pass} DBNAME=#{rubber_env.db_name} DBHOST=#{instance.full_name} rake rubber:restore_db_s3"
34
+ end
35
+ send task_name
36
+ end
37
+ end
38
+
39
+ desc <<-DESC
40
+ Overwrite ec2 production database with export from local production database.
41
+ DESC
42
+ task :local_to_ec2 do
43
+ require 'yaml'
44
+ master_instances = rubber_instances.for_role('db', :primary => true)
45
+ slaves = rubber_instances.for_role('db', {})
46
+
47
+ # Select only one instance for backup. Favor slave database.
48
+ selected_db_instance = (slaves+master_instances).first
49
+
50
+ task_name = "_load_local_to_#{selected_db_instance.full_name}".to_sym()
51
+ task task_name, :hosts => selected_db_instance.full_name do
52
+
53
+ # Dump Local to tmp folder
54
+ filename = "#{application}.local.#{Time.now.to_i}.sql.gz"
55
+ backup_file = "/tmp/#{filename}"
56
+ on_rollback { delete file }
57
+ FileUtils.mkdir_p(File.dirname(backup_file))
58
+
59
+ # Use database.yml to get connection params
60
+ db = YAML::load(ERB.new(IO.read(File.join(File.dirname(__FILE__), '..','database.yml'))).result)[RUBBER_ENV]
61
+ user = db['username']
62
+ pass = db['passsword']
63
+ pass = nil if pass and pass.strip.size == 0
64
+ host = db['host']
65
+ name = db['database']
66
+
67
+ raise "No db_backup_cmd defined in rubber.yml, cannot backup!" unless rubber_env.db_backup_cmd
68
+ db_backup_cmd = rubber_env.db_backup_cmd.gsub(/%([^%]+)%/, '#{\1}')
69
+ db_backup_cmd = eval('%Q{' + db_backup_cmd + '}')
70
+
71
+ # dbdump (or backup app) needs to be in your path
72
+ puts "Backing up database with command:"
73
+ system(db_backup_cmd)
74
+ puts "Created backup: #{backup_file}"
75
+
76
+ # Upload Local to S3
77
+ cloud_provider = rubber_env.cloud_providers[rubber_env.cloud_provider]
78
+ s3_prefix = "db/"
79
+ backup_bucket = cloud_provider.backup_bucket
80
+ if backup_bucket
81
+ AWS::S3::Base.establish_connection!(:access_key_id => cloud_provider.access_key, :secret_access_key => cloud_provider.secret_access_key)
82
+ unless AWS::S3::Bucket.list.find { |b| b.name == backup_bucket }
83
+ AWS::S3::Bucket.create(backup_bucket)
84
+ end
85
+ dest = "#{s3_prefix}#{File.basename(backup_file)}"
86
+ puts "Saving db dump to S3: #{backup_bucket}:#{dest}"
87
+ AWS::S3::S3Object.store(dest, open(backup_file), backup_bucket)
88
+ end
89
+
90
+ send :restore_s3
91
+
92
+ end
93
+ send task_name
94
+ end
95
+
96
+ end
97
+ end
@@ -0,0 +1,78 @@
1
+ # OPTIONAL: The dns provider to use. Need to exist in dns_providers below
2
+ # dns_provider: nettica
3
+
4
+ # OPTIONAL: The configuration for each dns provider (nettica|zerigo|dyndns)
5
+ # This lets rubber update a dynamic dns service with the instance alias and ip
6
+ #
7
+ dns_providers:
8
+ nettica:
9
+ user: joe
10
+ password: sekret
11
+ type: A
12
+ ttl: 300
13
+ zerigo:
14
+ email: foo@bar.com
15
+ token: hexxy
16
+ type: A
17
+ ttl: 300
18
+ dyndns:
19
+ user: joe
20
+ password: sekret
21
+ update_url: https://members.dyndns.org/nic/update?hostname=%host%&myip=%ip%'
22
+
23
+ # OPTIONAL: Lets you configure your dns service, for example to add other CNAMES
24
+ # or setup dns round robin, etc. Run "cap rubber:setup_dns_records"
25
+ # to apply them as rubber only sets up instance aliases as part of
26
+ # the standard lifecycle
27
+ #
28
+ # dns_records:
29
+ # # simple A record
30
+ # - host: bar
31
+ # data: 1.1.1.1
32
+ #
33
+ # # more detailed A record
34
+ # - host: bar
35
+ # domain: otherdomain.com
36
+ # data: 1.1.1.1
37
+ # type: A
38
+ # ttl: 300
39
+ #
40
+ # # tld A record
41
+ # - host: ''
42
+ # data: 1.1.1.1
43
+ # type: A
44
+ #
45
+ # # simple CNAME record
46
+ # - host: otherbar
47
+ # domain: foo.com
48
+ # data: bar.foo.com
49
+ # type: CNAME
50
+ # ttl: 300
51
+ #
52
+ # # 2 of the same A records is a round robin dns
53
+ # - host: rr
54
+ # domain: foo.com
55
+ # data: 1.1.1.1
56
+ # type: A
57
+ # ttl: 300
58
+ # - host: rr
59
+ # domain: foo.com
60
+ # data: 1.1.1.2
61
+ # type: A
62
+ # ttl: 300
63
+ #
64
+ # # A record, grabbing ip from instance config
65
+ # - host: baz
66
+ # domain: foo.com
67
+ # data: "#{rubber_instances.for_role('web').first.external_ip}"
68
+ # type: A
69
+ # ttl: 300
70
+ #
71
+ # # MX record
72
+ # - host: ''
73
+ # domain: foo.com
74
+ # data: mail.foo.com
75
+ # type: MX
76
+ # ttl: 300
77
+ # priority: 10
78
+
@@ -0,0 +1,25 @@
1
+
2
+ # rvm needs some extra packages to compile/install ruby runtimes
3
+ # curl is required.
4
+ # patch is required (for ree, some ruby head's).
5
+ # For JRuby (if you wish to use it) you will need:
6
+ # aptitude install curl sun-java6-bin sun-java6-jre sun-java6-jdk
7
+ # For MRI & ree (if you wish to use it) you will need:
8
+ # aptitude install curl bison build-essential zlib1g-dev libssl-dev libreadline5-dev libxml2-dev git-core
9
+ # For IronRuby (if you wish to use it) you will need:
10
+ # aptitude install curl mono-2.0-devel
11
+
12
+ packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline5-dev, libxml2-dev]
13
+
14
+ # REQUIRED: Set to the rvm version string for the ruby version you wish to use
15
+ # Run "rvm list known" to see the list of possible options
16
+ rvm_ruby: 1.9.2-head
17
+
18
+ # When rvm is installed as root, and you set the default, it symlinks ruby executables
19
+ # into /usr/local
20
+ ruby_prefix: /usr/local
21
+
22
+ rvm_prefix: /usr/local/rvm
23
+
24
+ # lets us setup global envoronment to use rvm (also needed when running sudo)
25
+ rvm_prepare: "source #{rvm_prefix}/scripts/rvm"
@@ -0,0 +1,235 @@
1
+ # All variables can also be overridden on the role and/or host level by creating
2
+ # a sub level to the config under roles and hosts
3
+ # e.g. to install mysql only on db role, and awstats only on web01:
4
+ #
5
+ # packages: [ruby]
6
+ # roles:
7
+ # db:
8
+ # packages: [mysql]
9
+ # hosts:
10
+ # web01:
11
+ # packages: [awstats]
12
+
13
+ # REQUIRED: The name of your application
14
+ app_name: your_app_name
15
+
16
+ # REQUIRED: The system user to run your app servers as
17
+ app_user: app
18
+
19
+ # REQUIRED: Notification emails (e.g. monit) get sent to this address
20
+ #
21
+ admin_email: root@localhost
22
+
23
+ # OPTIONAL: If not set, you won't be able to access web_tools
24
+ # server (munin stats, monit status, etc)
25
+ # web_tools_user: admin
26
+ # web_tools_password: sekret
27
+
28
+ # REQUIRED: The timezone the server should be in
29
+ timezone: US/Eastern
30
+
31
+ # REQUIRED: the domain all the instances should be associated with
32
+ #
33
+ domain: foo.com
34
+
35
+ # OPTIONAL: See rubber-dns.yml for dns configuration
36
+ # This lets rubber update a dynamic dns service with the instance alias
37
+ # and ip when they are created. It also allows setting up arbitrary
38
+ # dns records (CNAME, MX, Round Robin DNS, etc)
39
+
40
+ # OPTIONAL: Additional rubber file to pull config from if it exists. This file will
41
+ # also be pushed to remote host at RUBBER_ROOT/config/rubber/rubber-secret.yml
42
+ #
43
+ # rubber_secret: "#{File.expand_path('~') + '/.ec2' + (RUBBER_ENV == 'production' ? '' : '_dev') + '/rubber-secret.yml' rescue ''}"
44
+
45
+ # REQUIRED All known cloud providers with the settings needed to configure them
46
+ # There's only one coud provider right now - Amazon Web Services
47
+ # To implement another, clone lib/rubber/cloud/aws.rb
48
+ #
49
+ cloud_providers:
50
+ aws:
51
+ # REQUIRED The amazon keys and account ID (digits only, no dashes) used to access the AWS API
52
+ #
53
+ access_key: XXX
54
+ secret_access_key: YYY
55
+ account: ZZZ
56
+
57
+ # REQUIRED: The name of the amazon keypair and location of its private key
58
+ #
59
+ # NOTE: for some reason Capistrano requires you to have both the public and
60
+ # the private key in the same folder, the public key should have the
61
+ # extension ".pub". The easiest (only?) way to get your hand on this is to
62
+ # create an instance, ssh into it, and copy the file /mnt/openssh_id.pub
63
+ #
64
+ key_name: gsg-keypair
65
+ key_file: "#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/*' + cloud_providers.aws.key_name].first}"
66
+
67
+ # OPTIONAL: Needed for bundling a running instance using rubber:bundle
68
+ #
69
+ # pk_file: "#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/pk-*'].first}"
70
+ # cert_file: "#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/cert-*'].first}"
71
+ # image_bucket: "#{app_name}-images"
72
+
73
+ # OPTIONAL: Needed for backing up database to s3
74
+ # backup_bucket: "#{app_name}-backups"
75
+
76
+ # REQUIRED: the ami and instance type for creating instances
77
+ # The Ubuntu images at http://alestic.com/ work well
78
+ # Ubuntu 10.04 Lucid base install 32-bit ami-2d4aa444
79
+ # Ubuntu 10.04 Lucid base install 64-bit ami-fd4aa494
80
+ #
81
+ image_id: ami-2d4aa444
82
+ # m1.small or m1.large or m1.xlarge
83
+ image_type: m1.small
84
+
85
+ # OPTIONAL: EC2 spot instance request support.
86
+ #
87
+ # Enables the creation of spot instance requests. Rubber will wait synchronously until the request is fulfilled,
88
+ # at which point it will begin initializing the instance, unless spot_instance_request_timeout is set.
89
+ # spot_instance: true
90
+ #
91
+ # The maximum price you would like to pay for your spot instance.
92
+ # spot_price: "0.085"
93
+ #
94
+ # If a spot instance request can't be fulfilled in 3 minutes, fallback to on-demand instance creation. If not set,
95
+ # the default is infinite.
96
+ # spot_instance_request_timeout: 180
97
+
98
+ # REQUIRED the cloud provider to use
99
+ #
100
+ cloud_provider: aws
101
+
102
+ # OPTIONAL: Define security groups
103
+ # Each security group is a name associated with a sequence of maps where the
104
+ # keys are the parameters to the ec2 AuthorizeSecurityGroupIngress API
105
+ # source_security_group_name, source_security_group_owner_id
106
+ # ip_protocol, from_port, to_port, cidr_ip
107
+ #
108
+ security_groups:
109
+ default:
110
+ description: The default security group
111
+ rules:
112
+ - source_group_name: default
113
+ source_group_account: "#{cloud_providers.aws.account}"
114
+ - protocol: tcp
115
+ from_port: 22
116
+ to_port: 22
117
+ source_ips: [0.0.0.0/0]
118
+
119
+ # OPTIONAL: The default security groups to create instances with
120
+ assigned_security_groups: [default]
121
+
122
+ # OPTIONAL: Automatically create security groups for each host and role
123
+ # EC2 doesn't allow one to change what groups an instance belongs to after
124
+ # creation, so its good to have some empty ones predefined.
125
+ auto_security_groups: true
126
+
127
+ # OPTIONAL: Automatically isolate security groups for each appname/environment
128
+ # by mangling their names to be appname_env_groupname
129
+ # This makes it safer to have staging and production coexist on the same EC2
130
+ # account, or even multiple apps
131
+ isolate_security_groups: true
132
+
133
+ # OPTIONAL: The packages to install on all instances
134
+ # You can install a specific version of a package by using a sub-array of pkg, version
135
+ # For example, packages: [[rake, 0.7.1], irb]
136
+ packages: [postfix, build-essential, git-core, ec2-ami-tools]
137
+
138
+ # OPTIONAL: gem sources to setup for rubygems
139
+ # gemsources: ["http://rubygems.org", "http://gems.github.com"]
140
+
141
+ # OPTIONAL: The gems to install on all instances
142
+ # You can install a specific version of a gem by using a sub-array of gem, version
143
+ # For example, gem: [[rails, 2.2.2], open4, aws-s3]
144
+ # gems: [rubber, rails, open4, aws-s3]
145
+ # The above is the correct line once rails3 has been released
146
+ gems: [open4, aws-s3, tzinfo, builder, i18n, memcache-client, rack, rake, rack-test, erubis, mail, text-format, thor, bundler, [rack-mount, 0.4], [rails, 3.0.0.beta3], [rubber, "#{Rubber.version}"]]
147
+
148
+ # OPTIONAL: A string prepended to shell command strings that cause multi
149
+ # statement shell commands to fail fast. You may need to comment this out
150
+ # on some platforms, but it works for me on linux/osx with a bash shell
151
+ #
152
+ stop_on_error_cmd: "function error_exit { exit 99; }; trap error_exit ERR"
153
+
154
+ # OPTIONAL: The default set of roles to use when creating a staging instance
155
+ # with "cap rubber:create_staging". By default this uses all the known roles,
156
+ # but this is not always desired for staging, so you can specify a different
157
+ # set here
158
+ #
159
+ staging_roles: "web,app,db:primary=true"
160
+
161
+
162
+ # OPTIONAL: Lets one assign amazon elastic IPs (static IPs) to your instances
163
+ # You should typically set this on the role/host level rather than
164
+ # globally , unless you really do want all instances to have a
165
+ # static IP
166
+ #
167
+ # use_static_ip: true
168
+
169
+ # OPTIONAL: Specifies an instance to be created in the given availability zone
170
+ # Availability zones are sepcified by amazon to be somewhat isolated
171
+ # from each other so that hardware failures in one zone shouldn't
172
+ # affect instances in another. As such, it is good to specify these
173
+ # for instances that need to be redundant to reduce your chance of
174
+ # downtime. You should typically set this on the role/host level
175
+ # rather than globally. Use rubber describe:zones to see the list
176
+ # of zones
177
+ # availability_zone: us-east-1a
178
+
179
+ # OPTIONAL: If you want t use Elastic Block Store (EBS) persistent
180
+ # volumes, add them to host specific overrides and they will get created
181
+ # and assigned to the instance. On initial creation, the volume will get
182
+ # attached _and_ formatted, but if your host disapears and you recreate
183
+ # it, the volume will only get remounted thereby preserving your data
184
+ #
185
+ # hosts:
186
+ # my_host:
187
+ # availability_zone: us-east-1a
188
+ # volumes:
189
+ # - size: 100 # size of vol in GBs
190
+ # zone: us-east-1a # zone to create volume in, needs to match host's zone
191
+ # device: /dev/sdh # OS device to attach volume to
192
+ # mount: /mnt/mysql # The directory to mount this volume to
193
+ # filesystem: ext3 # the filesystem to create on volume
194
+ # - size: 10 # size of vol in GBs
195
+ # zone: us-east-1a # zone to create volume in, needs to match host's zone
196
+ # device: /dev/sdi # OS device to attach volume to
197
+ # mount: /mnt/logs # The directory to mount this volume to
198
+ # filesystem: ext3 # the filesystem to create on volume
199
+ #
200
+ # # volumes without mount/filesystem can be used in raid arrays
201
+ #
202
+ # - size: 50 # size of vol in GBs
203
+ # zone: us-east-1a # zone to create volume in, needs to match host's zone
204
+ # device: /dev/sdx # OS device to attach volume to
205
+ # - size: 50 # size of vol in GBs
206
+ # zone: us-east-1a # zone to create volume in, needs to match host's zone
207
+ # device: /dev/sdy # OS device to attach volume to
208
+ #
209
+ # # for raid array, you'll need to add mdadm to packages. Likewise,
210
+ # # xfsprogs is needed for xfs filesystem support
211
+ # packages: [xfsprogs, mdadm]
212
+ # raid_volumes:
213
+ # - device: /dev/md0 # OS device to to create raid array on
214
+ # mount: /mnt/fast # The directory to mount this array to
215
+ # filesystem: xfs # the filesystem to create on array
216
+ # raid_level: 0 # the raid level to use for the array
217
+ # source_devices: [/dev/sdx, /dev/sdy] # the source EBS devices we are creating raid array from
218
+
219
+ # OPTIONAL: You can also define your own variables here for use when
220
+ # transforming config files, and they will be available in your config
221
+ # templates as <%= rubber_env.var_name %>
222
+ #
223
+ # var_name: var_value
224
+
225
+ # OPTIONAL: Role specific overrides
226
+ # roles:
227
+ # somerole:
228
+ # packages: []
229
+ # somerole2:
230
+ # myconfig: someval
231
+
232
+ # OPTIONAL: Host specific overrides
233
+ # hosts:
234
+ # somehost:
235
+ # packages: []
@@ -0,0 +1,15 @@
1
+ # rails tries to load this from generator dir, so skip it.
2
+ if __FILE__ !~ /rubber\/generators\/vulcanize/
3
+
4
+ env = ENV['RUBBER_ENV'] ||= (ENV['RAILS_ENV'] || 'development')
5
+ root = File.dirname(__FILE__) + '/../..'
6
+
7
+ # this tries first as a rails plugin then as a gem
8
+ $:.unshift "#{root}/vendor/plugins/rubber/lib/"
9
+ require 'rubber'
10
+
11
+ Rubber::initialize(root, env)
12
+
13
+ require 'rubber/tasks/rubber'
14
+
15
+ end