rubber-jcarnegie 0.0.1

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 (396) hide show
  1. data/CHANGELOG +477 -0
  2. data/COPYING +339 -0
  3. data/README +6 -0
  4. data/TODO +11 -0
  5. data/VERSION +1 -0
  6. data/bin/vulcanize +25 -0
  7. data/generators/vulcanize/USAGE +6 -0
  8. data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +51 -0
  9. data/generators/vulcanize/templates/apache/config/rubber/role/apache/deflate.conf +10 -0
  10. data/generators/vulcanize/templates/apache/config/rubber/role/apache/expires.conf +9 -0
  11. data/generators/vulcanize/templates/apache/config/rubber/role/apache/headers.conf +6 -0
  12. data/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +8 -0
  13. data/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +8 -0
  14. data/generators/vulcanize/templates/apache/config/rubber/role/apache/setenvif.conf +52 -0
  15. data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +79 -0
  16. data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache.auth +7 -0
  17. data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +34 -0
  18. data/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +6 -0
  19. data/generators/vulcanize/templates/apache/templates.yml +1 -0
  20. data/generators/vulcanize/templates/base/Capfile +14 -0
  21. data/generators/vulcanize/templates/base/Rakefile +23 -0
  22. data/generators/vulcanize/templates/base/config/deploy.rb +56 -0
  23. data/generators/vulcanize/templates/base/config/rubber/common/crontab +22 -0
  24. data/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +8 -0
  25. data/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +13 -0
  26. data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +92 -0
  27. data/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
  28. data/generators/vulcanize/templates/base/config/rubber/rubber-dns.yml +78 -0
  29. data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +33 -0
  30. data/generators/vulcanize/templates/base/config/rubber/rubber.yml +241 -0
  31. data/generators/vulcanize/templates/base/lib/tasks/rubber.rake +15 -0
  32. data/generators/vulcanize/templates/base/script/cron-rake +18 -0
  33. data/generators/vulcanize/templates/base/script/cron-runner +18 -0
  34. data/generators/vulcanize/templates/base/script/cron-sh +67 -0
  35. data/generators/vulcanize/templates/base/templates.rb +11 -0
  36. data/generators/vulcanize/templates/base/templates.yml +6 -0
  37. data/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
  38. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +60 -0
  39. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.yaml +210 -0
  40. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/log4j-server.properties +45 -0
  41. data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/monit-cassandra.conf +8 -0
  42. data/generators/vulcanize/templates/cassandra/config/rubber/rubber-cassandra.yml +18 -0
  43. data/generators/vulcanize/templates/cassandra/templates.yml +1 -0
  44. data/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/haproxy/haproxy-mongrel.conf +23 -0
  45. data/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/nginx/nginx-mongrel.conf +113 -0
  46. data/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/rubber-complete.yml +41 -0
  47. data/generators/vulcanize/templates/complete_mongrel_mysql/templates.yml +6 -0
  48. data/generators/vulcanize/templates/complete_passenger/config/rubber/role/haproxy/haproxy-passenger.conf +21 -0
  49. data/generators/vulcanize/templates/complete_passenger/config/rubber/rubber-complete.yml +40 -0
  50. data/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
  51. data/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
  52. data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +4 -0
  53. data/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
  54. data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +72 -0
  55. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/cruise +40 -0
  56. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +165 -0
  57. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/production.rb +8 -0
  58. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/site_config.rb +76 -0
  59. data/generators/vulcanize/templates/cruise/config/rubber/role/web_tools/cruise-nginx.conf +11 -0
  60. data/generators/vulcanize/templates/cruise/config/rubber/rubber-cruise.yml +18 -0
  61. data/generators/vulcanize/templates/cruise/templates.yml +1 -0
  62. data/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +45 -0
  63. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-base.conf +26 -0
  64. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-default.conf +8 -0
  65. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +9 -0
  66. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +11 -0
  67. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +21 -0
  68. data/generators/vulcanize/templates/haproxy/config/rubber/role/web_tools/haproxy-nginx.conf +10 -0
  69. data/generators/vulcanize/templates/haproxy/config/rubber/rubber-haproxy.yml +7 -0
  70. data/generators/vulcanize/templates/haproxy/templates.yml +1 -0
  71. data/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +59 -0
  72. data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.sh +589 -0
  73. data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.xml +199 -0
  74. data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +9 -0
  75. data/generators/vulcanize/templates/jetty/config/rubber/rubber-jetty.yml +10 -0
  76. data/generators/vulcanize/templates/jetty/templates.yml +1 -0
  77. data/generators/vulcanize/templates/memcached/config/memcached.yml +28 -0
  78. data/generators/vulcanize/templates/memcached/config/rubber/common/memcached.yml +14 -0
  79. data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +52 -0
  80. data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached_munin_plugin +249 -0
  81. data/generators/vulcanize/templates/memcached/config/rubber/rubber-memcached.yml +7 -0
  82. data/generators/vulcanize/templates/memcached/templates.yml +1 -0
  83. data/generators/vulcanize/templates/minimal_mysql/templates.yml +7 -0
  84. data/generators/vulcanize/templates/minimal_nodb/templates.yml +6 -0
  85. data/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +75 -0
  86. data/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/mongrel_cluster.yml +12 -0
  87. data/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +20 -0
  88. data/generators/vulcanize/templates/mongrel/config/rubber/rubber-mongrel.yml +9 -0
  89. data/generators/vulcanize/templates/mongrel/templates.yml +1 -0
  90. data/generators/vulcanize/templates/monit/config/rubber/common/monit-default.conf +15 -0
  91. data/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +252 -0
  92. data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +33 -0
  93. data/generators/vulcanize/templates/monit/config/rubber/role/web_tools/monit-admin-nginx.conf +10 -0
  94. data/generators/vulcanize/templates/monit/config/rubber/rubber-monit.yml +6 -0
  95. data/generators/vulcanize/templates/monit/templates.yml +1 -0
  96. data/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +8 -0
  97. data/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +48 -0
  98. data/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +11 -0
  99. data/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +46 -0
  100. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-nginx.conf +8 -0
  101. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +31 -0
  102. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +115 -0
  103. data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
  104. data/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +55 -0
  105. data/generators/vulcanize/templates/munin/script/munin/example_simple.rb +24 -0
  106. data/generators/vulcanize/templates/munin/templates.yml +1 -0
  107. data/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +12 -0
  108. data/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +169 -0
  109. data/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +46 -0
  110. data/generators/vulcanize/templates/mysql/config/rubber/role/db/crontab +14 -0
  111. data/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +10 -0
  112. data/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +163 -0
  113. data/generators/vulcanize/templates/mysql/config/rubber/role/mysql_slave/mysql_slave_munin_plugin +51 -0
  114. data/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +47 -0
  115. data/generators/vulcanize/templates/mysql/templates.yml +1 -0
  116. data/generators/vulcanize/templates/mysql_cluster/config/rubber/common/mysql_cluster_migrations.rb +13 -0
  117. data/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +177 -0
  118. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_data/my.cnf +15 -0
  119. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf +39 -0
  120. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +10 -0
  121. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +23 -0
  122. data/generators/vulcanize/templates/mysql_cluster/config/rubber/rubber-mysql_cluster.yml +32 -0
  123. data/generators/vulcanize/templates/mysql_cluster/templates.yml +1 -0
  124. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/database.yml +16 -0
  125. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +10 -0
  126. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy +153 -0
  127. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.conf +10 -0
  128. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.lua +5 -0
  129. data/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +52 -0
  130. data/generators/vulcanize/templates/mysql_proxy/config/rubber/rubber-mysql_proxy.yml +11 -0
  131. data/generators/vulcanize/templates/mysql_proxy/templates.yml +1 -0
  132. data/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +45 -0
  133. data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +9 -0
  134. data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +8 -0
  135. data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/nginx.conf +42 -0
  136. data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +55 -0
  137. data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-index.html +30 -0
  138. data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-nginx.auth +7 -0
  139. data/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +10 -0
  140. data/generators/vulcanize/templates/nginx/templates.yml +1 -0
  141. data/generators/vulcanize/templates/node/INSTALL_NOTES +20 -0
  142. data/generators/vulcanize/templates/node/config/rubber/deploy-node.rb +33 -0
  143. data/generators/vulcanize/templates/node/config/rubber/rubber-node.yml +1 -0
  144. data/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +45 -0
  145. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +34 -0
  146. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +8 -0
  147. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +47 -0
  148. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +48 -0
  149. data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +41 -0
  150. data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +15 -0
  151. data/generators/vulcanize/templates/passenger/templates.yml +3 -0
  152. data/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
  153. data/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +158 -0
  154. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/crontab +14 -0
  155. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/monit-postgresql.conf +10 -0
  156. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/munin-postgresql.conf +7 -0
  157. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/pg_hba.conf +89 -0
  158. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +6 -0
  159. data/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql.conf +531 -0
  160. data/generators/vulcanize/templates/postgresql/config/rubber/rubber-postgresql.yml +45 -0
  161. data/generators/vulcanize/templates/postgresql/templates.yml +1 -0
  162. data/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb +76 -0
  163. data/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +8 -0
  164. data/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +9 -0
  165. data/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +320 -0
  166. data/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +9 -0
  167. data/generators/vulcanize/templates/redis/templates.yml +1 -0
  168. data/generators/vulcanize/templates/resque/config/initializers/resque.rb +15 -0
  169. data/generators/vulcanize/templates/resque/config/rubber/common/resque.yml +5 -0
  170. data/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +58 -0
  171. data/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +14 -0
  172. data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +19 -0
  173. data/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +18 -0
  174. data/generators/vulcanize/templates/resque/script/resque_worker_management.rb +144 -0
  175. data/generators/vulcanize/templates/resque/templates.rb +1 -0
  176. data/generators/vulcanize/templates/resque/templates.yml +3 -0
  177. data/generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml +46 -0
  178. data/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +112 -0
  179. data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab +11 -0
  180. data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +13 -0
  181. data/generators/vulcanize/templates/sphinx/config/rubber/rubber-sphinx.yml +6 -0
  182. data/generators/vulcanize/templates/sphinx/templates.yml +1 -0
  183. data/generators/vulcanize/vulcanize_generator.rb +184 -0
  184. data/lib/capistrano/hostcmd.rb +12 -0
  185. data/lib/generators/vulcanize/USAGE +6 -0
  186. data/lib/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +51 -0
  187. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/deflate.conf +10 -0
  188. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/expires.conf +9 -0
  189. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/headers.conf +6 -0
  190. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +8 -0
  191. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +8 -0
  192. data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/setenvif.conf +52 -0
  193. data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +79 -0
  194. data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache.auth +7 -0
  195. data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +34 -0
  196. data/lib/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +6 -0
  197. data/lib/generators/vulcanize/templates/apache/templates.yml +1 -0
  198. data/lib/generators/vulcanize/templates/base/Capfile +14 -0
  199. data/lib/generators/vulcanize/templates/base/Rakefile +23 -0
  200. data/lib/generators/vulcanize/templates/base/config/deploy.rb +56 -0
  201. data/lib/generators/vulcanize/templates/base/config/rubber/common/crontab +22 -0
  202. data/lib/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +8 -0
  203. data/lib/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +13 -0
  204. data/lib/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +92 -0
  205. data/lib/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
  206. data/lib/generators/vulcanize/templates/base/config/rubber/rubber-dns.yml +78 -0
  207. data/lib/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +33 -0
  208. data/lib/generators/vulcanize/templates/base/config/rubber/rubber.yml +241 -0
  209. data/lib/generators/vulcanize/templates/base/lib/tasks/rubber.rake +15 -0
  210. data/lib/generators/vulcanize/templates/base/script/cron-rake +18 -0
  211. data/lib/generators/vulcanize/templates/base/script/cron-runner +18 -0
  212. data/lib/generators/vulcanize/templates/base/script/cron-sh +67 -0
  213. data/lib/generators/vulcanize/templates/base/templates.rb +11 -0
  214. data/lib/generators/vulcanize/templates/base/templates.yml +6 -0
  215. data/lib/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
  216. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +60 -0
  217. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.yaml +210 -0
  218. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/log4j-server.properties +45 -0
  219. data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/monit-cassandra.conf +8 -0
  220. data/lib/generators/vulcanize/templates/cassandra/config/rubber/rubber-cassandra.yml +18 -0
  221. data/lib/generators/vulcanize/templates/cassandra/templates.yml +1 -0
  222. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/haproxy/haproxy-mongrel.conf +23 -0
  223. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/nginx/nginx-mongrel.conf +113 -0
  224. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/rubber-complete.yml +41 -0
  225. data/lib/generators/vulcanize/templates/complete_mongrel_mysql/templates.yml +6 -0
  226. data/lib/generators/vulcanize/templates/complete_passenger/config/rubber/role/haproxy/haproxy-passenger.conf +21 -0
  227. data/lib/generators/vulcanize/templates/complete_passenger/config/rubber/rubber-complete.yml +40 -0
  228. data/lib/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
  229. data/lib/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
  230. data/lib/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +4 -0
  231. data/lib/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
  232. data/lib/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +72 -0
  233. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/cruise +40 -0
  234. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +165 -0
  235. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/production.rb +8 -0
  236. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/site_config.rb +76 -0
  237. data/lib/generators/vulcanize/templates/cruise/config/rubber/role/web_tools/cruise-nginx.conf +11 -0
  238. data/lib/generators/vulcanize/templates/cruise/config/rubber/rubber-cruise.yml +18 -0
  239. data/lib/generators/vulcanize/templates/cruise/templates.yml +1 -0
  240. data/lib/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +45 -0
  241. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-base.conf +26 -0
  242. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-default.conf +8 -0
  243. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +9 -0
  244. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +11 -0
  245. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +21 -0
  246. data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/web_tools/haproxy-nginx.conf +10 -0
  247. data/lib/generators/vulcanize/templates/haproxy/config/rubber/rubber-haproxy.yml +7 -0
  248. data/lib/generators/vulcanize/templates/haproxy/templates.yml +1 -0
  249. data/lib/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +59 -0
  250. data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.sh +589 -0
  251. data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.xml +199 -0
  252. data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +9 -0
  253. data/lib/generators/vulcanize/templates/jetty/config/rubber/rubber-jetty.yml +10 -0
  254. data/lib/generators/vulcanize/templates/jetty/templates.yml +1 -0
  255. data/lib/generators/vulcanize/templates/memcached/config/memcached.yml +28 -0
  256. data/lib/generators/vulcanize/templates/memcached/config/rubber/common/memcached.yml +14 -0
  257. data/lib/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +52 -0
  258. data/lib/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached_munin_plugin +249 -0
  259. data/lib/generators/vulcanize/templates/memcached/config/rubber/rubber-memcached.yml +7 -0
  260. data/lib/generators/vulcanize/templates/memcached/templates.yml +1 -0
  261. data/lib/generators/vulcanize/templates/minimal_mysql/templates.yml +7 -0
  262. data/lib/generators/vulcanize/templates/minimal_nodb/templates.yml +6 -0
  263. data/lib/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +75 -0
  264. data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/mongrel_cluster.yml +12 -0
  265. data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +20 -0
  266. data/lib/generators/vulcanize/templates/mongrel/config/rubber/rubber-mongrel.yml +9 -0
  267. data/lib/generators/vulcanize/templates/mongrel/templates.yml +1 -0
  268. data/lib/generators/vulcanize/templates/monit/config/rubber/common/monit-default.conf +15 -0
  269. data/lib/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +252 -0
  270. data/lib/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +33 -0
  271. data/lib/generators/vulcanize/templates/monit/config/rubber/role/web_tools/monit-admin-nginx.conf +10 -0
  272. data/lib/generators/vulcanize/templates/monit/config/rubber/rubber-monit.yml +6 -0
  273. data/lib/generators/vulcanize/templates/monit/templates.yml +1 -0
  274. data/lib/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +8 -0
  275. data/lib/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +48 -0
  276. data/lib/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +11 -0
  277. data/lib/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +46 -0
  278. data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-nginx.conf +8 -0
  279. data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +31 -0
  280. data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +115 -0
  281. data/lib/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
  282. data/lib/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +55 -0
  283. data/lib/generators/vulcanize/templates/munin/script/munin/example_simple.rb +24 -0
  284. data/lib/generators/vulcanize/templates/munin/templates.yml +1 -0
  285. data/lib/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +12 -0
  286. data/lib/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +169 -0
  287. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +46 -0
  288. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/crontab +14 -0
  289. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +10 -0
  290. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +163 -0
  291. data/lib/generators/vulcanize/templates/mysql/config/rubber/role/mysql_slave/mysql_slave_munin_plugin +51 -0
  292. data/lib/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +47 -0
  293. data/lib/generators/vulcanize/templates/mysql/templates.yml +1 -0
  294. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/common/mysql_cluster_migrations.rb +13 -0
  295. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +177 -0
  296. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_data/my.cnf +15 -0
  297. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf +39 -0
  298. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +10 -0
  299. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +23 -0
  300. data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/rubber-mysql_cluster.yml +32 -0
  301. data/lib/generators/vulcanize/templates/mysql_cluster/templates.yml +1 -0
  302. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/database.yml +16 -0
  303. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +10 -0
  304. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy +153 -0
  305. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.conf +10 -0
  306. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.lua +5 -0
  307. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +52 -0
  308. data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/rubber-mysql_proxy.yml +11 -0
  309. data/lib/generators/vulcanize/templates/mysql_proxy/templates.yml +1 -0
  310. data/lib/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +45 -0
  311. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +9 -0
  312. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +8 -0
  313. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/nginx.conf +42 -0
  314. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +55 -0
  315. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-index.html +30 -0
  316. data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-nginx.auth +7 -0
  317. data/lib/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +10 -0
  318. data/lib/generators/vulcanize/templates/nginx/templates.yml +1 -0
  319. data/lib/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +45 -0
  320. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +34 -0
  321. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +8 -0
  322. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +47 -0
  323. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +48 -0
  324. data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +41 -0
  325. data/lib/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +15 -0
  326. data/lib/generators/vulcanize/templates/passenger/templates.yml +3 -0
  327. data/lib/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
  328. data/lib/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +158 -0
  329. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/crontab +14 -0
  330. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/monit-postgresql.conf +10 -0
  331. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/munin-postgresql.conf +7 -0
  332. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/pg_hba.conf +89 -0
  333. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +6 -0
  334. data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql.conf +531 -0
  335. data/lib/generators/vulcanize/templates/postgresql/config/rubber/rubber-postgresql.yml +45 -0
  336. data/lib/generators/vulcanize/templates/postgresql/templates.yml +1 -0
  337. data/lib/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb +76 -0
  338. data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +8 -0
  339. data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +9 -0
  340. data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +320 -0
  341. data/lib/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +9 -0
  342. data/lib/generators/vulcanize/templates/redis/templates.yml +1 -0
  343. data/lib/generators/vulcanize/templates/resque/config/initializers/resque.rb +15 -0
  344. data/lib/generators/vulcanize/templates/resque/config/rubber/common/resque.yml +5 -0
  345. data/lib/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +58 -0
  346. data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +14 -0
  347. data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +19 -0
  348. data/lib/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +18 -0
  349. data/lib/generators/vulcanize/templates/resque/script/resque_worker_management.rb +144 -0
  350. data/lib/generators/vulcanize/templates/resque/templates.rb +1 -0
  351. data/lib/generators/vulcanize/templates/resque/templates.yml +3 -0
  352. data/lib/generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml +46 -0
  353. data/lib/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +112 -0
  354. data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab +11 -0
  355. data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +13 -0
  356. data/lib/generators/vulcanize/templates/sphinx/config/rubber/rubber-sphinx.yml +6 -0
  357. data/lib/generators/vulcanize/templates/sphinx/templates.yml +1 -0
  358. data/lib/generators/vulcanize/vulcanize_generator.rb +184 -0
  359. data/lib/rubber.rb +76 -0
  360. data/lib/rubber/capistrano.rb +1 -0
  361. data/lib/rubber/cloud.rb +13 -0
  362. data/lib/rubber/cloud/aws.rb +362 -0
  363. data/lib/rubber/cloud/base.rb +16 -0
  364. data/lib/rubber/configuration.rb +47 -0
  365. data/lib/rubber/dns.rb +13 -0
  366. data/lib/rubber/dns/base.rb +84 -0
  367. data/lib/rubber/dns/dyndns.rb +77 -0
  368. data/lib/rubber/dns/nettica.rb +117 -0
  369. data/lib/rubber/dns/zerigo.rb +115 -0
  370. data/lib/rubber/environment.rb +177 -0
  371. data/lib/rubber/generator.rb +209 -0
  372. data/lib/rubber/instance.rb +176 -0
  373. data/lib/rubber/railtie.rb +14 -0
  374. data/lib/rubber/recipes/rubber.rb +96 -0
  375. data/lib/rubber/recipes/rubber/bundles.rb +30 -0
  376. data/lib/rubber/recipes/rubber/deploy.rb +90 -0
  377. data/lib/rubber/recipes/rubber/instances.rb +453 -0
  378. data/lib/rubber/recipes/rubber/load_balancers.rb +44 -0
  379. data/lib/rubber/recipes/rubber/security_groups.rb +189 -0
  380. data/lib/rubber/recipes/rubber/setup.rb +534 -0
  381. data/lib/rubber/recipes/rubber/spot_requests.rb +23 -0
  382. data/lib/rubber/recipes/rubber/static_ips.rb +190 -0
  383. data/lib/rubber/recipes/rubber/tags.rb +12 -0
  384. data/lib/rubber/recipes/rubber/utils.rb +226 -0
  385. data/lib/rubber/recipes/rubber/volumes.rb +265 -0
  386. data/lib/rubber/tag.rb +16 -0
  387. data/lib/rubber/tasks/rubber.rb +279 -0
  388. data/lib/rubber/util.rb +72 -0
  389. data/rails/init.rb +6 -0
  390. data/test/environment_test.rb +144 -0
  391. data/test/generator_test.rb +370 -0
  392. data/test/instance_test.rb +96 -0
  393. data/test/test_helper.rb +14 -0
  394. data/test/util_test.rb +19 -0
  395. data/test/zerigo_test.rb +88 -0
  396. metadata +540 -0
