nirvdrum-rubber 1.1.7 → 2.0.0.rails3.beta6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +82 -0
- data/VERSION +1 -1
- data/bin/vulcanize +10 -33
- 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 +19 -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 +28 -49
- data/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber-dns.yml +0 -1
- data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +25 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber.yml +21 -13
- data/generators/vulcanize/templates/base/script/cron-runner +1 -1
- data/generators/vulcanize/templates/base/templates.rb +1 -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_mongrel_mysql/config/rubber/role/haproxy/haproxy-mongrel.conf +2 -2
- data/generators/vulcanize/templates/{complete_passenger_mysql → complete_passenger}/config/rubber/role/haproxy/haproxy-passenger.conf +2 -2
- 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 +8 -3
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +4 -0
- data/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +5 -5
- 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 -1
- data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +5 -4
- 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 +5 -5
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +1 -1
- 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 +40 -27
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +46 -0
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +2 -2
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +2 -6
- data/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +2 -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 +28 -3
- data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +3 -3
- 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 +8 -8
- data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +7 -4
- data/generators/vulcanize/vulcanize_generator.rb +139 -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 +19 -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 +1 -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 +157 -0
- data/lib/rubber/cloud/aws.rb +7 -2
- data/lib/rubber/dns/zerigo.rb +60 -125
- data/lib/rubber/environment.rb +6 -6
- data/lib/rubber/generator.rb +33 -25
- data/lib/rubber/instance.rb +11 -1
- data/lib/rubber/railtie.rb +14 -0
- data/lib/rubber/recipes/rubber/deploy.rb +3 -3
- data/lib/rubber/recipes/rubber/instances.rb +12 -1
- data/lib/rubber/recipes/rubber/setup.rb +96 -55
- data/lib/rubber/recipes/rubber/spot_requests.rb +6 -0
- data/lib/rubber/recipes/rubber/static_ips.rb +83 -0
- data/lib/rubber/recipes/rubber/utils.rb +39 -16
- data/lib/rubber/recipes/rubber/volumes.rb +4 -4
- data/lib/rubber/recipes/rubber.rb +16 -9
- data/lib/rubber/util.rb +28 -1
- data/lib/rubber.rb +47 -7
- data/rails/init.rb +1 -4
- data/test/environment_test.rb +3 -0
- data/test/generator_test.rb +47 -0
- data/test/instance_test.rb +3 -0
- data/test/test_helper.rb +6 -0
- data/test/util_test.rb +3 -0
- data/test/zerigo_test.rb +87 -0
- metadata +275 -50
- 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
- /data/generators/vulcanize/templates/{complete_passenger_mysql → complete_passenger}/config/rubber/rubber-complete.yml +0 -0
@@ -0,0 +1,177 @@
|
|
1
|
+
|
2
|
+
namespace :rubber do
|
3
|
+
|
4
|
+
namespace :mysql_cluster do
|
5
|
+
|
6
|
+
rubber.allow_optional_tasks(self)
|
7
|
+
|
8
|
+
after "rubber:create", "rubber:mysql_cluster:set_db_role"
|
9
|
+
|
10
|
+
# Capistrano needs db:primary role for migrate to work
|
11
|
+
task :set_db_role do
|
12
|
+
sql_instances = rubber_instances.for_role("mysql_sql")
|
13
|
+
sql_instances.each do |instance|
|
14
|
+
if ! instance.role_names.find {|n| n == 'db'}
|
15
|
+
role = Rubber::Configuration::RoleItem.new('db')
|
16
|
+
primary_exists = rubber_instances.for_role("db", "primary" => true).size > 0
|
17
|
+
role.options["primary"] = true unless primary_exists
|
18
|
+
instance.roles << role
|
19
|
+
end
|
20
|
+
end
|
21
|
+
rubber_instances.save()
|
22
|
+
load_roles() unless rubber_env.disable_auto_roles
|
23
|
+
end
|
24
|
+
|
25
|
+
before "rubber:install_packages", "rubber:mysql_cluster:install"
|
26
|
+
|
27
|
+
task :install, :roles => [:mysql_mgm, :mysql_data, :mysql_sql] do
|
28
|
+
# Setup apt sources to get a newer version of mysql cluster
|
29
|
+
# https://launchpad.net/~mysql-cge-testing/+archive
|
30
|
+
#
|
31
|
+
|
32
|
+
sources = <<-SOURCES
|
33
|
+
# for mysql cluster 6.2
|
34
|
+
# deb http://ppa.launchpad.net/mysql-cge-testing/ubuntu hardy main
|
35
|
+
# deb-src http://ppa.launchpad.net/mysql-cge-testing/ubuntu hardy main
|
36
|
+
|
37
|
+
# for mysql cluster 6.3
|
38
|
+
deb http://ppa.launchpad.net/ndb-bindings/ubuntu hardy main
|
39
|
+
deb-src http://ppa.launchpad.net/ndb-bindings/ubuntu hardy main
|
40
|
+
SOURCES
|
41
|
+
sources.gsub!(/^ */, '')
|
42
|
+
put(sources, "/etc/apt/sources.list.d/mysql_cluster.list")
|
43
|
+
end
|
44
|
+
|
45
|
+
after "rubber:bootstrap", "rubber:mysql_cluster:bootstrap"
|
46
|
+
|
47
|
+
task :bootstrap, :roles => [:mysql_mgm, :mysql_data, :mysql_sql] do
|
48
|
+
# mysql package install starts mysql, so stop it
|
49
|
+
rsudo "service mysql stop" rescue nil
|
50
|
+
|
51
|
+
# After everything installed on machines, we need the source tree
|
52
|
+
# on hosts in order to run rubber:config for bootstrapping the db
|
53
|
+
rubber.update_code_for_bootstrap
|
54
|
+
|
55
|
+
# Conditionaly bootstrap for each node/role only if that node has not
|
56
|
+
# been boostrapped for that role before
|
57
|
+
|
58
|
+
rubber_instances.for_role("mysql_mgm").each do |ic|
|
59
|
+
task_name = "_bootstrap_mysql_mgm_#{ic.full_name}".to_sym()
|
60
|
+
task task_name, :hosts => ic.full_name do
|
61
|
+
exists = capture("if grep -c rubber.*mysql_mgm /etc/mysql/ndb_mgmd.cnf &> /dev/null; then echo exists; fi")
|
62
|
+
if exists.strip.size == 0
|
63
|
+
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/mysql_mgm", :deploy_path => release_path)
|
64
|
+
rsudo "service mysql-ndb-mgm start"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
send task_name
|
68
|
+
end
|
69
|
+
|
70
|
+
rubber_instances.for_role("mysql_data").each do |ic|
|
71
|
+
task_name = "_bootstrap_mysql_data_#{ic.full_name}".to_sym()
|
72
|
+
task task_name, :hosts => ic.full_name do
|
73
|
+
exists = capture("if grep -c rubber.*mysql_data /etc/mysql/my.cnf &> /dev/null; then echo exists; fi")
|
74
|
+
if exists.strip.size == 0
|
75
|
+
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/mysql_data", :deploy_path => release_path)
|
76
|
+
rsudo "service mysql-ndb start-initial"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
send task_name
|
80
|
+
end
|
81
|
+
|
82
|
+
rubber_instances.for_role("mysql_sql").each do |ic|
|
83
|
+
task_name = "_bootstrap_mysql_sql_#{ic.full_name}".to_sym()
|
84
|
+
task task_name, :hosts => ic.full_name do
|
85
|
+
exists = capture("if grep -c rubber.*mysql_sql /etc/mysql/my.cnf &> /dev/null; then echo exists; fi")
|
86
|
+
if exists.strip.size == 0
|
87
|
+
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/mysql_sql", :deploy_path => release_path)
|
88
|
+
rsudo "service mysql start"
|
89
|
+
env = rubber_cfg.environment.bind()
|
90
|
+
# For mysql 5.0 cluster, need to create users and database for EVERY sql node
|
91
|
+
pass = "identified by '#{env.db_pass}'" if env.db_pass
|
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
|
+
|
100
|
+
end
|
101
|
+
end
|
102
|
+
send task_name
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
desc <<-DESC
|
108
|
+
Starts the mysql cluster management daemon on the management node
|
109
|
+
DESC
|
110
|
+
task :start_mgm, :roles => :mysql_mgm do
|
111
|
+
rsudo "service mysql-ndb-mgm start"
|
112
|
+
end
|
113
|
+
|
114
|
+
desc <<-DESC
|
115
|
+
Starts the mysql cluster storage daemon on the data nodes
|
116
|
+
DESC
|
117
|
+
task :start_data, :roles => :mysql_data do
|
118
|
+
rsudo "service mysql-ndb start"
|
119
|
+
end
|
120
|
+
|
121
|
+
desc <<-DESC
|
122
|
+
Starts the mysql cluster sql daemon on the sql nodes
|
123
|
+
DESC
|
124
|
+
task :start_sql, :roles => :mysql_sql do
|
125
|
+
rsudo "service mysql start"
|
126
|
+
end
|
127
|
+
|
128
|
+
desc <<-DESC
|
129
|
+
Stops the mysql cluster management daemon on the management node
|
130
|
+
DESC
|
131
|
+
task :stop_mgm, :roles => :mysql_mgm do
|
132
|
+
rsudo "service mysql-ndb-mgm stop"
|
133
|
+
end
|
134
|
+
|
135
|
+
desc <<-DESC
|
136
|
+
Stops the mysql cluster storage daemon on the data nodes
|
137
|
+
DESC
|
138
|
+
task :stop_data, :roles => :mysql_data do
|
139
|
+
rsudo "service mysql-ndb stop"
|
140
|
+
end
|
141
|
+
|
142
|
+
desc <<-DESC
|
143
|
+
Stops the mysql cluster sql daemon on the sql nodes
|
144
|
+
DESC
|
145
|
+
task :stop_sql, :roles => :mysql_sql do
|
146
|
+
rsudo "service mysql stop"
|
147
|
+
end
|
148
|
+
|
149
|
+
desc <<-DESC
|
150
|
+
Stops all the mysql cluster daemons
|
151
|
+
DESC
|
152
|
+
task :stop do
|
153
|
+
stop_sql
|
154
|
+
stop_data
|
155
|
+
stop_mgm
|
156
|
+
end
|
157
|
+
|
158
|
+
desc <<-DESC
|
159
|
+
Starts all the mysql cluster daemons
|
160
|
+
DESC
|
161
|
+
task :start do
|
162
|
+
start_mgm
|
163
|
+
start_data
|
164
|
+
start_sql
|
165
|
+
end
|
166
|
+
|
167
|
+
desc <<-DESC
|
168
|
+
Restarts all the mysql cluster daemons
|
169
|
+
DESC
|
170
|
+
task :restart do
|
171
|
+
stop
|
172
|
+
start
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%
|
2
|
+
|
3
|
+
mgm_nodes = rubber_instances.for_role('mysql_mgm')
|
4
|
+
mgm_host = mgm_nodes.first.full_name
|
5
|
+
|
6
|
+
@path = "/etc/mysql/my.cnf"
|
7
|
+
@post = <<-POST
|
8
|
+
mkdir -p #{rubber_env.db_data_dir}
|
9
|
+
POST
|
10
|
+
%>
|
11
|
+
|
12
|
+
# Generated by rubber for mysql_data role
|
13
|
+
|
14
|
+
[mysql_cluster]
|
15
|
+
ndb-connectstring=<%= mgm_host %>
|
data/lib/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
<%
|
2
|
+
data_nodes = rubber_instances.for_role('mysql_data')
|
3
|
+
sql_nodes = rubber_instances.for_role('mysql_sql')
|
4
|
+
|
5
|
+
@path = "/etc/mysql/ndb_mgmd.cnf"
|
6
|
+
%>
|
7
|
+
|
8
|
+
# Generated by rubber for mysql_mgm role
|
9
|
+
|
10
|
+
# You can use the following formula for obtaining a rough estimate of how much
|
11
|
+
# RAM is needed for each data node in the cluster:
|
12
|
+
# (SizeofDatabase ? NumberOfReplicas ? 1.1 ) / NumberOfDataNodes
|
13
|
+
|
14
|
+
[NDBD DEFAULT]
|
15
|
+
NoOfReplicas=<%= data_nodes.size == 1 ? 1 : 2 %>
|
16
|
+
|
17
|
+
[MYSQLD DEFAULT]
|
18
|
+
[NDB_MGMD DEFAULT]
|
19
|
+
[TCP DEFAULT]
|
20
|
+
|
21
|
+
# Managment Server
|
22
|
+
[NDB_MGMD]
|
23
|
+
HostName=<%= rubber_env.full_host %>
|
24
|
+
|
25
|
+
# Data Nodes (Where your data is stored)
|
26
|
+
<% data_nodes.each do |data_node| %>
|
27
|
+
[NDBD]
|
28
|
+
HostName=<%= data_node.full_name %>
|
29
|
+
DataDir=<%= rubber_env.db_data_dir %>
|
30
|
+
<% end %>
|
31
|
+
|
32
|
+
# SQL Nodes (what your clients connect to)
|
33
|
+
<% sql_nodes.each do |sql_node| %>
|
34
|
+
[MYSQLD]
|
35
|
+
HostName=<%= sql_node.full_name %>
|
36
|
+
<% end %>
|
37
|
+
|
38
|
+
# One extra sql_node for use by things like ndb_restore from mgm node itself.
|
39
|
+
[MYSQLD]
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%
|
2
|
+
@path = '/etc/monit/monit.d/monit-mysql_cluster_sql.conf'
|
3
|
+
%>
|
4
|
+
|
5
|
+
check process mysql_cluster_sql with pidfile /var/lib/mysql/<%= rubber_env.full_host %>.pid
|
6
|
+
group mysql_cluster_sql-<%= RUBBER_ENV %>
|
7
|
+
start program = "/usr/sbin/service mysql start"
|
8
|
+
stop program = "/usr/sbin/service mysql stop"
|
9
|
+
if failed host 127.0.0.1 port 3306 protocol mysql then alert
|
10
|
+
if 5 restarts within 5 cycles then timeout
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%
|
2
|
+
@path = "/etc/mysql/my.cnf"
|
3
|
+
|
4
|
+
# When sql nodes on same hosts as data nodes, then this config needs to be
|
5
|
+
# additive - the mysql_data node gets generated first due to generator order
|
6
|
+
self_instance = rubber_instances[rubber_env.host]
|
7
|
+
if self_instance.role_names.include?('mysql_data')
|
8
|
+
@additive = ['# mysql_sql start', '# mysql_sql end']
|
9
|
+
end
|
10
|
+
|
11
|
+
mgm_nodes = rubber_instances.for_role('mysql_mgm')
|
12
|
+
mgm_host = mgm_nodes.first.full_name
|
13
|
+
%>
|
14
|
+
|
15
|
+
# Generated by rubber for mysql_sql role
|
16
|
+
|
17
|
+
[client]
|
18
|
+
default-character-set = utf8
|
19
|
+
|
20
|
+
[mysqld]
|
21
|
+
default-character-set = utf8
|
22
|
+
ndbcluster
|
23
|
+
ndb-connectstring=<%= mgm_host %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# MySQL user accounts and privileges are not automatically propagated between different MySQL servers accessing the same MySQL Cluster. Therefore, you must make sure that these are copied between the SQL nodes yourself.
|
2
|
+
|
3
|
+
# REQUIRED: The credentials for creating/accessong your app's database
|
4
|
+
#
|
5
|
+
db_user: "#{app_name}"
|
6
|
+
db_pass:
|
7
|
+
db_name: "#{app_name}_#{RUBBER_ENV}"
|
8
|
+
|
9
|
+
# REQUIRED: The command to use to do a full backup of your database using
|
10
|
+
# "rake rubber:backup_db"
|
11
|
+
db_backup_cmd: "nice mysqldump -h %host% -u %user% --password=%pass% %name% | gzip -c > %backup_file%"
|
12
|
+
# REQUIRED: The command to use to restore the database using
|
13
|
+
# "rake rubber:restore_db_s3"
|
14
|
+
# This command will receive the data generated by db_backup_cmd via
|
15
|
+
# its standard input
|
16
|
+
db_restore_cmd: "zcat - | mysql -h %host% -u %user% --password=%pass% %name%"
|
17
|
+
|
18
|
+
|
19
|
+
# REQUIRED: The directory the data nodes store the db data in
|
20
|
+
#
|
21
|
+
db_data_dir: /mnt/mysql_cluster_data
|
22
|
+
|
23
|
+
packages: [mysql-client, libmysql-ruby]
|
24
|
+
|
25
|
+
|
26
|
+
roles:
|
27
|
+
mysql_sql:
|
28
|
+
packages: [mysql-server]
|
29
|
+
mysql_mgm:
|
30
|
+
packages: [mysql-server]
|
31
|
+
mysql_data:
|
32
|
+
packages: [mysql-server]
|
@@ -0,0 +1 @@
|
|
1
|
+
description: The mysql cluster module
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%
|
2
|
+
@path = "#{RUBBER_ROOT}/config/database.yml"
|
3
|
+
%>
|
4
|
+
|
5
|
+
# Sets up rails to talk to mysql-proxy load balancer running on localhost,
|
6
|
+
# which then then balances requests between sql nodes in the cluster
|
7
|
+
<%= RUBBER_ENV %>:
|
8
|
+
adapter: mysql
|
9
|
+
encoding: utf8
|
10
|
+
database: <%= rubber_env.db_name %>
|
11
|
+
username: <%= rubber_env.db_user %>
|
12
|
+
password: <%= rubber_env.db_pass %>
|
13
|
+
host: 127.0.0.1
|
14
|
+
port: 4040
|
15
|
+
|
16
|
+
|
data/lib/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
<%
|
2
|
+
@path = '/etc/monit/monit.d/monit-mysql_proxy.conf'
|
3
|
+
%>
|
4
|
+
|
5
|
+
check process mysql_proxy with pidfile /var/run/mysql-proxy.pid
|
6
|
+
group mysql_proxy-<%= RUBBER_ENV %>
|
7
|
+
start program = "/usr/sbin/service mysql-proxy start"
|
8
|
+
stop program = "/usr/sbin/service mysql-proxy stop"
|
9
|
+
if failed host 127.0.0.1 port 4040 protocol mysql then alert
|
10
|
+
if 5 restarts within 5 cycles then timeout
|
@@ -0,0 +1,153 @@
|
|
1
|
+
<%
|
2
|
+
@path = "/etc/init.d/mysql-proxy"
|
3
|
+
@perms = 0755
|
4
|
+
%>#! /bin/sh
|
5
|
+
### BEGIN INIT INFO
|
6
|
+
# Provides: mysql-proxy
|
7
|
+
# Required-Start: $local_fs $remote_fs
|
8
|
+
# Required-Stop: $local_fs $remote_fs
|
9
|
+
# Default-Start: 2 3 4 5
|
10
|
+
# Default-Stop: S 0 1 6
|
11
|
+
# Short-Description: mysql-proxy daemon
|
12
|
+
# Description: Starts local proxy server
|
13
|
+
### END INIT INFO
|
14
|
+
|
15
|
+
# Author: Matt Conway (http://github.com/wr0ngway/rubber)
|
16
|
+
#
|
17
|
+
|
18
|
+
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
19
|
+
PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
20
|
+
DESC="mysql-proxy"
|
21
|
+
NAME=mysql-proxy
|
22
|
+
DAEMON=/usr/sbin/$NAME
|
23
|
+
PIDFILE=/var/run/$NAME.pid
|
24
|
+
DAEMON_ARGS="--daemon --pid-file=${PIDFILE}"
|
25
|
+
SCRIPTNAME=/etc/init.d/$NAME
|
26
|
+
|
27
|
+
# Exit if the package is not installed
|
28
|
+
[ -x "$DAEMON" ] || exit 0
|
29
|
+
|
30
|
+
# Read configuration variable file if it is present
|
31
|
+
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
32
|
+
|
33
|
+
# Load the VERBOSE setting and other rcS variables
|
34
|
+
[ -f /etc/default/rcS ] && . /etc/default/rcS
|
35
|
+
|
36
|
+
# Define LSB log_* functions.
|
37
|
+
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
38
|
+
. /lib/lsb/init-functions
|
39
|
+
|
40
|
+
#
|
41
|
+
# Function that starts the daemon/service
|
42
|
+
#
|
43
|
+
do_start()
|
44
|
+
{
|
45
|
+
# Return
|
46
|
+
# 0 if daemon has been started
|
47
|
+
# 1 if daemon was already running
|
48
|
+
# 2 if daemon could not be started
|
49
|
+
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|
50
|
+
|| return 1
|
51
|
+
start-stop-daemon --start --background --quiet --pidfile $PIDFILE --exec $DAEMON -- \
|
52
|
+
$DAEMON_ARGS \
|
53
|
+
|| return 2
|
54
|
+
# Add code here, if necessary, that waits for the process to be ready
|
55
|
+
# to handle requests from services started subsequently which depend
|
56
|
+
# on this one. As a last resort, sleep for some time.
|
57
|
+
}
|
58
|
+
|
59
|
+
#
|
60
|
+
# Function that stops the daemon/service
|
61
|
+
#
|
62
|
+
do_stop()
|
63
|
+
{
|
64
|
+
# Return
|
65
|
+
# 0 if daemon has been stopped
|
66
|
+
# 1 if daemon was already stopped
|
67
|
+
# 2 if daemon could not be stopped
|
68
|
+
# other if a failure occurred
|
69
|
+
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
70
|
+
RETVAL="$?"
|
71
|
+
[ "$RETVAL" = 2 ] && return 2
|
72
|
+
# Wait for children to finish too if this is a daemon that forks
|
73
|
+
# and if the daemon is only ever run from this initscript.
|
74
|
+
# If the above conditions are not satisfied then add some other code
|
75
|
+
# that waits for the process to drop all resources that could be
|
76
|
+
# needed by services started subsequently. A last resort is to
|
77
|
+
# sleep for some time.
|
78
|
+
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
79
|
+
[ "$?" = 2 ] && return 2
|
80
|
+
# Many daemons don't delete their pidfiles when they exit.
|
81
|
+
rm -f $PIDFILE
|
82
|
+
return "$RETVAL"
|
83
|
+
}
|
84
|
+
|
85
|
+
#
|
86
|
+
# Function that sends a SIGHUP to the daemon/service
|
87
|
+
#
|
88
|
+
do_reload() {
|
89
|
+
#
|
90
|
+
# If the daemon can reload its configuration without
|
91
|
+
# restarting (for example, when it is sent a SIGHUP),
|
92
|
+
# then implement that here.
|
93
|
+
#
|
94
|
+
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
95
|
+
return 0
|
96
|
+
}
|
97
|
+
|
98
|
+
case "$1" in
|
99
|
+
start)
|
100
|
+
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
101
|
+
do_start
|
102
|
+
case "$?" in
|
103
|
+
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
104
|
+
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
105
|
+
esac
|
106
|
+
;;
|
107
|
+
stop)
|
108
|
+
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
109
|
+
do_stop
|
110
|
+
case "$?" in
|
111
|
+
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
112
|
+
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
113
|
+
esac
|
114
|
+
;;
|
115
|
+
#reload|force-reload)
|
116
|
+
#
|
117
|
+
# If do_reload() is not implemented then leave this commented out
|
118
|
+
# and leave 'force-reload' as an alias for 'restart'.
|
119
|
+
#
|
120
|
+
#log_daemon_msg "Reloading $DESC" "$NAME"
|
121
|
+
#do_reload
|
122
|
+
#log_end_msg $?
|
123
|
+
#;;
|
124
|
+
restart|force-reload)
|
125
|
+
#
|
126
|
+
# If the "reload" option is implemented then remove the
|
127
|
+
# 'force-reload' alias
|
128
|
+
#
|
129
|
+
log_daemon_msg "Restarting $DESC" "$NAME"
|
130
|
+
do_stop
|
131
|
+
case "$?" in
|
132
|
+
0|1)
|
133
|
+
do_start
|
134
|
+
case "$?" in
|
135
|
+
0) log_end_msg 0 ;;
|
136
|
+
1) log_end_msg 1 ;; # Old process is still running
|
137
|
+
*) log_end_msg 1 ;; # Failed to start
|
138
|
+
esac
|
139
|
+
;;
|
140
|
+
*)
|
141
|
+
# Failed to stop
|
142
|
+
log_end_msg 1
|
143
|
+
;;
|
144
|
+
esac
|
145
|
+
;;
|
146
|
+
*)
|
147
|
+
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
148
|
+
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
|
149
|
+
exit 3
|
150
|
+
;;
|
151
|
+
esac
|
152
|
+
|
153
|
+
:
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%
|
2
|
+
@path = "/etc/default/mysql-proxy"
|
3
|
+
|
4
|
+
proxy_cmd = "--proxy-lua-script=/etc/mysql/mysql-proxy.lua"
|
5
|
+
rubber_instances.for_role(rubber_env.mysql_proxy_role).each do |ic|
|
6
|
+
proxy_cmd << " --proxy-backend-addresses=#{ic.full_name}:3306"
|
7
|
+
end
|
8
|
+
%>
|
9
|
+
|
10
|
+
DAEMON_ARGS="${DAEMON_ARGS} <%= proxy_cmd %>"
|
@@ -0,0 +1,52 @@
|
|
1
|
+
|
2
|
+
namespace :rubber do
|
3
|
+
|
4
|
+
namespace :mysql_proxy do
|
5
|
+
|
6
|
+
rubber.allow_optional_tasks(self)
|
7
|
+
|
8
|
+
# mysql-proxy needs to get stopped last and started first so that
|
9
|
+
# other processes that use db aren't affected
|
10
|
+
after "deploy:stop", "rubber:mysql_proxy:stop"
|
11
|
+
before "deploy:start", "rubber:mysql_proxy:start"
|
12
|
+
before "deploy:restart", "rubber:mysql_proxy:restart"
|
13
|
+
|
14
|
+
before "rubber:install_packages", "rubber:mysql_proxy:install"
|
15
|
+
|
16
|
+
task :install do
|
17
|
+
# Setup apt sources to getmysql-proxy (needs to happen for all roles)
|
18
|
+
# https://launchpad.net/~mysql-cge-testing/+archive
|
19
|
+
#
|
20
|
+
sources = <<-SOURCES
|
21
|
+
deb http://ppa.launchpad.net/ndb-bindings/ubuntu hardy main
|
22
|
+
deb-src http://ppa.launchpad.net/ndb-bindings/ubuntu hardy main
|
23
|
+
SOURCES
|
24
|
+
sources.gsub!(/^ */, '')
|
25
|
+
put(sources, "/etc/apt/sources.list.d/mysql_proxy.list")
|
26
|
+
end
|
27
|
+
|
28
|
+
desc <<-DESC
|
29
|
+
Starts the mysql proxy daemon
|
30
|
+
DESC
|
31
|
+
task :start do
|
32
|
+
rsudo "service mysql-proxy start"
|
33
|
+
end
|
34
|
+
|
35
|
+
desc <<-DESC
|
36
|
+
Stops the mysql proxy daemon
|
37
|
+
DESC
|
38
|
+
task :stop do
|
39
|
+
rsudo "service mysql-proxy stop"
|
40
|
+
end
|
41
|
+
|
42
|
+
desc <<-DESC
|
43
|
+
Restarts the mysql proxy daemon
|
44
|
+
DESC
|
45
|
+
task :restart do
|
46
|
+
rsudo "service mysql-proxy restart"
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# MySQL user accounts and privileges are not automatically propagated between different MySQL servers accessing the same MySQL Cluster. Therefore, you must make sure that these are copied between the SQL nodes yourself.
|
2
|
+
|
3
|
+
# Uses db credtial variables from mysql/mysql_cluster
|
4
|
+
# db_user, db_pass, db_name
|
5
|
+
|
6
|
+
# REQUIRED: The role of the servers mysql_proxy load balances sql requests to.
|
7
|
+
# e.g. 'mysql_sql' for mysql_cluster, or 'db' for both mysql master/slave,
|
8
|
+
# or 'mysql_master' for just master
|
9
|
+
mysql_proxy_role: mysql_sql
|
10
|
+
|
11
|
+
packages: [mysql-proxy]
|
@@ -0,0 +1 @@
|
|
1
|
+
description: The mysql_proxy module for load balancing to mysql servers
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
namespace :rubber do
|
3
|
+
|
4
|
+
namespace :nginx do
|
5
|
+
|
6
|
+
rubber.allow_optional_tasks(self)
|
7
|
+
|
8
|
+
# serial_task can only be called after roles defined - not normally a problem, but
|
9
|
+
# rubber auto-roles don't get defined till after all tasks are defined
|
10
|
+
on :load do
|
11
|
+
rubber.serial_task self, :serial_restart, :roles => :nginx do
|
12
|
+
rsudo "service nginx restart"
|
13
|
+
end
|
14
|
+
rubber.serial_task self, :serial_reload, :roles => :nginx do
|
15
|
+
rsudo "if ! ps ax | grep -v grep | grep -c nginx &> /dev/null; then service nginx start; else service nginx reload; fi"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
before "deploy:stop", "rubber:nginx:stop"
|
20
|
+
after "deploy:start", "rubber:nginx:start"
|
21
|
+
after "deploy:restart", "rubber:nginx:reload"
|
22
|
+
|
23
|
+
desc "Stops the nginx web server"
|
24
|
+
task :stop, :roles => :nginx do
|
25
|
+
rsudo "service nginx stop; exit 0"
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Starts the nginx web server"
|
29
|
+
task :start, :roles => :nginx do
|
30
|
+
rsudo "service nginx start"
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "Restarts the nginx web server"
|
34
|
+
task :restart, :roles => :nginx do
|
35
|
+
serial_restart
|
36
|
+
end
|
37
|
+
|
38
|
+
desc "Reloads the nginx web server"
|
39
|
+
task :reload, :roles => :nginx do
|
40
|
+
serial_reload
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%
|
2
|
+
@path = '/etc/monit/monit.d/monit-nginx.conf'
|
3
|
+
%>
|
4
|
+
<% PIDFILE = "/var/run/nginx.pid" %>
|
5
|
+
check process nginx with pidfile <%= PIDFILE %>
|
6
|
+
group nginx-<%= RUBBER_ENV %>
|
7
|
+
start program = "/usr/sbin/service nginx start"
|
8
|
+
stop program = "/usr/sbin/service nginx stop"
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%
|
2
|
+
@path = "/etc/nginx/nginx.conf"
|
3
|
+
@post = "mkdir -p /mnt/nginx/logs"
|
4
|
+
%>
|
5
|
+
|
6
|
+
user www-data;
|
7
|
+
worker_processes 10;
|
8
|
+
|
9
|
+
pid /var/run/nginx.pid;
|
10
|
+
|
11
|
+
events
|
12
|
+
{
|
13
|
+
worker_connections 1024;
|
14
|
+
}
|
15
|
+
|
16
|
+
http
|
17
|
+
{
|
18
|
+
include /etc/nginx/mime.types;
|
19
|
+
default_type application/octet-stream;
|
20
|
+
|
21
|
+
sendfile on;
|
22
|
+
tcp_nopush on;
|
23
|
+
tcp_nodelay off;
|
24
|
+
|
25
|
+
gzip on;
|
26
|
+
gzip_http_version 1.0;
|
27
|
+
gzip_comp_level 2;
|
28
|
+
gzip_proxied any;
|
29
|
+
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
30
|
+
|
31
|
+
# configure log format like to Apache's "combined" log format
|
32
|
+
log_format main
|
33
|
+
'$remote_addr - $remote_user [$time_local] '
|
34
|
+
'"$request" $status $body_bytes_sent "$http_referer" '
|
35
|
+
'"$http_user_agent" "$http_cookie"';
|
36
|
+
|
37
|
+
# default log files
|
38
|
+
error_log /mnt/nginx/logs/error.log notice;
|
39
|
+
access_log /mnt/nginx/logs/access.log main;
|
40
|
+
|
41
|
+
include /etc/nginx/rubber/*.conf;
|
42
|
+
}
|