rubber 1.3.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +7 -0
- data/VERSION +1 -1
- data/bin/vulcanize +16 -32
- data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +6 -6
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +2 -2
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +3 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +29 -16
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +1 -1
- data/generators/vulcanize/templates/base/Rakefile +21 -0
- data/generators/vulcanize/templates/base/config/rubber/common/crontab +6 -1
- data/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +2 -2
- data/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +3 -4
- data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +27 -48
- data/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +25 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber.yml +7 -12
- data/generators/vulcanize/templates/base/script/cron-runner +1 -1
- data/generators/vulcanize/templates/base/templates.rb +9 -0
- data/generators/vulcanize/templates/base/templates.yml +5 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +58 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.yaml +210 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/log4j-server.properties +45 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/monit-cassandra.conf +8 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/rubber-cassandra.yml +18 -0
- data/generators/vulcanize/templates/cassandra/templates.yml +1 -0
- data/generators/vulcanize/templates/{complete_passenger_mysql → complete_passenger}/config/rubber/role/haproxy/haproxy-passenger.conf +1 -1
- data/generators/vulcanize/templates/{complete_passenger_mysql → complete_passenger}/config/rubber/rubber-complete.yml +0 -0
- data/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
- data/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
- data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +1 -7
- data/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
- data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +3 -3
- data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +1 -1
- data/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +5 -5
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +2 -2
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +1 -1
- data/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +4 -4
- data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +1 -1
- data/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +4 -4
- data/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +2 -0
- data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +3 -3
- data/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +2 -2
- data/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +1 -1
- data/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +4 -2
- data/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +4 -4
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +2 -2
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +1 -0
- data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +1 -1
- data/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +6 -8
- data/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +1 -0
- data/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +24 -109
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +1 -1
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +2 -2
- data/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +1 -1
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +19 -15
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +2 -2
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +2 -2
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +3 -3
- data/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +5 -5
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +2 -2
- data/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +10 -1
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +1 -1
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +2 -2
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +1 -1
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +3 -3
- data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +2 -2
- data/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +131 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/role/db/crontab +14 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/role/db/monit-postgresql.conf +10 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/role/db/pg_hba.conf +89 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +6 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql.conf +504 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/rubber-postgresql.yml +45 -0
- data/generators/vulcanize/templates/postgresql/templates.yml +1 -0
- data/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb +8 -7
- data/generators/vulcanize/templates/resque/config/initializers/resque.rb +15 -0
- data/generators/vulcanize/templates/resque/config/rubber/common/resque.yml +5 -0
- data/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +46 -27
- data/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +14 -0
- data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +19 -0
- data/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +14 -6
- data/generators/vulcanize/templates/resque/script/resque_worker_management.rb +112 -0
- data/generators/vulcanize/templates/resque/templates.rb +1 -0
- data/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +7 -8
- data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +7 -4
- data/generators/vulcanize/vulcanize_generator.rb +154 -49
- data/lib/generators/vulcanize/USAGE +6 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +51 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/deflate.conf +10 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/expires.conf +9 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/headers.conf +6 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +8 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +8 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/setenvif.conf +52 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +79 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache.auth +7 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +34 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +6 -0
- data/lib/generators/vulcanize/templates/apache/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/base/Capfile +14 -0
- data/lib/generators/vulcanize/templates/base/Rakefile +21 -0
- data/lib/generators/vulcanize/templates/base/config/deploy.rb +55 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/common/crontab +22 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +8 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +13 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +63 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber-dns.yml +78 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +25 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber.yml +235 -0
- data/lib/generators/vulcanize/templates/base/lib/tasks/rubber.rake +15 -0
- data/lib/generators/vulcanize/templates/base/script/cron-rake +18 -0
- data/lib/generators/vulcanize/templates/base/script/cron-runner +18 -0
- data/lib/generators/vulcanize/templates/base/script/cron-sh +67 -0
- data/lib/generators/vulcanize/templates/base/templates.rb +9 -0
- data/lib/generators/vulcanize/templates/base/templates.yml +6 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +58 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.yaml +210 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/log4j-server.properties +45 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/monit-cassandra.conf +8 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/rubber-cassandra.yml +18 -0
- data/lib/generators/vulcanize/templates/cassandra/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/haproxy/haproxy-mongrel.conf +23 -0
- data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/nginx/nginx-mongrel.conf +113 -0
- data/lib/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/rubber-complete.yml +41 -0
- data/lib/generators/vulcanize/templates/complete_mongrel_mysql/templates.yml +6 -0
- data/lib/generators/vulcanize/templates/complete_passenger/config/rubber/role/haproxy/haproxy-passenger.conf +21 -0
- data/lib/generators/vulcanize/templates/complete_passenger/config/rubber/rubber-complete.yml +40 -0
- data/lib/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
- data/lib/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
- data/lib/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +4 -0
- data/lib/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +72 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/cruise +40 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +165 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/production.rb +8 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/role/cruise/site_config.rb +76 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/role/web_tools/cruise-nginx.conf +11 -0
- data/lib/generators/vulcanize/templates/cruise/config/rubber/rubber-cruise.yml +18 -0
- data/lib/generators/vulcanize/templates/cruise/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +45 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-base.conf +26 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-default.conf +8 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +9 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +11 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +21 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/role/web_tools/haproxy-nginx.conf +10 -0
- data/lib/generators/vulcanize/templates/haproxy/config/rubber/rubber-haproxy.yml +7 -0
- data/lib/generators/vulcanize/templates/haproxy/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +59 -0
- data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.sh +589 -0
- data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.xml +199 -0
- data/lib/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +9 -0
- data/lib/generators/vulcanize/templates/jetty/config/rubber/rubber-jetty.yml +10 -0
- data/lib/generators/vulcanize/templates/jetty/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/memcached/config/memcached.yml +28 -0
- data/lib/generators/vulcanize/templates/memcached/config/rubber/common/memcached.yml +14 -0
- data/lib/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +52 -0
- data/lib/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached_munin_plugin +249 -0
- data/lib/generators/vulcanize/templates/memcached/config/rubber/rubber-memcached.yml +7 -0
- data/lib/generators/vulcanize/templates/memcached/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/minimal_mysql/templates.yml +7 -0
- data/lib/generators/vulcanize/templates/minimal_nodb/templates.yml +6 -0
- data/lib/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +75 -0
- data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/mongrel_cluster.yml +12 -0
- data/lib/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +20 -0
- data/lib/generators/vulcanize/templates/mongrel/config/rubber/rubber-mongrel.yml +9 -0
- data/lib/generators/vulcanize/templates/mongrel/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/monit/config/rubber/common/monit-default.conf +15 -0
- data/lib/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +252 -0
- data/lib/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +33 -0
- data/lib/generators/vulcanize/templates/monit/config/rubber/role/web_tools/monit-admin-nginx.conf +10 -0
- data/lib/generators/vulcanize/templates/monit/config/rubber/rubber-monit.yml +6 -0
- data/lib/generators/vulcanize/templates/monit/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +8 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +48 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +11 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +46 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-nginx.conf +8 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +31 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +81 -0
- data/lib/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
- data/lib/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +55 -0
- data/lib/generators/vulcanize/templates/munin/script/munin/example_simple.rb +24 -0
- data/lib/generators/vulcanize/templates/munin/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +12 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +169 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +46 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/crontab +14 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +10 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +163 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/role/mysql_slave/mysql_slave_munin_plugin +51 -0
- data/lib/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +47 -0
- data/lib/generators/vulcanize/templates/mysql/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/common/mysql_cluster_migrations.rb +13 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +177 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_data/my.cnf +15 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf +39 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +10 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +23 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/rubber-mysql_cluster.yml +32 -0
- data/lib/generators/vulcanize/templates/mysql_cluster/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/database.yml +16 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +10 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy +153 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.conf +10 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.lua +5 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +52 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/rubber-mysql_proxy.yml +11 -0
- data/lib/generators/vulcanize/templates/mysql_proxy/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +45 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +9 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +8 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/nginx.conf +42 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +55 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-index.html +30 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-nginx.auth +7 -0
- data/lib/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +10 -0
- data/lib/generators/vulcanize/templates/nginx/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +46 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +34 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +7 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +47 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +46 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +35 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +15 -0
- data/lib/generators/vulcanize/templates/passenger/templates.yml +3 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +131 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/crontab +14 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/monit-postgresql.conf +10 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/pg_hba.conf +89 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql-sysctl.conf +6 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/role/db/postgresql.conf +504 -0
- data/lib/generators/vulcanize/templates/postgresql/config/rubber/rubber-postgresql.yml +45 -0
- data/lib/generators/vulcanize/templates/postgresql/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/deploy-redis.rb +37 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +8 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +9 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +141 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +4 -0
- data/lib/generators/vulcanize/templates/redis/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/resque/config/initializers/resque.rb +15 -0
- data/lib/generators/vulcanize/templates/resque/config/rubber/common/resque.yml +5 -0
- data/lib/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +58 -0
- data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_web/monit-resque_web.conf +14 -0
- data/lib/generators/vulcanize/templates/resque/config/rubber/role/resque_worker/monit-resque_worker.conf +19 -0
- data/lib/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +18 -0
- data/lib/generators/vulcanize/templates/resque/script/resque_worker_management.rb +112 -0
- data/lib/generators/vulcanize/templates/resque/templates.rb +1 -0
- data/lib/generators/vulcanize/templates/resque/templates.yml +3 -0
- data/lib/generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml +46 -0
- data/lib/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +112 -0
- data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab +11 -0
- data/lib/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +13 -0
- data/lib/generators/vulcanize/templates/sphinx/config/rubber/rubber-sphinx.yml +6 -0
- data/lib/generators/vulcanize/templates/sphinx/templates.yml +1 -0
- data/lib/generators/vulcanize/vulcanize_generator.rb +172 -0
- data/lib/rubber.rb +42 -6
- data/lib/rubber/cloud/aws.rb +4 -0
- data/lib/rubber/dns/zerigo.rb +9 -3
- data/lib/rubber/environment.rb +1 -1
- data/lib/rubber/generator.rb +8 -8
- data/lib/rubber/instance.rb +1 -1
- data/lib/rubber/railtie.rb +14 -0
- data/lib/rubber/recipes/rubber.rb +6 -0
- data/lib/rubber/recipes/rubber/deploy.rb +3 -3
- data/lib/rubber/recipes/rubber/setup.rb +22 -17
- data/lib/rubber/recipes/rubber/utils.rb +37 -14
- data/lib/rubber/util.rb +36 -1
- data/rails/init.rb +1 -4
- metadata +244 -35
- data/generators/vulcanize/templates/resque/config/rubber/deploy-resque-worker-default.rb +0 -38
- data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker_default/monit-resque_worker_default.conf +0 -19
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
check process mysql with pidfile /var/run/mysqld/mysqld.pid
|
|
6
6
|
group mysql-<%= RUBBER_ENV %>
|
|
7
|
-
start program = "/
|
|
8
|
-
stop program = "/
|
|
7
|
+
start program = "/usr/sbin/service mysql restart"
|
|
8
|
+
stop program = "/usr/sbin/service mysql stop"
|
|
9
9
|
if failed host 127.0.0.1 port 3306 protocol mysql then alert
|
|
10
10
|
if 5 restarts within 5 cycles then timeout
|
|
@@ -46,12 +46,11 @@ namespace :rubber do
|
|
|
46
46
|
|
|
47
47
|
task :bootstrap, :roles => [:mysql_mgm, :mysql_data, :mysql_sql] do
|
|
48
48
|
# mysql package install starts mysql, so stop it
|
|
49
|
-
|
|
49
|
+
rsudo "service mysql stop" rescue nil
|
|
50
50
|
|
|
51
51
|
# After everything installed on machines, we need the source tree
|
|
52
52
|
# on hosts in order to run rubber:config for bootstrapping the db
|
|
53
|
-
|
|
54
|
-
deploy.update_code
|
|
53
|
+
rubber.update_code_for_bootstrap
|
|
55
54
|
|
|
56
55
|
# Conditionaly bootstrap for each node/role only if that node has not
|
|
57
56
|
# been boostrapped for that role before
|
|
@@ -62,7 +61,7 @@ namespace :rubber do
|
|
|
62
61
|
exists = capture("if grep -c rubber.*mysql_mgm /etc/mysql/ndb_mgmd.cnf &> /dev/null; then echo exists; fi")
|
|
63
62
|
if exists.strip.size == 0
|
|
64
63
|
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/mysql_mgm", :deploy_path => release_path)
|
|
65
|
-
|
|
64
|
+
rsudo "service mysql-ndb-mgm start"
|
|
66
65
|
end
|
|
67
66
|
end
|
|
68
67
|
send task_name
|
|
@@ -74,7 +73,7 @@ namespace :rubber do
|
|
|
74
73
|
exists = capture("if grep -c rubber.*mysql_data /etc/mysql/my.cnf &> /dev/null; then echo exists; fi")
|
|
75
74
|
if exists.strip.size == 0
|
|
76
75
|
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/mysql_data", :deploy_path => release_path)
|
|
77
|
-
|
|
76
|
+
rsudo "service mysql-ndb start-initial"
|
|
78
77
|
end
|
|
79
78
|
end
|
|
80
79
|
send task_name
|
|
@@ -86,13 +85,18 @@ namespace :rubber do
|
|
|
86
85
|
exists = capture("if grep -c rubber.*mysql_sql /etc/mysql/my.cnf &> /dev/null; then echo exists; fi")
|
|
87
86
|
if exists.strip.size == 0
|
|
88
87
|
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/mysql_sql", :deploy_path => release_path)
|
|
89
|
-
|
|
88
|
+
rsudo "service mysql start"
|
|
90
89
|
env = rubber_cfg.environment.bind()
|
|
91
90
|
# For mysql 5.0 cluster, need to create users and database for EVERY sql node
|
|
92
91
|
pass = "identified by '#{env.db_pass}'" if env.db_pass
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
rubber.sudo_script "create_mysql_sql_db", <<-ENDSCRIPT
|
|
93
|
+
mysql -u root -e "create database #{env.db_name};"
|
|
94
|
+
mysql -u root -e "grant all on *.* to '#{env.db_user}'@'%' #{pass};"
|
|
95
|
+
mysql -u root -e "grant select on *.* to '#{env.db_slave_user}'@'%' #{pass};"
|
|
96
|
+
mysql -u root -e "grant replication slave on *.* to '#{env.db_replicator_user}'@'%' #{pass};"
|
|
97
|
+
mysql -u root -e "flush privileges;"
|
|
98
|
+
ENDSCRIPT
|
|
99
|
+
|
|
96
100
|
end
|
|
97
101
|
end
|
|
98
102
|
send task_name
|
|
@@ -104,42 +108,42 @@ namespace :rubber do
|
|
|
104
108
|
Starts the mysql cluster management daemon on the management node
|
|
105
109
|
DESC
|
|
106
110
|
task :start_mgm, :roles => :mysql_mgm do
|
|
107
|
-
|
|
111
|
+
rsudo "service mysql-ndb-mgm start"
|
|
108
112
|
end
|
|
109
113
|
|
|
110
114
|
desc <<-DESC
|
|
111
115
|
Starts the mysql cluster storage daemon on the data nodes
|
|
112
116
|
DESC
|
|
113
117
|
task :start_data, :roles => :mysql_data do
|
|
114
|
-
|
|
118
|
+
rsudo "service mysql-ndb start"
|
|
115
119
|
end
|
|
116
120
|
|
|
117
121
|
desc <<-DESC
|
|
118
122
|
Starts the mysql cluster sql daemon on the sql nodes
|
|
119
123
|
DESC
|
|
120
124
|
task :start_sql, :roles => :mysql_sql do
|
|
121
|
-
|
|
125
|
+
rsudo "service mysql start"
|
|
122
126
|
end
|
|
123
127
|
|
|
124
128
|
desc <<-DESC
|
|
125
129
|
Stops the mysql cluster management daemon on the management node
|
|
126
130
|
DESC
|
|
127
131
|
task :stop_mgm, :roles => :mysql_mgm do
|
|
128
|
-
|
|
132
|
+
rsudo "service mysql-ndb-mgm stop"
|
|
129
133
|
end
|
|
130
134
|
|
|
131
135
|
desc <<-DESC
|
|
132
136
|
Stops the mysql cluster storage daemon on the data nodes
|
|
133
137
|
DESC
|
|
134
138
|
task :stop_data, :roles => :mysql_data do
|
|
135
|
-
|
|
139
|
+
rsudo "service mysql-ndb stop"
|
|
136
140
|
end
|
|
137
141
|
|
|
138
142
|
desc <<-DESC
|
|
139
143
|
Stops the mysql cluster sql daemon on the sql nodes
|
|
140
144
|
DESC
|
|
141
145
|
task :stop_sql, :roles => :mysql_sql do
|
|
142
|
-
|
|
146
|
+
rsudo "service mysql stop"
|
|
143
147
|
end
|
|
144
148
|
|
|
145
149
|
desc <<-DESC
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
check process mysql_cluster_sql with pidfile /var/lib/mysql/<%= rubber_env.full_host %>.pid
|
|
6
6
|
group mysql_cluster_sql-<%= RUBBER_ENV %>
|
|
7
|
-
start program = "/
|
|
8
|
-
stop program = "/
|
|
7
|
+
start program = "/usr/sbin/service mysql start"
|
|
8
|
+
stop program = "/usr/sbin/service mysql stop"
|
|
9
9
|
if failed host 127.0.0.1 port 3306 protocol mysql then alert
|
|
10
10
|
if 5 restarts within 5 cycles then timeout
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
check process mysql_proxy with pidfile /var/run/mysql-proxy.pid
|
|
6
6
|
group mysql_proxy-<%= RUBBER_ENV %>
|
|
7
|
-
start program = "/
|
|
8
|
-
stop program = "/
|
|
7
|
+
start program = "/usr/sbin/service mysql-proxy start"
|
|
8
|
+
stop program = "/usr/sbin/service mysql-proxy stop"
|
|
9
9
|
if failed host 127.0.0.1 port 4040 protocol mysql then alert
|
|
10
10
|
if 5 restarts within 5 cycles then timeout
|
|
@@ -29,21 +29,21 @@ namespace :rubber do
|
|
|
29
29
|
Starts the mysql proxy daemon
|
|
30
30
|
DESC
|
|
31
31
|
task :start do
|
|
32
|
-
|
|
32
|
+
rsudo "service mysql-proxy start"
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
desc <<-DESC
|
|
36
36
|
Stops the mysql proxy daemon
|
|
37
37
|
DESC
|
|
38
38
|
task :stop do
|
|
39
|
-
|
|
39
|
+
rsudo "service mysql-proxy stop"
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
desc <<-DESC
|
|
43
43
|
Restarts the mysql proxy daemon
|
|
44
44
|
DESC
|
|
45
45
|
task :restart do
|
|
46
|
-
|
|
46
|
+
rsudo "service mysql-proxy restart"
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
|
|
@@ -9,10 +9,10 @@ namespace :rubber do
|
|
|
9
9
|
# rubber auto-roles don't get defined till after all tasks are defined
|
|
10
10
|
on :load do
|
|
11
11
|
rubber.serial_task self, :serial_restart, :roles => :nginx do
|
|
12
|
-
|
|
12
|
+
rsudo "service nginx restart"
|
|
13
13
|
end
|
|
14
14
|
rubber.serial_task self, :serial_reload, :roles => :nginx do
|
|
15
|
-
|
|
15
|
+
rsudo "if ! ps ax | grep -v grep | grep -c nginx &> /dev/null; then service nginx start; else service nginx reload; fi"
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -21,13 +21,13 @@ namespace :rubber do
|
|
|
21
21
|
after "deploy:restart", "rubber:nginx:reload"
|
|
22
22
|
|
|
23
23
|
desc "Stops the nginx web server"
|
|
24
|
-
task :stop, :roles => :nginx
|
|
25
|
-
|
|
24
|
+
task :stop, :roles => :nginx do
|
|
25
|
+
rsudo "service nginx stop; exit 0"
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
desc "Starts the nginx web server"
|
|
29
29
|
task :start, :roles => :nginx do
|
|
30
|
-
|
|
30
|
+
rsudo "service nginx start"
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
desc "Restarts the nginx web server"
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
<% PIDFILE = "/var/run/nginx.pid" %>
|
|
5
5
|
check process nginx with pidfile <%= PIDFILE %>
|
|
6
6
|
group nginx-<%= RUBBER_ENV %>
|
|
7
|
-
start program = "/
|
|
8
|
-
stop program = "/
|
|
7
|
+
start program = "/usr/sbin/service nginx start"
|
|
8
|
+
stop program = "/usr/sbin/service nginx stop"
|
|
@@ -11,6 +11,7 @@ namespace :rubber do
|
|
|
11
11
|
rubber.sudo_script 'install_passenger', <<-ENDSCRIPT
|
|
12
12
|
if [[ -z `ls #{rubber_env.passenger_lib} 2> /dev/null` ]]; then
|
|
13
13
|
echo -en "\n\n\n\n" | passenger-install-apache2-module
|
|
14
|
+
rvm #{rubber_env.rvm_ruby} --passenger
|
|
14
15
|
fi
|
|
15
16
|
ENDSCRIPT
|
|
16
17
|
end
|
|
@@ -18,7 +19,15 @@ namespace :rubber do
|
|
|
18
19
|
after "rubber:setup_app_permissions", "rubber:passenger:setup_passenger_permissions"
|
|
19
20
|
|
|
20
21
|
task :setup_passenger_permissions, :roles => :passenger do
|
|
21
|
-
|
|
22
|
+
rsudo "chown #{rubber_env.app_user}:#{rubber_env.app_user} #{current_path}/config/environment.rb"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# passenger does things differently for rack apps, so if this is a rails app, remove config.ru
|
|
26
|
+
# to stop passenger from treating this like a rack app
|
|
27
|
+
after "deploy:update_code", "rubber:passenger:remove_config_ru" if Rubber::Util.is_rails?
|
|
28
|
+
|
|
29
|
+
task :remove_config_ru, :roles => :passenger do
|
|
30
|
+
rsudo "rm -f #{current_release}/config.ru"
|
|
22
31
|
end
|
|
23
32
|
|
|
24
33
|
# passenger depends on apache for start/stop/restart, just need these defined
|
|
@@ -18,7 +18,7 @@ END
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def output_values
|
|
21
|
-
status = `sudo <%=
|
|
21
|
+
status = `sudo <%= ENV['GEM_HOME'] %>/bin/passenger-memory-stats | tail -1`
|
|
22
22
|
unless $?.success?
|
|
23
23
|
$stderr.puts "failed executing passenger-memory-stats"
|
|
24
24
|
exit 1
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
@additive = ["# munin passenger start", "# munin passenger end"]
|
|
4
4
|
%>
|
|
5
5
|
|
|
6
|
-
nobody ALL=(ALL) NOPASSWD: <%=
|
|
7
|
-
nobody ALL=(ALL) NOPASSWD: <%=
|
|
6
|
+
nobody ALL=(ALL) NOPASSWD: <%= ENV['GEM_HOME'] %>/bin/passenger-status
|
|
7
|
+
nobody ALL=(ALL) NOPASSWD: <%= ENV['GEM_HOME'] %>/bin/passenger-memory-stats
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
@path = '/etc/apache2/mods-available/passenger.conf'
|
|
3
3
|
@post = 'cd /etc/apache2/mods-enabled && ln -fs ../mods-available/passenger.conf'
|
|
4
4
|
%>
|
|
5
|
-
LoadModule passenger_module <%= rubber_env.passenger_lib %>
|
|
6
|
-
PassengerRoot <%= rubber_env.passenger_root %>
|
|
7
|
-
PassengerRuby <%= rubber_env.passenger_ruby %>
|
|
5
|
+
LoadModule passenger_module <%= `echo #{rubber_env.passenger_lib}` %>
|
|
6
|
+
PassengerRoot <%= `echo #{rubber_env.passenger_root}` %>
|
|
7
|
+
PassengerRuby <%= `echo #{rubber_env.passenger_ruby}` %>
|
|
8
8
|
PassengerUseGlobalQueue on
|
|
9
9
|
|
|
10
10
|
# max number of rails instances per appserver
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
passenger_version: 2.2.11
|
|
2
|
-
passenger_root: "
|
|
3
|
-
passenger_ruby: "#{
|
|
2
|
+
passenger_root: "$GEM_HOME/gems/passenger-#{passenger_version}"
|
|
3
|
+
passenger_ruby: "#{rvm_prefix}/bin/passenger_ruby"
|
|
4
4
|
passenger_lib: "#{passenger_root}/ext/apache2/mod_passenger.so"
|
|
5
5
|
passenger_listen_port: 7000
|
|
6
6
|
passenger_listen_ssl_port: 7001
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<%
|
|
2
|
+
@path = "#{RUBBER_ROOT}/config/database.yml"
|
|
3
|
+
%>
|
|
4
|
+
|
|
5
|
+
<%= RUBBER_ENV %>:
|
|
6
|
+
adapter: postgresql
|
|
7
|
+
encoding: unicode
|
|
8
|
+
database: <%= rubber_env.db_name %>
|
|
9
|
+
username: <%= rubber_env.db_user %>
|
|
10
|
+
password: <%= rubber_env.db_pass %>
|
|
11
|
+
host: <%= rubber_instances.for_role('db', 'primary' => true).first.full_name %>
|
|
12
|
+
pool: 5
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
|
|
2
|
+
namespace :rubber do
|
|
3
|
+
|
|
4
|
+
namespace :postgresql do
|
|
5
|
+
|
|
6
|
+
rubber.allow_optional_tasks(self)
|
|
7
|
+
|
|
8
|
+
after "rubber:create", "rubber:postgresql:validate_db_roles"
|
|
9
|
+
|
|
10
|
+
task :validate_db_roles do
|
|
11
|
+
db_instances = rubber_instances.for_role("postgresql_slave")
|
|
12
|
+
db_instances.each do |instance|
|
|
13
|
+
if instance.role_names.find {|n| n == 'postgresql_master'}
|
|
14
|
+
fatal "Cannot have a postgresql slave and master on the same instance, please removing slave role for #{instance.name}"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
after "rubber:bootstrap", "rubber:postgresql:bootstrap"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# Bootstrap the production database config. Db bootstrap is special - the
|
|
23
|
+
# user could be requiring the rails env inside some of their config
|
|
24
|
+
# templates, which creates a catch 22 situation with the db, so we try and
|
|
25
|
+
# bootstrap the db separate from the rest of the config
|
|
26
|
+
task :bootstrap, :roles => [:postgresql_master, :postgresql_slave] do
|
|
27
|
+
|
|
28
|
+
# Conditionaly bootstrap for each node/role only if that node has not
|
|
29
|
+
# been boostrapped for that role before
|
|
30
|
+
master_instances = rubber_instances.for_role("postgresql_master") & rubber_instances.filtered
|
|
31
|
+
master_instances.each do |ic|
|
|
32
|
+
task_name = "_bootstrap_postgresql_master_#{ic.full_name}".to_sym()
|
|
33
|
+
task task_name, :hosts => ic.full_name do
|
|
34
|
+
env = rubber_cfg.environment.bind("postgresql_master", ic.name)
|
|
35
|
+
exists = capture("echo $(ls #{env.postgresql_data_dir}/ 2> /dev/null)")
|
|
36
|
+
if exists.strip.size == 0
|
|
37
|
+
common_bootstrap("postgresql_master")
|
|
38
|
+
|
|
39
|
+
create_user_cmd = "CREATE USER #{env.db_user} WITH NOSUPERUSER CREATEDB NOCREATEROLE"
|
|
40
|
+
create_user_cmd << "PASSWORD '#{env.db_pass}'" if env.db_pass
|
|
41
|
+
rubber.sudo_script "create_master_db", <<-ENDSCRIPT
|
|
42
|
+
sudo -u postgres psql -c "#{create_user_cmd}"
|
|
43
|
+
sudo -u postgres psql -c "CREATE DATABASE #{env.db_name} WITH OWNER #{env.db_user}"
|
|
44
|
+
ENDSCRIPT
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
send task_name
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Wait for postgresql 9.0 to be avlabel before allowing slaves
|
|
51
|
+
#
|
|
52
|
+
# slave_instances = rubber_instances.for_role("postgresql_slave") & rubber_instances.filtered
|
|
53
|
+
# slave_instances.each do |ic|
|
|
54
|
+
# task_name = "_bootstrap_postgresql_slave_#{ic.full_name}".to_sym()
|
|
55
|
+
# task task_name, :hosts => ic.full_name do
|
|
56
|
+
# env = rubber_cfg.environment.bind("postgresql_slave", ic.name)
|
|
57
|
+
# exists = capture("echo $(ls #{env.db_data_dir}/ 2> /dev/null)")
|
|
58
|
+
# if exists.strip.size == 0
|
|
59
|
+
# common_bootstrap("postgresql_slave")
|
|
60
|
+
#
|
|
61
|
+
# source = master = rubber_instances.for_role("postgresql_master").first
|
|
62
|
+
#
|
|
63
|
+
# slave_pub_key = capture("cat /root/.ssh/id_dsa.pub")
|
|
64
|
+
# sudo "echo \"#{slave_pub_key}\" >> /root/.ssh/authorized_keys", :hosts => [master.full_name]
|
|
65
|
+
#
|
|
66
|
+
# base_backup_script = <<-ENDSCRIPT
|
|
67
|
+
# sudo -u postgres psql -c "SELECT pg_start_backup('rubber_create_slave')"
|
|
68
|
+
# tar --exclude pg_xlog -czf /tmp/postgresql-data.tgz #{env.postgresql_data_dir}
|
|
69
|
+
# tar -czf /tmp/postgresql-archive.tgz #{env.postgresql_archive_dir}
|
|
70
|
+
# sudo -u postgres psql -c "SELECT pg_stop_backup()"
|
|
71
|
+
# ENDSCRIPT
|
|
72
|
+
#
|
|
73
|
+
# rubber.sudo_script "create_slave_db_from_master", base_backup_script, :hosts => [master.full_name]
|
|
74
|
+
#
|
|
75
|
+
# rsudo "psql -u root -e \"start slave;\""
|
|
76
|
+
# end
|
|
77
|
+
# end
|
|
78
|
+
# send task_name
|
|
79
|
+
# end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# TODO: Make the setup/update happen just once per host
|
|
84
|
+
def common_bootstrap(role)
|
|
85
|
+
# postgresql package install starts postgresql, so stop it
|
|
86
|
+
rsudo "#{rubber_env.postgresql_ctl} stop" rescue nil
|
|
87
|
+
|
|
88
|
+
# After everything installed on machines, we need the source tree
|
|
89
|
+
# on hosts in order to run rubber:config for bootstrapping the db
|
|
90
|
+
rubber.update_code_for_bootstrap
|
|
91
|
+
|
|
92
|
+
# Gen just the conf for the given postgresql role
|
|
93
|
+
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/#{role}|role/db/", :FORCE => true, :deploy_path => release_path)
|
|
94
|
+
|
|
95
|
+
# reconfigure postgresql so that it sets up data dir in /mnt with correct files
|
|
96
|
+
dirs = [rubber_env.postgresql_data_dir, rubber_env.postgresql_archive_dir]
|
|
97
|
+
sudo_script 'reconfigure-postgresql', <<-ENDSCRIPT
|
|
98
|
+
mkdir -p #{dirs.join(' ')}
|
|
99
|
+
chown -R postgres:postgres #{dirs.join(' ')}
|
|
100
|
+
|
|
101
|
+
sudo -u postgres /usr/lib/postgresql/#{rubber_env.postgresql_ver}/bin/initdb -D #{rubber_env.postgresql_data_dir}
|
|
102
|
+
|
|
103
|
+
#{rubber_env.postgresql_ctl} start
|
|
104
|
+
ENDSCRIPT
|
|
105
|
+
sleep 5
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
desc <<-DESC
|
|
109
|
+
Starts the postgresql daemons
|
|
110
|
+
DESC
|
|
111
|
+
task :start, :roles => [:postgresql_master, :postgresql_slave] do
|
|
112
|
+
rsudo "#{rubber_env.postgresql_ctl} start"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
desc <<-DESC
|
|
116
|
+
Stops the postgresql daemons
|
|
117
|
+
DESC
|
|
118
|
+
task :stop, :roles => [:postgresql_master, :postgresql_slave] do
|
|
119
|
+
rsudo "#{rubber_env.postgresql_ctl} stop"
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
desc <<-DESC
|
|
123
|
+
Restarts the postgresql daemons
|
|
124
|
+
DESC
|
|
125
|
+
task :restart, :roles => [:postgresql_master, :postgresql_slave] do
|
|
126
|
+
rsudo "#{rubber_env.postgresql_ctl} restart"
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
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 %>
|