@@ -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
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # For running rake jobs through cron - only prints output if there is an error
4
+ #
5
+ # author mconway
6
+ # since 8/12/07
7
+
8
+ RAILS_ROOT = File.expand_path("..", File.dirname(__FILE__))
9
+ log = "#{RAILS_ROOT}/log/cron-rake-#{Time.now.tv_sec}.log"
10
+ begin
11
+ ident = File.basename(ARGV[-1]).gsub(/\W+/, "_")
12
+ log = "#{RAILS_ROOT}/log/cron-rake-#{ident}.log"
13
+ rescue
14
+ end
15
+
16
+ Dir.chdir(RAILS_ROOT)
17
+ args = %W{-l #{log} -- rake --trace} + ARGV
18
+ system "script/cron-sh", *args
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # For running jobs through cron - only prints output if there is an error
4
+ #
5
+ # author mconway
6
+ # since 8/12/07
7
+
8
+ RAILS_ROOT = File.expand_path("..", File.dirname(__FILE__))
9
+ log = "#{RAILS_ROOT}/log/cron-runner-#{Time.now.tv_sec}.log"
10
+ begin
11
+ ident = File.basename(ARGV[-1]).gsub(/\W+/, "_")
12
+ log = "#{RAILS_ROOT}/log/cron-runner-#{ident}.log"
13
+ rescue
14
+ end
15
+
16
+ Dir.chdir(RAILS_ROOT)
17
+ args = %W{-e -l #{log} -- RAILS_RUNNER} + ARGV
18
+ system "script/cron-sh", *args
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # For running shell commands through cron - only prints output if there is an error
4
+ #
5
+ # author mconway
6
+ # since 8/12/07
7
+
8
+ require 'optparse'
9
+ require 'ostruct'
10
+ require 'rubygems'
11
+ require 'open4'
12
+
13
+ options = OpenStruct.new
14
+ options.logfile = "/tmp/cron-sh-#{Time.now.tv_sec}.log"
15
+ options.echoerr = false
16
+ options.echoout = false
17
+
18
+ opts = OptionParser.new do |opts|
19
+ opts.banner = "Usage: cron-sh [options] <shell command>"
20
+ opts.separator "Runs the given command, sending all stdout/stderr to a logfile, but echoing"
21
+ opts.separator "the entire file if the command exits with an error"
22
+ opts.separator ""
23
+ opts.separator "Specific options:"
24
+
25
+ opts.on("-l", "--log logfile", "Log to given file instead of a default") do |val|
26
+ options.logfile = val
27
+ end
28
+
29
+ opts.on("-o", "--[no-]echoout", "Log _and_ echo stdout") do |val|
30
+ options.echoout = true
31
+ end
32
+
33
+ opts.on("-e", "--[no-]echoerr", "Log _and_ echo stderr") do |val|
34
+ options.echoerr = true
35
+ end
36
+
37
+ opts.on_tail("-h", "--help", "Show this message") do
38
+ puts opts
39
+ exit
40
+ end
41
+ end
42
+
43
+ cmd = opts.parse(ARGV)
44
+
45
+ status = Open4::popen4(*cmd) do |pid, stdin, stdout, stderr|
46
+ File.open(options.logfile, "w") do | fh |
47
+ threads = []
48
+ threads << Thread.new(stdout) do |stdout|
49
+ stdout.each { |line| $stdout.puts line if options.echoout; fh.print line; fh.flush }
50
+ end
51
+ threads << Thread.new(stderr) do |stderr|
52
+ stderr.each { |line| $stderr.puts line if options.echoerr; fh.print line; fh.flush }
53
+ end
54
+ threads.each { |t| t.join }
55
+ end
56
+ end
57
+
58
+ result = status.exitstatus
59
+ if result != 0
60
+ puts ""
61
+ puts "*** Process exited with non-zero error code, full output follows"
62
+ puts "*** Command was: #{cmd.join(' ')}"
63
+ puts ""
64
+ puts IO.read(options.logfile)
65
+ end
66
+
67
+ exit(result)
@@ -0,0 +1,11 @@
1
+ gem "rubber", Rubber.version if Rubber::Util::is_bundler? && ! Rubber::Util::rubber_as_plugin?
2
+
3
+ if Rubber::Util::is_rails2?
4
+ m.gsub_file('script/cron-runner', /RAILS_RUNNER/, 'script/runner')
5
+ m.gsub_file('Rakefile', /RAILS_LOADER/, "require(File.join(File.dirname(__FILE__), 'config', 'boot'))")
6
+ m.gsub_file('Rakefile', /RAILS_TASKS/, "require 'tasks/rails'")
7
+ else
8
+ gsub_file('script/cron-runner', /RAILS_RUNNER/, 'rails runner')
9
+ gsub_file('Rakefile', /RAILS_LOADER/, '')
10
+ gsub_file('Rakefile', /RAILS_TASKS/, '')
11
+ end
@@ -0,0 +1,6 @@
1
+ description: The core configuration needed by all others
2
+
3
+ # only include Rakefile when generating for non-rails apps, as we use rails
4
+ # rake loading mechanism for including rakefile in rails apps
5
+ optional:
6
+ Rakefile: "!rails?"
@@ -0,0 +1,88 @@
1
+
2
+ namespace :rubber do
3
+
4
+ namespace :cassandra do
5
+
6
+ rubber.allow_optional_tasks(self)
7
+
8
+ after "rubber:install_packages", "rubber:cassandra:install"
9
+
10
+ task :install, :roles => :cassandra do
11
+ rubber.sudo_script 'install_cassandra', <<-ENDSCRIPT
12
+ if [[ ! -d "#{rubber_env.cassandra_dir}" ]]; then
13
+ wget -qNP /tmp #{rubber_env.cassandra_pkg_url}
14
+ tar -C #{rubber_env.cassandra_prefix} -zxf /tmp/apache-cassandra-#{rubber_env.cassandra_version}-bin.tar.gz
15
+ wget -qNO #{rubber_env.cassandra_dir}/jmxterm.jar http://downloads.sourceforge.net/project/cyclops-group/jmxterm/1.0-alpha-4/jmxterm-1.0-alpha-4-uber.jar
16
+ fi
17
+ ENDSCRIPT
18
+ end
19
+
20
+ after "rubber:bootstrap", "rubber:cassandra:bootstrap"
21
+
22
+ task :bootstrap, :roles => :cassandra do
23
+ instances = rubber_instances.for_role("cassandra") & rubber_instances.filtered
24
+ instances.each do |ic|
25
+ task_name = "_bootstrap_cassandra_#{ic.full_name}".to_sym()
26
+ task task_name, :hosts => ic.full_name do
27
+ env = rubber_cfg.environment.bind("cassandra", ic.name)
28
+ exists = capture("echo $(ls #{env.cassandra_data_dir}/ 2> /dev/null)")
29
+ if exists.strip.size == 0
30
+ # After everything installed on machines, we need the source tree
31
+ # on hosts in order to run rubber:config for bootstrapping the db
32
+ deploy.update_code
33
+
34
+ # Gen just the conf for cassandra
35
+ rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/cassandra", :FORCE => true, :deploy_path => release_path)
36
+
37
+ cassandra_start
38
+
39
+ # temporary hack to load initial schema from cassandra.yaml until
40
+ # something better available. Subsequent schema changes should be
41
+ # done using thrift system_* api
42
+ # http://wiki.apache.org/cassandra/FAQ#no_keyspaces
43
+ # http://wiki.apache.org/cassandra/LiveSchemaUpdates
44
+ if instances.size == 1
45
+ rubber.sudo_script "install_cassandra_schema", <<-ENDSCRIPT
46
+ echo run -b org.apache.cassandra.service:type=StorageService loadSchemaFromYAML |\
47
+ java -jar #{rubber_env.cassandra_dir}/jmxterm.jar -n -l #{ic.full_name}:#{rubber_env.cassandra_jmx_port}
48
+ ENDSCRIPT
49
+ end
50
+ end
51
+ end
52
+ send task_name
53
+ end
54
+ end
55
+
56
+ on :load do
57
+ rubber.serial_task self, :serial_restart, :roles => :cassandra do
58
+ cassandra_stop
59
+ cassandra_start
60
+ end
61
+
62
+ rubber.serial_task self, :serial_reload, :roles => :cassandra do
63
+ end
64
+ end
65
+
66
+ def cassandra_stop
67
+ rsudo "pid=`cat #{rubber_env.cassandra_pid_file}` && kill $pid; while ps $pid &> /dev/null; do sleep 1; done"
68
+ end
69
+
70
+ def cassandra_start
71
+ rsudo "nohup #{rubber_env.cassandra_dir}/bin/cassandra -p #{rubber_env.cassandra_pid_file} &> #{rubber_env.cassandra_log_dir}/startup.log"
72
+ end
73
+
74
+ task :restart, :roles => :cassandra do
75
+ rubber.cassandra.stop
76
+ rubber.cassandra.start
77
+ end
78
+
79
+ task :stop, :roles => :cassandra do
80
+ cassandra_stop
81
+ end
82
+
83
+ task :start, :roles => :cassandra do
84
+ cassandra_start
85
+ end
86
+
87
+ end
88
+ end
@@ -0,0 +1,60 @@
1
+ <%
2
+ @path = "#{rubber_env.cassandra_dir}/bin/cassandra.in.sh"
3
+ %>
4
+
5
+ # Licensed to the Apache Software Foundation (ASF) under one
6
+ # or more contributor license agreements. See the NOTICE file
7
+ # distributed with this work for additional information
8
+ # regarding copyright ownership. The ASF licenses this file
9
+ # to you under the Apache License, Version 2.0 (the
10
+ # "License"); you may not use this file except in compliance
11
+ # with the License. You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+
21
+
22
+ cassandra_home=`dirname $0`/..
23
+
24
+ # The directory where Cassandra's configs live (required)
25
+ CASSANDRA_CONF=$cassandra_home/conf
26
+
27
+ # This can be the path to a jar file, or a directory containing the
28
+ # compiled classes. NOTE: This isn't needed by the startup script,
29
+ # it's just used here in constructing the classpath.
30
+ cassandra_bin=$cassandra_home/build/classes
31
+ #cassandra_bin=$cassandra_home/build/cassandra.jar
32
+
33
+ # JAVA_HOME can optionally be set here
34
+ #JAVA_HOME=/usr/local/jdk6
35
+
36
+ # The java classpath (required)
37
+ CLASSPATH=$CASSANDRA_CONF:$cassandra_bin
38
+
39
+ for jar in $cassandra_home/lib/*.jar; do
40
+ CLASSPATH=$CLASSPATH:$jar
41
+ done
42
+
43
+ # Arguments to pass to the JVM
44
+ JVM_OPTS=" \
45
+ -ea \
46
+ -Xms128M \
47
+ -Xmx1G \
48
+ -XX:TargetSurvivorRatio=90 \
49
+ -XX:+AggressiveOpts \
50
+ -XX:+UseParNewGC \
51
+ -XX:+UseConcMarkSweepGC \
52
+ -XX:+CMSParallelRemarkEnabled \
53
+ -XX:+HeapDumpOnOutOfMemoryError \
54
+ -XX:SurvivorRatio=128 \
55
+ -XX:MaxTenuringThreshold=0 \
56
+ -Dcom.sun.management.jmxremote.port=<%= rubber_env.cassandra_jmx_port %> \
57
+ -Dcom.sun.management.jmxremote.ssl=false \
58
+ -Dcom.sun.management.jmxremote.authenticate=false"
59
+
60
+ ulimit -n 65536
@@ -0,0 +1,210 @@
1
+ <%
2
+ @path = "#{rubber_env.cassandra_dir}/conf/cassandra.yaml"
3
+ @post = "mkdir -p #{rubber_env.cassandra_data_dir} #{rubber_env.cassandra_commitlog_dir} #{rubber_env.cassandra_log_dir}"
4
+ %>
5
+ # Cassandra storage config YAML
6
+ # See http://wiki.apache.org/cassandra/StorageConfiguration for
7
+ # explanations of configuration directives.
8
+
9
+ # name of the cluster
10
+ cluster_name: '<%= rubber_env.app_name %>_<%= Rubber.env %>_cluster'
11
+
12
+ # Set to true to make new [non-seed] nodes automatically migrate the
13
+ # right data to themselves.
14
+ auto_bootstrap: <%= rubber_instances.for_role("cassandra").size > 1 ? "true" : "false" %>
15
+
16
+ # authentication backend, implementing IAuthenticator; used to limit keyspace access
17
+ authenticator: org.apache.cassandra.auth.AllowAllAuthenticator
18
+
19
+ # any IPartitioner may be used, including your own as long as it is on
20
+ # the classpath. Out of the box, Cassandra provides
21
+ # org.apache.cassandra.dht.RandomPartitioner
22
+ # org.apache.cassandra.dht.OrderPreservingPartitioner, and
23
+ # org.apache.cassandra.dht.CollatingOrderPreservingPartitioner.
24
+ partitioner: org.apache.cassandra.dht.RandomPartitioner
25
+
26
+ # directories where Cassandra should store data on disk.
27
+ data_file_directories:
28
+ - <%= rubber_env.cassandra_data_dir %>
29
+
30
+ # Addresses of hosts that are deemed contact points.
31
+ # Cassandra nodes use this list of hosts to find each other and learn
32
+ # the topology of the ring. You must change this if you are running
33
+ # multiple nodes!
34
+ <%
35
+ seeds = rubber_instances.for_role('cassandra_seed')
36
+ seeds = rubber_instances.for_role('cassandra') if seeds.size == 0
37
+ seed_hosts = seeds.collect { |i| i.full_name }
38
+ %>
39
+ seeds:
40
+ <% seed_hosts.each do |host| %>
41
+ - <%= host %>
42
+ <% end %>
43
+
44
+ # Access mode. mmapped i/o is substantially faster, but only practical on
45
+ # a 64bit machine (which notably does not include EC2 "small" instances)
46
+ # or relatively small datasets. "auto", the safe choice, will enable
47
+ # mmapping on a 64bit JVM. Other values are "mmap", "mmap_index_only"
48
+ # (which may allow you to get part of the benefits of mmap on a 32bit
49
+ # machine by mmapping only index files) and "standard".
50
+ # (The buffer size settings that follow only apply to standard,
51
+ # non-mmapped i/o.)
52
+ disk_access_mode: auto
53
+
54
+ # Unlike most systems, in Cassandra writes are faster than reads, so
55
+ # you can afford more of those in parallel. A good rule of thumb is 2
56
+ # concurrent reads per processor core. Increase ConcurrentWrites to
57
+ # the number of clients writing at once if you enable CommitLogSync +
58
+ # CommitLogSyncDelay. -->
59
+ concurrent_reads: 8
60
+ concurrent_writes: 32
61
+
62
+ # Buffer size to use when performing contiguous column slices.
63
+ # Increase this to the size of the column slices you typically perform
64
+ sliced_buffer_size_in_kb: 64
65
+
66
+ # TCP port, for commands and data
67
+ storage_port: <%= rubber_env.cassandra_storage_port %>
68
+
69
+ # Address to bind to and tell other nodes to connect to. You _must_
70
+ # change this if you want multiple nodes to be able to communicate!
71
+ listen_address: <%= rubber_env.full_host %>
72
+
73
+ # The address to bind the Thrift RPC service to
74
+ rpc_address: <%= rubber_env.full_host %>
75
+ # port for Thrift to listen on
76
+ rpc_port: <%= rubber_env.cassandra_rpc_port %>
77
+ # Whether or not to use a framed transport for Thrift.
78
+ thrift_framed_transport: false
79
+ snapshot_before_compaction: false
80
+
81
+ # The threshold size in megabytes the binary memtable must grow to,
82
+ # before it's submitted for flushing to disk.
83
+ binary_memtable_throughput_in_mb: 256
84
+ # Number of minutes to keep a memtable in memory
85
+ memtable_flush_after_mins: 60
86
+ # Size of the memtable in memory before it is dumped
87
+ memtable_throughput_in_mb: 64
88
+ # Number of objects in millions in the memtable before it is dumped
89
+ memtable_operations_in_millions: 0.3
90
+ # Buffer size to use when flushing !memtables to disk.
91
+ flush_data_buffer_size_in_mb: 32
92
+ # Increase (decrease) the index buffer size relative to the data
93
+ # buffer if you have few (many) columns per key.
94
+ flush_index_buffer_size_in_mb: 8
95
+
96
+ column_index_size_in_kb: 64
97
+ row_warning_threshold_in_mb: 512
98
+
99
+ # commit log
100
+ commitlog_directory: <%= rubber_env.cassandra_commitlog_dir %>
101
+
102
+ # Size to allow commitlog to grow to before creating a new segment
103
+ commitlog_rotation_threshold_in_mb: 128
104
+
105
+ # commitlog_sync may be either "periodic" or "batch."
106
+ # When in batch mode, Cassandra won't ack writes until the commit log
107
+ # has been fsynced to disk. It will wait up to
108
+ # CommitLogSyncBatchWindowInMS milliseconds for other writes, before
109
+ # performing the sync.
110
+ commitlog_sync: periodic
111
+
112
+ # the other option is "timed," where writes may be acked immediately
113
+ # and the CommitLog is simply synced every commitlog_sync_period_in_ms
114
+ # milliseconds.
115
+ commitlog_sync_period_in_ms: 10000
116
+
117
+ # Time to wait for a reply from other nodes before failing the command
118
+ rpc_timeout_in_ms: 10000
119
+
120
+ # time to wait before garbage collecting tombstones (deletion markers)
121
+ gc_grace_seconds: 864000
122
+
123
+ # endpoint_snitch -- Set this to a class that implements
124
+ # IEndpointSnitch, which will let Cassandra know enough
125
+ # about your network topology to route requests efficiently.
126
+ # Out of the box, Cassandra provides
127
+ # org.apache.cassandra.locator.SimpleSnitch,
128
+ # org.apache.cassandra.locator.RackInferringSnitch, and
129
+ # org.apache.cassandra.locator.PropertyFileSnitch.
130
+ endpoint_snitch: org.apache.cassandra.locator.SimpleSnitch
131
+
132
+ # A ColumnFamily is the Cassandra concept closest to a relational table.
133
+ #
134
+ # Keyspaces are separate groups of ColumnFamilies. Except in very
135
+ # unusual circumstances you will have one Keyspace per application.
136
+ #
137
+ # Keyspace required parameters:
138
+ # - name: name of the keyspace; "system" and "definitions" are
139
+ # reserved for Cassandra Internals.
140
+ # - replica_placement_strategy: the class that determines how replicas
141
+ # are distributed among nodes. Must implement IReplicaPlacementStrategy.
142
+ # Out of the box, Cassandra provides
143
+ # org.apache.cassandra.locator.RackUnawareStrategy and
144
+ # org.apache.cassandra.locator.RackAwareStrategy. RackAwareStrategy
145
+ # place one replica in each of two datacenter, and other replicas in
146
+ # different racks in one.
147
+ # - replication_factor: Number of replicas of each row
148
+ # - column_families: column families associated with this keyspace
149
+ #
150
+ # ColumnFamily required parameters:
151
+ # - name: name of the ColumnFamily. Must not contain the character "-".
152
+ # - compare_with: tells Cassandra how to sort the columns for slicing
153
+ # operations. The default is BytesType, which is a straightforward
154
+ # lexical comparison of the bytes in each column. Other options are
155
+ # AsciiType, UTF8Type, LexicalUUIDType, TimeUUIDType, and LongType.
156
+ # You can also specify the fully-qualified class name to a class of
157
+ # your choice extending org.apache.cassandra.db.marshal.AbstractType.
158
+ #
159
+ # ColumnFamily optional parameters:
160
+ # - keys_cached: specifies the number of keys per sstable whose
161
+ # locations we keep in memory in "mostly LRU" order. (JUST the key
162
+ # locations, NOT any column values.) Specify a fraction (value less
163
+ # than 1) or an absolute number of keys to cache. Defaults to 200000
164
+ # keys.
165
+ # - rows_cached: specifies the number of rows whose entire contents we
166
+ # cache in memory. Do not use this on ColumnFamilies with large rows,
167
+ # or ColumnFamilies with high write:read ratios. Specify a fraction
168
+ # (value less than 1) or an absolute number of rows to cache.
169
+ # Defaults to 0. (i.e. row caching is off by default)
170
+ # - comment: used to attach additional human-readable information about
171
+ # the column family to its definition.
172
+ # - read_repair_chance: specifies the probability with which read
173
+ # repairs should be invoked on non-quorum reads. must be between 0
174
+ # and 1. defaults to 1.0 (always read repair).
175
+ # - preload_row_cache: If true, will populate row cache on startup.
176
+ # Defaults to false.
177
+ #
178
+ keyspaces:
179
+ - name: <%= rubber_env.app_name.capitalize %>
180
+ replica_placement_strategy: org.apache.cassandra.locator.RackUnawareStrategy
181
+ replication_factor: 1
182
+ column_families:
183
+ - name: Standard1
184
+ compare_with: BytesType
185
+
186
+ - name: Standard2
187
+ compare_with: UTF8Type
188
+ read_repair_chance: 0.1
189
+ keys_cached: 100
190
+
191
+ - name: StandardByUUID1
192
+ compare_with: TimeUUIDType
193
+
194
+ - name: Super1
195
+ column_type: Super
196
+ compare_with: BytesType
197
+ compare_subcolumns_with: BytesType
198
+
199
+ - name: Super2
200
+ column_type: Super
201
+ compare_subcolumns_with: UTF8Type
202
+ preload_row_cache: true
203
+ rows_cached: 10000
204
+ keys_cached: 50
205
+ comment: 'A column family with supercolumns, whose column and subcolumn names are UTF8 strings'
206
+
207
+ - name: Super3
208
+ column_type: Super
209
+ compare_with: LongType
210
+ comment: 'A column family with supercolumns, whose column names are Longs (8 bytes)'