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,158 @@
1
+
2
+ namespace :rubber do
3
+
4
+ namespace :postgresql do
5
+
6
+ rubber.allow_optional_tasks(self)
7
+
8
+ before "rubber:install_packages", "rubber:postgresql:setup_apt_sources"
9
+
10
+ task :setup_apt_sources, :roles => [:postgresql_master, :postgresql_save] do
11
+ rsudo "add-apt-repository ppa:pitti/postgresql"
12
+ end
13
+
14
+ after "rubber:create", "rubber:postgresql:validate_db_roles"
15
+
16
+ task :validate_db_roles do
17
+ db_instances = rubber_instances.for_role("postgresql_slave")
18
+ db_instances.each do |instance|
19
+ if instance.role_names.find {|n| n == 'postgresql_master'}
20
+ fatal "Cannot have a postgresql slave and master on the same instance, please remove slave role for #{instance.name}"
21
+ end
22
+ end
23
+ end
24
+
25
+ after "rubber:bootstrap", "rubber:postgresql:bootstrap"
26
+
27
+
28
+ # Bootstrap the production database config. Db bootstrap is special - the
29
+ # user could be requiring the rails env inside some of their config
30
+ # templates, which creates a catch 22 situation with the db, so we try and
31
+ # bootstrap the db separate from the rest of the config
32
+ task :bootstrap, :roles => [:postgresql_master, :postgresql_slave] do
33
+
34
+ # Conditionally bootstrap for each node/role only if that node has not
35
+ # been boostrapped for that role before
36
+ master_instances = rubber_instances.for_role("postgresql_master") & rubber_instances.filtered
37
+ master_instances.each do |ic|
38
+ task_name = "_bootstrap_postgresql_master_#{ic.full_name}".to_sym()
39
+ task task_name, :hosts => ic.full_name do
40
+ env = rubber_cfg.environment.bind("postgresql_master", ic.name)
41
+ exists = capture("echo $(ls #{env.postgresql_data_dir}/ 2> /dev/null)")
42
+ if exists.strip.size == 0
43
+ common_bootstrap("postgresql_master")
44
+
45
+ create_user_cmd = "CREATE USER #{env.db_user} WITH NOSUPERUSER CREATEDB NOCREATEROLE"
46
+ create_user_cmd << "PASSWORD '#{env.db_pass}'" if env.db_pass
47
+ rubber.sudo_script "create_master_db", <<-ENDSCRIPT
48
+ sudo -u postgres psql -c "#{create_user_cmd}"
49
+ sudo -u postgres psql -c "CREATE DATABASE #{env.db_name} WITH OWNER #{env.db_user}"
50
+ ENDSCRIPT
51
+ end
52
+ end
53
+ send task_name
54
+ end
55
+
56
+ # Wait for postgresql 9.0 to be available before allowing slaves
57
+ #
58
+ # slave_instances = rubber_instances.for_role("postgresql_slave") & rubber_instances.filtered
59
+ # slave_instances.each do |ic|
60
+ # task_name = "_bootstrap_postgresql_slave_#{ic.full_name}".to_sym()
61
+ # task task_name, :hosts => ic.full_name do
62
+ # env = rubber_cfg.environment.bind("postgresql_slave", ic.name)
63
+ # exists = capture("echo $(ls #{env.db_data_dir}/ 2> /dev/null)")
64
+ # if exists.strip.size == 0
65
+ # common_bootstrap("postgresql_slave")
66
+ #
67
+ # source = master = rubber_instances.for_role("postgresql_master").first
68
+ #
69
+ # slave_pub_key = capture("cat /root/.ssh/id_dsa.pub")
70
+ # sudo "echo \"#{slave_pub_key}\" >> /root/.ssh/authorized_keys", :hosts => [master.full_name]
71
+ #
72
+ # base_backup_script = <<-ENDSCRIPT
73
+ # sudo -u postgres psql -c "SELECT pg_start_backup('rubber_create_slave')"
74
+ # tar --exclude pg_xlog -czf /tmp/postgresql-data.tgz #{env.postgresql_data_dir}
75
+ # tar -czf /tmp/postgresql-archive.tgz #{env.postgresql_archive_dir}
76
+ # sudo -u postgres psql -c "SELECT pg_stop_backup()"
77
+ # ENDSCRIPT
78
+ #
79
+ # rubber.sudo_script "create_slave_db_from_master", base_backup_script, :hosts => [master.full_name]
80
+ #
81
+ # rsudo "psql -u root -e \"start slave;\""
82
+ # end
83
+ # end
84
+ # send task_name
85
+ # end
86
+
87
+ end
88
+
89
+ after "rubber:munin:custom_install", "rubber:postgresql:install_munin_plugins"
90
+ after "rubber:postgresql:install_munin_plugins", "rubber:munin:restart"
91
+ task :install_munin_plugins, :roles => [:postgresql_master, :postgresql_slave] do
92
+ regular_plugins = %w[bgwriter checkpoints connections_db users xlog]
93
+ parameterized_plugins = %w[cache connections locks querylength scans transactions tuples]
94
+
95
+ commands = ['rm -f /etc/munin/plugins/postgres_*']
96
+
97
+ regular_plugins.each do |name|
98
+ commands << "ln -s /usr/share/munin/plugins/postgres_#{name} /etc/munin/plugins/postgres_#{name}"
99
+ end
100
+
101
+ parameterized_plugins.each do |name|
102
+ commands << "ln -s /usr/share/munin/plugins/postgres_#{name}_ /etc/munin/plugins/postgres_#{name}_#{rubber_env.db_name}"
103
+ end
104
+
105
+ rubber.sudo_script "install_postgresql_munin_plugins", <<-ENDSCRIPT
106
+ #{commands.join(';')}
107
+ ENDSCRIPT
108
+ end
109
+
110
+ # TODO: Make the setup/update happen just once per host
111
+ def common_bootstrap(role)
112
+ # postgresql package install starts postgresql, so stop it
113
+ rsudo "#{rubber_env.postgresql_ctl} stop" rescue nil
114
+
115
+ # After everything installed on machines, we need the source tree
116
+ # on hosts in order to run rubber:config for bootstrapping the db
117
+ rubber.update_code_for_bootstrap
118
+
119
+ # Gen just the conf for the given postgresql role
120
+ rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/#{role}|role/db/", :FORCE => true, :deploy_path => release_path)
121
+
122
+ # reconfigure postgresql so that it sets up data dir in /mnt with correct files
123
+ dirs = [rubber_env.postgresql_data_dir, rubber_env.postgresql_archive_dir]
124
+ sudo_script 'reconfigure-postgresql', <<-ENDSCRIPT
125
+ mkdir -p #{dirs.join(' ')}
126
+ chown -R postgres:postgres #{dirs.join(' ')}
127
+
128
+ sudo -u postgres /usr/lib/postgresql/#{rubber_env.postgresql_ver}/bin/initdb -D #{rubber_env.postgresql_data_dir}
129
+
130
+ #{rubber_env.postgresql_ctl} start
131
+ ENDSCRIPT
132
+ sleep 5
133
+ end
134
+
135
+ desc <<-DESC
136
+ Starts the postgresql daemons
137
+ DESC
138
+ task :start, :roles => [:postgresql_master, :postgresql_slave] do
139
+ rsudo "#{rubber_env.postgresql_ctl} start"
140
+ end
141
+
142
+ desc <<-DESC
143
+ Stops the postgresql daemons
144
+ DESC
145
+ task :stop, :roles => [:postgresql_master, :postgresql_slave] do
146
+ rsudo "#{rubber_env.postgresql_ctl} stop"
147
+ end
148
+
149
+ desc <<-DESC
150
+ Restarts the postgresql daemons
151
+ DESC
152
+ task :restart, :roles => [:postgresql_master, :postgresql_slave] do
153
+ rsudo "#{rubber_env.postgresql_ctl} restart"
154
+ end
155
+
156
+ end
157
+
158
+ end
@@ -0,0 +1,14 @@
1
+ <%
2
+ @read_cmd = 'crontab -l'
3
+ @write_cmd = 'crontab -'
4
+ @additive = ["# rubber-postgresql-start", "# rubber-postgresql-end"]
5
+ %>
6
+
7
+ <%
8
+ # Backup db every 3 hours to secondary db if available, else primary db
9
+ backup_db_host = rubber_instances.for_role('db', {}).first rescue nil
10
+ backup_db_host ||= rubber_instances.for_role('db', 'primary' => true).first
11
+ if backup_db_host.name == rubber_env.host
12
+ %>
13
+ 0 */3 * * * BACKUP_DIR=/mnt/db_backups DBUSER=<%= rubber_env.db_user %> DBPASS=<%= rubber_env.db_pass %> DBNAME=<%= rubber_env.db_name %> DBHOST=<%= backup_db_host.full_name %> <%= RUBBER_ROOT %>/script/cron-rake rubber:backup_db
14
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <%
2
+ @path = '/etc/monit/monit.d/monit-postgresql.conf'
3
+ %>
4
+
5
+ check process postgresql with pidfile <%= rubber_env.postgresql_pid_file %>
6
+ group postgresql-<%= RUBBER_ENV %>
7
+ start program = "<%= rubber_env.postgresql_ctl %> restart"
8
+ stop program = "<%= rubber_env.postgresql_ctl %> stop"
9
+ if failed host 127.0.0.1 port 5432 protocol pgsql then alert
10
+ if 5 restarts within 5 cycles then timeout
@@ -0,0 +1,7 @@
1
+ <%
2
+ @path = '/etc/munin/plugin-conf.d/postgresql'
3
+ %>
4
+
5
+ [postgres_*]
6
+ user postgres
7
+ env.PGUSER postgres
@@ -0,0 +1,89 @@
1
+ <%
2
+ @path = "#{rubber_env.postgresql_conf_dir}/pg_hba.conf"
3
+ %>
4
+ # PostgreSQL Client Authentication Configuration File
5
+ # ===================================================
6
+ #
7
+ # Refer to the "Client Authentication" section in the
8
+ # PostgreSQL documentation for a complete description
9
+ # of this file. A short synopsis follows.
10
+ #
11
+ # This file controls: which hosts are allowed to connect, how clients
12
+ # are authenticated, which PostgreSQL user names they can use, which
13
+ # databases they can access. Records take one of these forms:
14
+ #
15
+ # local DATABASE USER METHOD [OPTIONS]
16
+ # host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
17
+ # hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
18
+ # hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
19
+ #
20
+ # (The uppercase items must be replaced by actual values.)
21
+ #
22
+ # The first field is the connection type: "local" is a Unix-domain socket,
23
+ # "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
24
+ # SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
25
+ #
26
+ # DATABASE can be "all", "sameuser", "samerole", a database name, or
27
+ # a comma-separated list thereof.
28
+ #
29
+ # USER can be "all", a user name, a group name prefixed with "+", or
30
+ # a comma-separated list thereof. In both the DATABASE and USER fields
31
+ # you can also write a file name prefixed with "@" to include names from
32
+ # a separate file.
33
+ #
34
+ # CIDR-ADDRESS specifies the set of hosts the record matches.
35
+ # It is made up of an IP address and a CIDR mask that is an integer
36
+ # (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
37
+ # the number of significant bits in the mask. Alternatively, you can write
38
+ # an IP address and netmask in separate columns to specify the set of hosts.
39
+ #
40
+ # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", "krb5",
41
+ # "ident", "pam", "ldap" or "cert". Note that "password" sends passwords
42
+ # in clear text; "md5" is preferred since it sends encrypted passwords.
43
+ #
44
+ # OPTIONS are a set of options for the authentication in the format
45
+ # NAME=VALUE. The available options depend on the different authentication
46
+ # methods - refer to the "Client Authentication" section in the documentation
47
+ # for a list of which options are available for which authentication methods.
48
+ #
49
+ # Database and user names containing spaces, commas, quotes and other special
50
+ # characters must be quoted. Quoting one of the keywords "all", "sameuser" or
51
+ # "samerole" makes the name lose its special character, and just match a
52
+ # database or username with that name.
53
+ #
54
+ # This file is read on server startup and when the postmaster receives
55
+ # a SIGHUP signal. If you edit the file on a running system, you have
56
+ # to SIGHUP the postmaster for the changes to take effect. You can use
57
+ # "pg_ctl reload" to do that.
58
+
59
+ # Put your actual configuration here
60
+ # ----------------------------------
61
+ #
62
+ # If you want to allow non-local connections, you need to add more
63
+ # "host" records. In that case you will also need to make PostgreSQL listen
64
+ # on a non-local interface via the listen_addresses configuration parameter,
65
+ # or via the -i or -h command line switches.
66
+ #
67
+
68
+
69
+
70
+
71
+ # DO NOT DISABLE!
72
+ # If you change this first entry you will need to make sure that the
73
+ # database
74
+ # super user can access the database using some other method.
75
+ # Noninteractive
76
+ # access to all databases is required during automatic maintenance
77
+ # (custom daily cronjobs, replication, and similar tasks).
78
+ #
79
+ # Database administrative login by UNIX sockets
80
+ local all postgres ident
81
+
82
+ # TYPE DATABASE USER CIDR-ADDRESS METHOD
83
+ <%
84
+ scheme = rubber_env.db_pass ? 'md5' : 'trust'
85
+ %>
86
+ local all <%= rubber_env.db_user %> <%= scheme %>
87
+ host all all 127.0.0.1/32 <%= scheme %>
88
+ host all all ::1/128 <%= scheme %>
89
+ host all <%= rubber_env.db_user %> 10.0.0.1/8 <%= scheme %>
@@ -0,0 +1,6 @@
1
+ <%
2
+ @path = "/etc/sysctl.d/30-postgresql.conf"
3
+ @post = "service procps start"
4
+ %>
5
+ kernel.shmmax=1610612736
6
+ kernel.shmall=393216
@@ -0,0 +1,531 @@
1
+ <%
2
+ @path = "#{rubber_env.postgresql_conf_dir}/postgresql.conf"
3
+ %>
4
+ # -----------------------------
5
+ # PostgreSQL configuration file
6
+ # -----------------------------
7
+ #
8
+ # This file consists of lines of the form:
9
+ #
10
+ # name = value
11
+ #
12
+ # (The "=" is optional.) Whitespace may be used. Comments are introduced with
13
+ # "#" anywhere on a line. The complete list of parameter names and allowed
14
+ # values can be found in the PostgreSQL documentation.
15
+ #
16
+ # The commented-out settings shown in this file represent the default values.
17
+ # Re-commenting a setting is NOT sufficient to revert it to the default value;
18
+ # you need to reload the server.
19
+ #
20
+ # This file is read on server startup and when the server receives a SIGHUP
21
+ # signal. If you edit the file on a running system, you have to SIGHUP the
22
+ # server for the changes to take effect, or use "pg_ctl reload". Some
23
+ # parameters, which are marked below, require a server shutdown and restart to
24
+ # take effect.
25
+ #
26
+ # Any parameter can also be given as a command-line option to the server, e.g.,
27
+ # "postgres -c log_connections=on". Some parameters can be changed at run time
28
+ # with the "SET" SQL command.
29
+ #
30
+ # Memory units: kB = kilobytes Time units: ms = milliseconds
31
+ # MB = megabytes s = seconds
32
+ # GB = gigabytes min = minutes
33
+ # h = hours
34
+ # d = days
35
+
36
+
37
+ #------------------------------------------------------------------------------
38
+ # FILE LOCATIONS
39
+ #------------------------------------------------------------------------------
40
+
41
+ # The default values of these variables are driven from the -D command-line
42
+ # option or PGDATA environment variable, represented here as ConfigDir.
43
+
44
+ data_directory = '<%= rubber_env.postgresql_data_dir %>' # use data in another directory
45
+ # (change requires restart)
46
+ hba_file = '<%= rubber_env.postgresql_conf_dir %>/pg_hba.conf' # host-based authentication file
47
+ # (change requires restart)
48
+ ident_file = '<%= rubber_env.postgresql_conf_dir %>/pg_ident.conf' # ident configuration file
49
+ # (change requires restart)
50
+
51
+ # If external_pid_file is not explicitly set, no extra PID file is written.
52
+ external_pid_file = '<%= rubber_env.postgresql_pid_file %>' # write an extra PID file
53
+ # (change requires restart)
54
+
55
+
56
+ #------------------------------------------------------------------------------
57
+ # CONNECTIONS AND AUTHENTICATION
58
+ #------------------------------------------------------------------------------
59
+
60
+ # - Connection Settings -
61
+
62
+ listen_addresses = '*' # what IP address(es) to listen on;
63
+ # comma-separated list of addresses;
64
+ # defaults to 'localhost', '*' = all
65
+ # (change requires restart)
66
+ port = 5432 # (change requires restart)
67
+ max_connections = 100 # (change requires restart)
68
+ # Note: Increasing max_connections costs ~400 bytes of shared memory per
69
+ # connection slot, plus lock space (see max_locks_per_transaction).
70
+ #superuser_reserved_connections = 3 # (change requires restart)
71
+ unix_socket_directory = '/var/run/postgresql' # (change requires restart)
72
+ #unix_socket_group = '' # (change requires restart)
73
+ #unix_socket_permissions = 0777 # begin with 0 to use octal notation
74
+ # (change requires restart)
75
+ #bonjour = off # advertise server via Bonjour
76
+ # (change requires restart)
77
+ #bonjour_name = '' # defaults to the computer name
78
+ # (change requires restart)
79
+
80
+ # - Security and Authentication -
81
+
82
+ #authentication_timeout = 1min # 1s-600s
83
+ #ssl = off # (change requires restart)
84
+ #ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
85
+ # (change requires restart)
86
+ #ssl_renegotiation_limit = 512MB # amount of data between renegotiations
87
+ #password_encryption = on
88
+ #db_user_namespace = off
89
+
90
+ # Kerberos and GSSAPI
91
+ #krb_server_keyfile = ''
92
+ #krb_srvname = 'postgres' # (Kerberos only)
93
+ #krb_caseins_users = off
94
+
95
+ # - TCP Keepalives -
96
+ # see "man 7 tcp" for details
97
+
98
+ #tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
99
+ # 0 selects the system default
100
+ #tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
101
+ # 0 selects the system default
102
+ #tcp_keepalives_count = 0 # TCP_KEEPCNT;
103
+ # 0 selects the system default
104
+
105
+
106
+ #------------------------------------------------------------------------------
107
+ # RESOURCE USAGE (except WAL)
108
+ #------------------------------------------------------------------------------
109
+
110
+ # - Memory -
111
+
112
+ shared_buffers = 28MB # min 128kB
113
+ # (change requires restart)
114
+ #temp_buffers = 8MB # min 800kB
115
+ #max_prepared_transactions = 0 # zero disables the feature
116
+ # (change requires restart)
117
+ # Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
118
+ # per transaction slot, plus lock space (see max_locks_per_transaction).
119
+ # It is not advisable to set max_prepared_transactions nonzero unless you
120
+ # actively intend to use prepared transactions.
121
+ #work_mem = 1MB # min 64kB
122
+ #maintenance_work_mem = 16MB # min 1MB
123
+ #max_stack_depth = 2MB # min 100kB
124
+
125
+ # - Kernel Resource Usage -
126
+
127
+ #max_files_per_process = 1000 # min 25
128
+ # (change requires restart)
129
+ #shared_preload_libraries = '' # (change requires restart)
130
+
131
+ # - Cost-Based Vacuum Delay -
132
+
133
+ #vacuum_cost_delay = 0ms # 0-100 milliseconds
134
+ #vacuum_cost_page_hit = 1 # 0-10000 credits
135
+ #vacuum_cost_page_miss = 10 # 0-10000 credits
136
+ #vacuum_cost_page_dirty = 20 # 0-10000 credits
137
+ #vacuum_cost_limit = 200 # 1-10000 credits
138
+
139
+ # - Background Writer -
140
+
141
+ #bgwriter_delay = 200ms # 10-10000ms between rounds
142
+ #bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
143
+ #bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
144
+
145
+ # - Asynchronous Behavior -
146
+
147
+ #effective_io_concurrency = 1 # 1-1000. 0 disables prefetching
148
+
149
+
150
+ #------------------------------------------------------------------------------
151
+ # WRITE AHEAD LOG
152
+ #------------------------------------------------------------------------------
153
+
154
+ # - Settings -
155
+
156
+ #wal_level = minimal # minimal, archive, or hot_standby
157
+ # (change requires restart)
158
+ #fsync = on # turns forced synchronization on or off
159
+ #synchronous_commit = on # immediate fsync at commit
160
+ #wal_sync_method = fsync # the default is the first option
161
+ # supported by the operating system:
162
+ # open_datasync
163
+ # fdatasync
164
+ # fsync
165
+ # fsync_writethrough
166
+ # open_sync
167
+ #full_page_writes = on # recover from partial page writes
168
+ #wal_buffers = 64kB # min 32kB
169
+ # (change requires restart)
170
+ #wal_writer_delay = 200ms # 1-10000 milliseconds
171
+
172
+ #commit_delay = 0 # range 0-100000, in microseconds
173
+ #commit_siblings = 5 # range 1-1000
174
+
175
+ # - Checkpoints -
176
+
177
+ #checkpoint_segments = 3 # in logfile segments, min 1, 16MB each
178
+ #checkpoint_timeout = 5min # range 30s-1h
179
+ #checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
180
+ #checkpoint_warning = 30s # 0 disables
181
+
182
+ # - Archiving -
183
+
184
+ #archive_mode = off # allows archiving to be done
185
+ # (change requires restart)
186
+ #archive_command = '' # command to use to archive a logfile segment
187
+ #archive_timeout = 0 # force a logfile segment switch after this
188
+ # number of seconds; 0 disables
189
+
190
+ # - Streaming Replication -
191
+
192
+ #max_wal_senders = 0 # max number of walsender processes
193
+ # (change requires restart)
194
+ #wal_sender_delay = 200ms # walsender cycle time, 1-10000 milliseconds
195
+ #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
196
+ #vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
197
+
198
+ # - Standby Servers -
199
+
200
+ #hot_standby = off # "on" allows queries during recovery
201
+ # (change requires restart)
202
+ #max_standby_archive_delay = 30s # max delay before canceling queries
203
+ # when reading WAL from archive;
204
+ # -1 allows indefinite delay
205
+ #max_standby_streaming_delay = 30s # max delay before canceling queries
206
+ # when reading streaming WAL;
207
+ # -1 allows indefinite delay
208
+
209
+
210
+ #------------------------------------------------------------------------------
211
+ # QUERY TUNING
212
+ #------------------------------------------------------------------------------
213
+
214
+ # - Planner Method Configuration -
215
+
216
+ #enable_bitmapscan = on
217
+ #enable_hashagg = on
218
+ #enable_hashjoin = on
219
+ #enable_indexscan = on
220
+ #enable_material = on
221
+ #enable_mergejoin = on
222
+ #enable_nestloop = on
223
+ #enable_seqscan = on
224
+ #enable_sort = on
225
+ #enable_tidscan = on
226
+
227
+ # - Planner Cost Constants -
228
+
229
+ #seq_page_cost = 1.0 # measured on an arbitrary scale
230
+ #random_page_cost = 4.0 # same scale as above
231
+ #cpu_tuple_cost = 0.01 # same scale as above
232
+ #cpu_index_tuple_cost = 0.005 # same scale as above
233
+ #cpu_operator_cost = 0.0025 # same scale as above
234
+ #effective_cache_size = 128MB
235
+
236
+ # - Genetic Query Optimizer -
237
+
238
+ #geqo = on
239
+ #geqo_threshold = 12
240
+ #geqo_effort = 5 # range 1-10
241
+ #geqo_pool_size = 0 # selects default based on effort
242
+ #geqo_generations = 0 # selects default based on effort
243
+ #geqo_selection_bias = 2.0 # range 1.5-2.0
244
+ #geqo_seed = 0.0 # range 0.0-1.0
245
+
246
+ # - Other Planner Options -
247
+
248
+ #default_statistics_target = 100 # range 1-10000
249
+ #constraint_exclusion = partition # on, off, or partition
250
+ #cursor_tuple_fraction = 0.1 # range 0.0-1.0
251
+ #from_collapse_limit = 8
252
+ #join_collapse_limit = 8 # 1 disables collapsing of explicit
253
+ # JOIN clauses
254
+
255
+
256
+ #------------------------------------------------------------------------------
257
+ # ERROR REPORTING AND LOGGING
258
+ #------------------------------------------------------------------------------
259
+
260
+ # - Where to Log -
261
+
262
+ #log_destination = 'stderr' # Valid values are combinations of
263
+ # stderr, csvlog, syslog, and eventlog,
264
+ # depending on platform. csvlog
265
+ # requires logging_collector to be on.
266
+
267
+ # This is used when logging to stderr:
268
+ #logging_collector = off # Enable capturing of stderr and csvlog
269
+ # into log files. Required to be on for
270
+ # csvlogs.
271
+ # (change requires restart)
272
+
273
+ # These are only used if logging_collector is on:
274
+ #log_directory = 'pg_log' # directory where log files are written,
275
+ # can be absolute or relative to PGDATA
276
+ #log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
277
+ # can include strftime() escapes
278
+ #log_truncate_on_rotation = off # If on, an existing log file of the
279
+ # same name as the new log file will be
280
+ # truncated rather than appended to.
281
+ # But such truncation only occurs on
282
+ # time-driven rotation, not on restarts
283
+ # or size-driven rotation. Default is
284
+ # off, meaning append to existing files
285
+ # in all cases.
286
+ #log_rotation_age = 1d # Automatic rotation of logfiles will
287
+ # happen after that time. 0 disables.
288
+ #log_rotation_size = 10MB # Automatic rotation of logfiles will
289
+ # happen after that much log output.
290
+ # 0 disables.
291
+
292
+ # These are relevant when logging to syslog:
293
+ #syslog_facility = 'LOCAL0'
294
+ #syslog_ident = 'postgres'
295
+
296
+ #silent_mode = off # Run server silently.
297
+ # DO NOT USE without syslog or
298
+ # logging_collector
299
+ # (change requires restart)
300
+
301
+
302
+ # - When to Log -
303
+
304
+ #client_min_messages = notice # values in order of decreasing detail:
305
+ # debug5
306
+ # debug4
307
+ # debug3
308
+ # debug2
309
+ # debug1
310
+ # log
311
+ # notice
312
+ # warning
313
+ # error
314
+
315
+ #log_min_messages = warning # values in order of decreasing detail:
316
+ # debug5
317
+ # debug4
318
+ # debug3
319
+ # debug2
320
+ # debug1
321
+ # info
322
+ # notice
323
+ # warning
324
+ # error
325
+ # log
326
+ # fatal
327
+ # panic
328
+
329
+ #log_min_error_statement = error # values in order of decreasing detail:
330
+ # debug5
331
+ # debug4
332
+ # debug3
333
+ # debug2
334
+ # debug1
335
+ # info
336
+ # notice
337
+ # warning
338
+ # error
339
+ # log
340
+ # fatal
341
+ # panic (effectively off)
342
+
343
+ log_min_duration_statement = 1 # -1 is disabled, 0 logs all statements
344
+ # and their durations, > 0 logs only
345
+ # statements running at least this number
346
+ # of milliseconds
347
+
348
+
349
+ # - What to Log -
350
+
351
+ #debug_print_parse = off
352
+ #debug_print_rewritten = off
353
+ #debug_print_plan = off
354
+ #debug_pretty_print = on
355
+ #log_checkpoints = off
356
+ #log_connections = off
357
+ #log_disconnections = off
358
+ #log_duration = off
359
+ #log_error_verbosity = default # terse, default, or verbose messages
360
+ #log_hostname = off
361
+ log_line_prefix = '%t' # special values:
362
+ # %a = application name
363
+ # %u = user name
364
+ # %d = database name
365
+ # %r = remote host and port
366
+ # %h = remote host
367
+ # %p = process ID
368
+ # %t = timestamp without milliseconds
369
+ # %m = timestamp with milliseconds
370
+ # %i = command tag
371
+ # %e = SQL state
372
+ # %c = session ID
373
+ # %l = session line number
374
+ # %s = session start timestamp
375
+ # %v = virtual transaction ID
376
+ # %x = transaction ID (0 if none)
377
+ # %q = stop here in non-session
378
+ # processes
379
+ # %% = '%'
380
+ # e.g. '<%u%%%d> '
381
+ #log_lock_waits = off # log lock waits >= deadlock_timeout
382
+ #log_statement = 'none' # none, ddl, mod, all
383
+ #log_temp_files = -1 # log temporary files equal or larger
384
+ # than the specified size in kilobytes;
385
+ # -1 disables, 0 logs all temp files
386
+ #log_timezone = unknown # actually, defaults to TZ environment
387
+ # setting
388
+
389
+
390
+ #------------------------------------------------------------------------------
391
+ # RUNTIME STATISTICS
392
+ #------------------------------------------------------------------------------
393
+
394
+ # - Query/Index Statistics Collector -
395
+
396
+ #track_activities = on
397
+ track_counts = on
398
+ #track_functions = none # none, pl, all
399
+ #track_activity_query_size = 1024 # (change requires restart)
400
+ #update_process_title = on
401
+ #stats_temp_directory = 'pg_stat_tmp'
402
+
403
+
404
+ # - Statistics Monitoring -
405
+
406
+ #log_parser_stats = off
407
+ #log_planner_stats = off
408
+ #log_executor_stats = off
409
+ #log_statement_stats = off
410
+
411
+
412
+ #------------------------------------------------------------------------------
413
+ # AUTOVACUUM PARAMETERS
414
+ #------------------------------------------------------------------------------
415
+
416
+ autovacuum = on # Enable autovacuum subprocess? 'on'
417
+ # requires track_counts to also be on.
418
+ #log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
419
+ # their durations, > 0 logs only
420
+ # actions running at least this number
421
+ # of milliseconds.
422
+ #autovacuum_max_workers = 3 # max number of autovacuum subprocesses
423
+ # (change requires restart)
424
+ #autovacuum_naptime = 1min # time between autovacuum runs
425
+ #autovacuum_vacuum_threshold = 50 # min number of row updates before
426
+ # vacuum
427
+ #autovacuum_analyze_threshold = 50 # min number of row updates before
428
+ # analyze
429
+ #autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
430
+ #autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
431
+ #autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
432
+ # (change requires restart)
433
+ #autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
434
+ # autovacuum, in milliseconds;
435
+ # -1 means use vacuum_cost_delay
436
+ #autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
437
+ # autovacuum, -1 means use
438
+ # vacuum_cost_limit
439
+
440
+
441
+ #------------------------------------------------------------------------------
442
+ # CLIENT CONNECTION DEFAULTS
443
+ #------------------------------------------------------------------------------
444
+
445
+ # - Statement Behavior -
446
+
447
+ #search_path = '"$user",public' # schema names
448
+ #default_tablespace = '' # a tablespace name, '' uses the default
449
+ #temp_tablespaces = '' # a list of tablespace names, '' uses
450
+ # only default tablespace
451
+ #check_function_bodies = on
452
+ #default_transaction_isolation = 'read committed'
453
+ #default_transaction_read_only = off
454
+ #session_replication_role = 'origin'
455
+ #statement_timeout = 0 # in milliseconds, 0 is disabled
456
+ #vacuum_freeze_min_age = 50000000
457
+ #vacuum_freeze_table_age = 150000000
458
+ #bytea_output = 'hex' # hex, escape
459
+ #xmlbinary = 'base64'
460
+ #xmloption = 'content'
461
+
462
+ # - Locale and Formatting -
463
+
464
+ datestyle = 'iso, mdy'
465
+ #intervalstyle = 'postgres'
466
+ #timezone = unknown # actually, defaults to TZ environment
467
+ # setting
468
+ #timezone_abbreviations = 'Default' # Select the set of available time zone
469
+ # abbreviations. Currently, there are
470
+ # Default
471
+ # Australia
472
+ # India
473
+ # You can create your own file in
474
+ # share/timezonesets/.
475
+ #extra_float_digits = 0 # min -15, max 3
476
+ #client_encoding = sql_ascii # actually, defaults to database
477
+ # encoding
478
+
479
+ # These settings are initialized by initdb, but they can be changed.
480
+ lc_messages = 'en_US.UTF-8' # locale for system error message
481
+ # strings
482
+ lc_monetary = 'en_US.UTF-8' # locale for monetary formatting
483
+ lc_numeric = 'en_US.UTF-8' # locale for number formatting
484
+ lc_time = 'en_US.UTF-8' # locale for time formatting
485
+
486
+ # default configuration for text search
487
+ default_text_search_config = 'pg_catalog.english'
488
+
489
+ # - Other Defaults -
490
+
491
+ #dynamic_library_path = '$libdir'
492
+ #local_preload_libraries = ''
493
+
494
+
495
+ #------------------------------------------------------------------------------
496
+ # LOCK MANAGEMENT
497
+ #------------------------------------------------------------------------------
498
+
499
+ #deadlock_timeout = 1s
500
+ #max_locks_per_transaction = 64 # min 10
501
+ # (change requires restart)
502
+ # Note: Each lock table slot uses ~270 bytes of shared memory, and there are
503
+ # max_locks_per_transaction * (max_connections + max_prepared_transactions)
504
+ # lock table slots.
505
+
506
+
507
+ #------------------------------------------------------------------------------
508
+ # VERSION/PLATFORM COMPATIBILITY
509
+ #------------------------------------------------------------------------------
510
+
511
+ # - Previous PostgreSQL Versions -
512
+
513
+ #array_nulls = on
514
+ #backslash_quote = safe_encoding # on, off, or safe_encoding
515
+ #default_with_oids = off
516
+ #escape_string_warning = on
517
+ #lo_compat_privileges = off
518
+ #sql_inheritance = on
519
+ #standard_conforming_strings = off
520
+ #synchronize_seqscans = on
521
+
522
+ # - Other Platforms and Clients -
523
+
524
+ #transform_null_equals = off
525
+
526
+
527
+ #------------------------------------------------------------------------------
528
+ # CUSTOMIZED OPTIONS
529
+ #------------------------------------------------------------------------------
530
+
531
+ #custom_variable_classes = '' # list of custom variable class names