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.
- data/CHANGELOG +477 -0
- data/COPYING +339 -0
- data/README +6 -0
- data/TODO +11 -0
- data/VERSION +1 -0
- data/bin/vulcanize +25 -0
- data/generators/vulcanize/USAGE +6 -0
- data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +51 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/deflate.conf +10 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/expires.conf +9 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/headers.conf +6 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +8 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +8 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/setenvif.conf +52 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +79 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache.auth +7 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +34 -0
- data/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +6 -0
- data/generators/vulcanize/templates/apache/templates.yml +1 -0
- data/generators/vulcanize/templates/base/Capfile +14 -0
- data/generators/vulcanize/templates/base/Rakefile +23 -0
- data/generators/vulcanize/templates/base/config/deploy.rb +56 -0
- data/generators/vulcanize/templates/base/config/rubber/common/crontab +22 -0
- data/generators/vulcanize/templates/base/config/rubber/common/monit-postfix.conf +8 -0
- data/generators/vulcanize/templates/base/config/rubber/common/rubber.profile +13 -0
- data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +92 -0
- data/generators/vulcanize/templates/base/config/rubber/deploy-util.rb +97 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber-dns.yml +78 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +33 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber.yml +241 -0
- data/generators/vulcanize/templates/base/lib/tasks/rubber.rake +15 -0
- data/generators/vulcanize/templates/base/script/cron-rake +18 -0
- data/generators/vulcanize/templates/base/script/cron-runner +18 -0
- data/generators/vulcanize/templates/base/script/cron-sh +67 -0
- data/generators/vulcanize/templates/base/templates.rb +11 -0
- data/generators/vulcanize/templates/base/templates.yml +6 -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 +60 -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 +23 -0
- data/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/role/nginx/nginx-mongrel.conf +113 -0
- data/generators/vulcanize/templates/complete_mongrel_mysql/config/rubber/rubber-complete.yml +41 -0
- data/generators/vulcanize/templates/complete_mongrel_mysql/templates.yml +6 -0
- data/generators/vulcanize/templates/complete_passenger/config/rubber/role/haproxy/haproxy-passenger.conf +21 -0
- data/generators/vulcanize/templates/complete_passenger/config/rubber/rubber-complete.yml +40 -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 +4 -0
- data/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
- data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +72 -0
- data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/cruise +40 -0
- data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +165 -0
- data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/production.rb +8 -0
- data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/site_config.rb +76 -0
- data/generators/vulcanize/templates/cruise/config/rubber/role/web_tools/cruise-nginx.conf +11 -0
- data/generators/vulcanize/templates/cruise/config/rubber/rubber-cruise.yml +18 -0
- data/generators/vulcanize/templates/cruise/templates.yml +1 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +45 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-base.conf +26 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-default.conf +8 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +9 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +11 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +21 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/web_tools/haproxy-nginx.conf +10 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/rubber-haproxy.yml +7 -0
- data/generators/vulcanize/templates/haproxy/templates.yml +1 -0
- data/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +59 -0
- data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.sh +589 -0
- data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/jetty.xml +199 -0
- data/generators/vulcanize/templates/jetty/config/rubber/role/jetty/monit-jetty.conf +9 -0
- data/generators/vulcanize/templates/jetty/config/rubber/rubber-jetty.yml +10 -0
- data/generators/vulcanize/templates/jetty/templates.yml +1 -0
- data/generators/vulcanize/templates/memcached/config/memcached.yml +28 -0
- data/generators/vulcanize/templates/memcached/config/rubber/common/memcached.yml +14 -0
- data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +52 -0
- data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached_munin_plugin +249 -0
- data/generators/vulcanize/templates/memcached/config/rubber/rubber-memcached.yml +7 -0
- data/generators/vulcanize/templates/memcached/templates.yml +1 -0
- data/generators/vulcanize/templates/minimal_mysql/templates.yml +7 -0
- data/generators/vulcanize/templates/minimal_nodb/templates.yml +6 -0
- data/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +75 -0
- data/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/mongrel_cluster.yml +12 -0
- data/generators/vulcanize/templates/mongrel/config/rubber/role/mongrel/monit-mongrel.conf +20 -0
- data/generators/vulcanize/templates/mongrel/config/rubber/rubber-mongrel.yml +9 -0
- data/generators/vulcanize/templates/mongrel/templates.yml +1 -0
- data/generators/vulcanize/templates/monit/config/rubber/common/monit-default.conf +15 -0
- data/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +252 -0
- data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +33 -0
- data/generators/vulcanize/templates/monit/config/rubber/role/web_tools/monit-admin-nginx.conf +10 -0
- data/generators/vulcanize/templates/monit/config/rubber/rubber-monit.yml +6 -0
- data/generators/vulcanize/templates/monit/templates.yml +1 -0
- data/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +8 -0
- data/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +48 -0
- data/generators/vulcanize/templates/munin/config/rubber/common/munin-plugins.conf +11 -0
- data/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +46 -0
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-nginx.conf +8 -0
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +31 -0
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +115 -0
- data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
- data/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +55 -0
- data/generators/vulcanize/templates/munin/script/munin/example_simple.rb +24 -0
- data/generators/vulcanize/templates/munin/templates.yml +1 -0
- data/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +12 -0
- data/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +169 -0
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/apparmor-mysql.conf +46 -0
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/crontab +14 -0
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +10 -0
- data/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +163 -0
- data/generators/vulcanize/templates/mysql/config/rubber/role/mysql_slave/mysql_slave_munin_plugin +51 -0
- data/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +47 -0
- data/generators/vulcanize/templates/mysql/templates.yml +1 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/common/mysql_cluster_migrations.rb +13 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +177 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_data/my.cnf +15 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf +39 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +10 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +23 -0
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/rubber-mysql_cluster.yml +32 -0
- data/generators/vulcanize/templates/mysql_cluster/templates.yml +1 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/database.yml +16 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +10 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy +153 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.conf +10 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.lua +5 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +52 -0
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/rubber-mysql_proxy.yml +11 -0
- data/generators/vulcanize/templates/mysql_proxy/templates.yml +1 -0
- data/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +45 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +9 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/monit-nginx.conf +8 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/nginx.conf +42 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +55 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-index.html +30 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/tools-nginx.auth +7 -0
- data/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +10 -0
- data/generators/vulcanize/templates/nginx/templates.yml +1 -0
- data/generators/vulcanize/templates/node/INSTALL_NOTES +20 -0
- data/generators/vulcanize/templates/node/config/rubber/deploy-node.rb +33 -0
- data/generators/vulcanize/templates/node/config/rubber/rubber-node.yml +1 -0
- data/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +45 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-memory.conf +34 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +8 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger.conf +47 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +48 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +41 -0
- data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +15 -0
- data/generators/vulcanize/templates/passenger/templates.yml +3 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/common/database.yml +12 -0
- data/generators/vulcanize/templates/postgresql/config/rubber/deploy-postgresql.rb +158 -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/munin-postgresql.conf +7 -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 +531 -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 +76 -0
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/crontab +8 -0
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/monit-redis.conf +9 -0
- data/generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf +320 -0
- data/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +9 -0
- data/generators/vulcanize/templates/redis/templates.yml +1 -0
- 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 +58 -0
- 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 +18 -0
- data/generators/vulcanize/templates/resque/script/resque_worker_management.rb +144 -0
- data/generators/vulcanize/templates/resque/templates.rb +1 -0
- data/generators/vulcanize/templates/resque/templates.yml +3 -0
- data/generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml +46 -0
- data/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +112 -0
- data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab +11 -0
- data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +13 -0
- data/generators/vulcanize/templates/sphinx/config/rubber/rubber-sphinx.yml +6 -0
- data/generators/vulcanize/templates/sphinx/templates.yml +1 -0
- data/generators/vulcanize/vulcanize_generator.rb +184 -0
- data/lib/capistrano/hostcmd.rb +12 -0
- 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 +23 -0
- data/lib/generators/vulcanize/templates/base/config/deploy.rb +56 -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 +92 -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 +33 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber.yml +241 -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 +11 -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 +60 -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 +115 -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 +45 -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 +8 -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 +48 -0
- data/lib/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +41 -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 +158 -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/munin-postgresql.conf +7 -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 +531 -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 +76 -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 +320 -0
- data/lib/generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml +9 -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 +144 -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 +184 -0
- data/lib/rubber.rb +76 -0
- data/lib/rubber/capistrano.rb +1 -0
- data/lib/rubber/cloud.rb +13 -0
- data/lib/rubber/cloud/aws.rb +362 -0
- data/lib/rubber/cloud/base.rb +16 -0
- data/lib/rubber/configuration.rb +47 -0
- data/lib/rubber/dns.rb +13 -0
- data/lib/rubber/dns/base.rb +84 -0
- data/lib/rubber/dns/dyndns.rb +77 -0
- data/lib/rubber/dns/nettica.rb +117 -0
- data/lib/rubber/dns/zerigo.rb +115 -0
- data/lib/rubber/environment.rb +177 -0
- data/lib/rubber/generator.rb +209 -0
- data/lib/rubber/instance.rb +176 -0
- data/lib/rubber/railtie.rb +14 -0
- data/lib/rubber/recipes/rubber.rb +96 -0
- data/lib/rubber/recipes/rubber/bundles.rb +30 -0
- data/lib/rubber/recipes/rubber/deploy.rb +90 -0
- data/lib/rubber/recipes/rubber/instances.rb +453 -0
- data/lib/rubber/recipes/rubber/load_balancers.rb +44 -0
- data/lib/rubber/recipes/rubber/security_groups.rb +189 -0
- data/lib/rubber/recipes/rubber/setup.rb +534 -0
- data/lib/rubber/recipes/rubber/spot_requests.rb +23 -0
- data/lib/rubber/recipes/rubber/static_ips.rb +190 -0
- data/lib/rubber/recipes/rubber/tags.rb +12 -0
- data/lib/rubber/recipes/rubber/utils.rb +226 -0
- data/lib/rubber/recipes/rubber/volumes.rb +265 -0
- data/lib/rubber/tag.rb +16 -0
- data/lib/rubber/tasks/rubber.rb +279 -0
- data/lib/rubber/util.rb +72 -0
- data/rails/init.rb +6 -0
- data/test/environment_test.rb +144 -0
- data/test/generator_test.rb +370 -0
- data/test/instance_test.rb +96 -0
- data/test/test_helper.rb +14 -0
- data/test/util_test.rb +19 -0
- data/test/zerigo_test.rb +88 -0
- metadata +540 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
# rvm needs some extra packages to compile/install ruby runtimes
|
|
3
|
+
# curl is required.
|
|
4
|
+
# patch is required (for ree, some ruby head's).
|
|
5
|
+
# For JRuby (if you wish to use it) you will need:
|
|
6
|
+
# aptitude install curl sun-java6-bin sun-java6-jre sun-java6-jdk
|
|
7
|
+
# For MRI & ree (if you wish to use it) you will need:
|
|
8
|
+
# aptitude install curl bison build-essential zlib1g-dev libssl-dev libreadline5-dev libxml2-dev git-core
|
|
9
|
+
# For IronRuby (if you wish to use it) you will need:
|
|
10
|
+
# aptitude install curl mono-2.0-devel
|
|
11
|
+
|
|
12
|
+
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline5-dev, libxml2-dev]
|
|
13
|
+
|
|
14
|
+
# REQUIRED: the version of rvm itself
|
|
15
|
+
rvm_version: 1.1.3
|
|
16
|
+
|
|
17
|
+
# REQUIRED: Set to the rvm version string for the ruby version you wish to use
|
|
18
|
+
# Run "rvm list known" to see the list of possible options
|
|
19
|
+
rvm_ruby: 1.9.2
|
|
20
|
+
|
|
21
|
+
# When rvm is installed as root, and you set the default, it symlinks ruby executables
|
|
22
|
+
# into /usr/local/rvm
|
|
23
|
+
ruby_prefix: /usr/local/rvm
|
|
24
|
+
|
|
25
|
+
rvm_prefix: /usr/local/rvm
|
|
26
|
+
|
|
27
|
+
# lets us setup global envoronment to use rvm (also needed when running sudo)
|
|
28
|
+
rvm_prepare: "source #{rvm_prefix}/scripts/rvm"
|
|
29
|
+
|
|
30
|
+
# dirty hack to get the rvm gem home rather than bundler gem home
|
|
31
|
+
# When we run rubber:config it loads rails/bundler, which forces the bundler gem home, yet deployment only gems
|
|
32
|
+
# like passenger need to be installed in rvm gem home rather than bundler
|
|
33
|
+
rvm_gem_home: "#{$rubber_rvm_gem_home ||= `unset GEM_HOME; bash -l -c 'rvm gemdir'`.strip}"
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# All variables can also be overridden on the role and/or host level by creating
|
|
2
|
+
# a sub level to the config under roles and hosts
|
|
3
|
+
# e.g. to install mysql only on db role, and awstats only on web01:
|
|
4
|
+
#
|
|
5
|
+
# packages: [ruby]
|
|
6
|
+
# roles:
|
|
7
|
+
# db:
|
|
8
|
+
# packages: [mysql]
|
|
9
|
+
# hosts:
|
|
10
|
+
# web01:
|
|
11
|
+
# packages: [awstats]
|
|
12
|
+
|
|
13
|
+
# REQUIRED: The name of your application
|
|
14
|
+
app_name: your_app_name
|
|
15
|
+
|
|
16
|
+
# REQUIRED: The system user to run your app servers as
|
|
17
|
+
app_user: app
|
|
18
|
+
|
|
19
|
+
# REQUIRED: Notification emails (e.g. monit) get sent to this address
|
|
20
|
+
#
|
|
21
|
+
admin_email: root@localhost
|
|
22
|
+
|
|
23
|
+
# OPTIONAL: If not set, you won't be able to access web_tools
|
|
24
|
+
# server (munin stats, monit status, etc)
|
|
25
|
+
# web_tools_user: admin
|
|
26
|
+
# web_tools_password: sekret
|
|
27
|
+
|
|
28
|
+
# REQUIRED: The timezone the server should be in
|
|
29
|
+
timezone: US/Eastern
|
|
30
|
+
|
|
31
|
+
# REQUIRED: the domain all the instances should be associated with
|
|
32
|
+
#
|
|
33
|
+
domain: foo.com
|
|
34
|
+
|
|
35
|
+
# OPTIONAL: See rubber-dns.yml for dns configuration
|
|
36
|
+
# This lets rubber update a dynamic dns service with the instance alias
|
|
37
|
+
# and ip when they are created. It also allows setting up arbitrary
|
|
38
|
+
# dns records (CNAME, MX, Round Robin DNS, etc)
|
|
39
|
+
|
|
40
|
+
# OPTIONAL: Additional rubber file to pull config from if it exists. This file will
|
|
41
|
+
# also be pushed to remote host at RUBBER_ROOT/config/rubber/rubber-secret.yml
|
|
42
|
+
#
|
|
43
|
+
# rubber_secret: "#{File.expand_path('~') + '/.ec2' + (RUBBER_ENV == 'production' ? '' : '_dev') + '/rubber-secret.yml' rescue ''}"
|
|
44
|
+
|
|
45
|
+
# REQUIRED All known cloud providers with the settings needed to configure them
|
|
46
|
+
# There's only one coud provider right now - Amazon Web Services
|
|
47
|
+
# To implement another, clone lib/rubber/cloud/aws.rb
|
|
48
|
+
#
|
|
49
|
+
cloud_providers:
|
|
50
|
+
aws:
|
|
51
|
+
# REQUIRED The amazon keys and account ID (digits only, no dashes) used to access the AWS API
|
|
52
|
+
#
|
|
53
|
+
access_key: XXX
|
|
54
|
+
secret_access_key: YYY
|
|
55
|
+
account: ZZZ
|
|
56
|
+
|
|
57
|
+
# REQUIRED: The name of the amazon keypair and location of its private key
|
|
58
|
+
#
|
|
59
|
+
# NOTE: for some reason Capistrano requires you to have both the public and
|
|
60
|
+
# the private key in the same folder, the public key should have the
|
|
61
|
+
# extension ".pub". The easiest (only?) way to get your hand on this is to
|
|
62
|
+
# create an instance, ssh into it, and copy the file /mnt/openssh_id.pub
|
|
63
|
+
#
|
|
64
|
+
key_name: gsg-keypair
|
|
65
|
+
key_file: "#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/*' + cloud_providers.aws.key_name].first}"
|
|
66
|
+
|
|
67
|
+
# OPTIONAL: Needed for bundling a running instance using rubber:bundle
|
|
68
|
+
#
|
|
69
|
+
# pk_file: "#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/pk-*'].first}"
|
|
70
|
+
# cert_file: "#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/cert-*'].first}"
|
|
71
|
+
# image_bucket: "#{app_name}-images"
|
|
72
|
+
|
|
73
|
+
# OPTIONAL: Needed for backing up database to s3
|
|
74
|
+
# backup_bucket: "#{app_name}-backups"
|
|
75
|
+
|
|
76
|
+
# REQUIRED: the ami and instance type for creating instances
|
|
77
|
+
# The Ubuntu images at http://alestic.com/ work well
|
|
78
|
+
# Ubuntu 10.04 Lucid base install 32-bit ami-6407f20d
|
|
79
|
+
# Ubuntu 10.04 Lucid base install 64-bit ami-ac07f2c5
|
|
80
|
+
#
|
|
81
|
+
# m1.small or m1.large or m1.xlarge
|
|
82
|
+
image_type: m1.small
|
|
83
|
+
image_id: "#{ %w{m1.small c1.medium}.include?(image_type) ? 'ami-6407f20d' : 'ami-ac07f2c5' }"
|
|
84
|
+
|
|
85
|
+
# OPTIONAL: EC2 spot instance request support.
|
|
86
|
+
#
|
|
87
|
+
# Enables the creation of spot instance requests. Rubber will wait synchronously until the request is fulfilled,
|
|
88
|
+
# at which point it will begin initializing the instance, unless spot_instance_request_timeout is set.
|
|
89
|
+
# spot_instance: true
|
|
90
|
+
#
|
|
91
|
+
# The maximum price you would like to pay for your spot instance.
|
|
92
|
+
# spot_price: "0.085"
|
|
93
|
+
#
|
|
94
|
+
# If a spot instance request can't be fulfilled in 3 minutes, fallback to on-demand instance creation. If not set,
|
|
95
|
+
# the default is infinite.
|
|
96
|
+
# spot_instance_request_timeout: 180
|
|
97
|
+
|
|
98
|
+
# REQUIRED the cloud provider to use
|
|
99
|
+
#
|
|
100
|
+
cloud_provider: aws
|
|
101
|
+
|
|
102
|
+
# OPTIONAL: Define security groups
|
|
103
|
+
# Each security group is a name associated with a sequence of maps where the
|
|
104
|
+
# keys are the parameters to the ec2 AuthorizeSecurityGroupIngress API
|
|
105
|
+
# source_security_group_name, source_security_group_owner_id
|
|
106
|
+
# ip_protocol, from_port, to_port, cidr_ip
|
|
107
|
+
#
|
|
108
|
+
security_groups:
|
|
109
|
+
default:
|
|
110
|
+
description: The default security group
|
|
111
|
+
rules:
|
|
112
|
+
- source_group_name: default
|
|
113
|
+
source_group_account: "#{cloud_providers.aws.account}"
|
|
114
|
+
- protocol: tcp
|
|
115
|
+
from_port: 22
|
|
116
|
+
to_port: 22
|
|
117
|
+
source_ips: [0.0.0.0/0]
|
|
118
|
+
|
|
119
|
+
# OPTIONAL: The default security groups to create instances with
|
|
120
|
+
assigned_security_groups: [default]
|
|
121
|
+
|
|
122
|
+
# OPTIONAL: Automatically create security groups for each host and role
|
|
123
|
+
# EC2 doesn't allow one to change what groups an instance belongs to after
|
|
124
|
+
# creation, so its good to have some empty ones predefined.
|
|
125
|
+
auto_security_groups: true
|
|
126
|
+
|
|
127
|
+
# OPTIONAL: Automatically isolate security groups for each appname/environment
|
|
128
|
+
# by mangling their names to be appname_env_groupname
|
|
129
|
+
# This makes it safer to have staging and production coexist on the same EC2
|
|
130
|
+
# account, or even multiple apps
|
|
131
|
+
isolate_security_groups: true
|
|
132
|
+
|
|
133
|
+
# OPTIONAL: The packages to install on all instances
|
|
134
|
+
# You can install a specific version of a package by using a sub-array of pkg, version
|
|
135
|
+
# For example, packages: [[rake, 0.7.1], irb]
|
|
136
|
+
packages: [postfix, build-essential, git-core, ec2-ami-tools]
|
|
137
|
+
|
|
138
|
+
# OPTIONAL: gem sources to setup for rubygems
|
|
139
|
+
# gemsources: ["http://rubygems.org", "http://gems.github.com"]
|
|
140
|
+
|
|
141
|
+
# OPTIONAL: The gems to install on all instances
|
|
142
|
+
# You can install a specific version of a gem by using a sub-array of gem, version
|
|
143
|
+
# For example, gem: [[rails, 2.2.2], open4, aws-s3]
|
|
144
|
+
gems: [open4, aws-s3, bundler, [rubber, "#{Rubber.version}"]]
|
|
145
|
+
|
|
146
|
+
# OPTIONAL: A string prepended to shell command strings that cause multi
|
|
147
|
+
# statement shell commands to fail fast. You may need to comment this out
|
|
148
|
+
# on some platforms, but it works for me on linux/osx with a bash shell
|
|
149
|
+
#
|
|
150
|
+
stop_on_error_cmd: "function error_exit { exit 99; }; trap error_exit ERR"
|
|
151
|
+
|
|
152
|
+
# OPTIONAL: The default set of roles to use when creating a staging instance
|
|
153
|
+
# with "cap rubber:create_staging". By default this uses all the known roles,
|
|
154
|
+
# but this is not always desired for staging, so you can specify a different
|
|
155
|
+
# set here
|
|
156
|
+
#
|
|
157
|
+
staging_roles: "web,app,db:primary=true"
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
# OPTIONAL: Lets one assign amazon elastic IPs (static IPs) to your instances
|
|
161
|
+
# You should typically set this on the role/host level rather than
|
|
162
|
+
# globally , unless you really do want all instances to have a
|
|
163
|
+
# static IP
|
|
164
|
+
#
|
|
165
|
+
# use_static_ip: true
|
|
166
|
+
|
|
167
|
+
# OPTIONAL: Specifies an instance to be created in the given availability zone
|
|
168
|
+
# Availability zones are sepcified by amazon to be somewhat isolated
|
|
169
|
+
# from each other so that hardware failures in one zone shouldn't
|
|
170
|
+
# affect instances in another. As such, it is good to specify these
|
|
171
|
+
# for instances that need to be redundant to reduce your chance of
|
|
172
|
+
# downtime. You should typically set this on the role/host level
|
|
173
|
+
# rather than globally. Use rubber describe:zones to see the list
|
|
174
|
+
# of zones
|
|
175
|
+
# availability_zone: us-east-1a
|
|
176
|
+
|
|
177
|
+
# OPTIONAL: If you want t use Elastic Block Store (EBS) persistent
|
|
178
|
+
# volumes, add them to host specific overrides and they will get created
|
|
179
|
+
# and assigned to the instance. On initial creation, the volume will get
|
|
180
|
+
# attached _and_ formatted, but if your host disapears and you recreate
|
|
181
|
+
# it, the volume will only get remounted thereby preserving your data
|
|
182
|
+
#
|
|
183
|
+
# hosts:
|
|
184
|
+
# my_host:
|
|
185
|
+
# availability_zone: us-east-1a
|
|
186
|
+
# volumes:
|
|
187
|
+
# - size: 100 # size of vol in GBs
|
|
188
|
+
# zone: us-east-1a # zone to create volume in, needs to match host's zone
|
|
189
|
+
# device: /dev/sdh # OS device to attach volume to
|
|
190
|
+
# mount: /mnt/mysql # The directory to mount this volume to
|
|
191
|
+
# filesystem: ext3 # the filesystem to create on volume
|
|
192
|
+
# - size: 10 # size of vol in GBs
|
|
193
|
+
# zone: us-east-1a # zone to create volume in, needs to match host's zone
|
|
194
|
+
# device: /dev/sdi # OS device to attach volume to
|
|
195
|
+
# mount: /mnt/logs # The directory to mount this volume to
|
|
196
|
+
# filesystem: ext3 # the filesystem to create on volume
|
|
197
|
+
#
|
|
198
|
+
# # volumes without mount/filesystem can be used in raid arrays
|
|
199
|
+
#
|
|
200
|
+
# - size: 50 # size of vol in GBs
|
|
201
|
+
# zone: us-east-1a # zone to create volume in, needs to match host's zone
|
|
202
|
+
# device: /dev/sdx # OS device to attach volume to
|
|
203
|
+
# - size: 50 # size of vol in GBs
|
|
204
|
+
# zone: us-east-1a # zone to create volume in, needs to match host's zone
|
|
205
|
+
# device: /dev/sdy # OS device to attach volume to
|
|
206
|
+
#
|
|
207
|
+
# # Use some ephemeral volumes for raid array
|
|
208
|
+
# local_volumes:
|
|
209
|
+
# - partition_device: /dev/sdb
|
|
210
|
+
# zero: false # zeros out disk for improved performance
|
|
211
|
+
# - partition_device: /dev/sdc
|
|
212
|
+
# zero: false # zeros out disk for improved performance
|
|
213
|
+
#
|
|
214
|
+
# # for raid array, you'll need to add mdadm to packages. Likewise,
|
|
215
|
+
# # xfsprogs is needed for xfs filesystem support
|
|
216
|
+
# packages: [xfsprogs, mdadm]
|
|
217
|
+
# raid_volumes:
|
|
218
|
+
# - device: /dev/md0 # OS device to to create raid array on
|
|
219
|
+
# mount: /mnt/fast # The directory to mount this array to
|
|
220
|
+
# filesystem: xfs # the filesystem to create on array
|
|
221
|
+
# filesystem_opts: -f # the filesystem opts in mkfs
|
|
222
|
+
# raid_level: 0 # the raid level to use for the array
|
|
223
|
+
# source_devices: [/dev/sdx, /dev/sdy] # the source EBS devices we are creating raid array from
|
|
224
|
+
|
|
225
|
+
# OPTIONAL: You can also define your own variables here for use when
|
|
226
|
+
# transforming config files, and they will be available in your config
|
|
227
|
+
# templates as <%= rubber_env.var_name %>
|
|
228
|
+
#
|
|
229
|
+
# var_name: var_value
|
|
230
|
+
|
|
231
|
+
# OPTIONAL: Role specific overrides
|
|
232
|
+
# roles:
|
|
233
|
+
# somerole:
|
|
234
|
+
# packages: []
|
|
235
|
+
# somerole2:
|
|
236
|
+
# myconfig: someval
|
|
237
|
+
|
|
238
|
+
# OPTIONAL: Host specific overrides
|
|
239
|
+
# hosts:
|
|
240
|
+
# somehost:
|
|
241
|
+
# packages: []
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# rails tries to load this from generator dir, so skip it.
|
|
2
|
+
if __FILE__ !~ /rubber\/generators\/vulcanize/
|
|
3
|
+
|
|
4
|
+
env = ENV['RUBBER_ENV'] ||= (ENV['RAILS_ENV'] || 'development')
|
|
5
|
+
root = File.dirname(__FILE__) + '/../..'
|
|
6
|
+
|
|
7
|
+
# this tries first as a rails plugin then as a gem
|
|
8
|
+
$:.unshift "#{root}/vendor/plugins/rubber/lib/"
|
|
9
|
+
require 'rubber'
|
|
10
|
+
|
|
11
|
+
Rubber::initialize(root, env)
|
|
12
|
+
|
|
13
|
+
require 'rubber/tasks/rubber'
|
|
14
|
+
|
|
15
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# For running rake jobs through cron - only prints output if there is an error
|
|
4
|
+
#
|
|
5
|
+
# author mconway
|
|
6
|
+
# since 8/12/07
|
|
7
|
+
|
|
8
|
+
RAILS_ROOT = File.expand_path("..", File.dirname(__FILE__))
|
|
9
|
+
log = "#{RAILS_ROOT}/log/cron-rake-#{Time.now.tv_sec}.log"
|
|
10
|
+
begin
|
|
11
|
+
ident = File.basename(ARGV[-1]).gsub(/\W+/, "_")
|
|
12
|
+
log = "#{RAILS_ROOT}/log/cron-rake-#{ident}.log"
|
|
13
|
+
rescue
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
Dir.chdir(RAILS_ROOT)
|
|
17
|
+
args = %W{-l #{log} -- rake --trace} + ARGV
|
|
18
|
+
system "script/cron-sh", *args
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# For running jobs through cron - only prints output if there is an error
|
|
4
|
+
#
|
|
5
|
+
# author mconway
|
|
6
|
+
# since 8/12/07
|
|
7
|
+
|
|
8
|
+
RAILS_ROOT = File.expand_path("..", File.dirname(__FILE__))
|
|
9
|
+
log = "#{RAILS_ROOT}/log/cron-runner-#{Time.now.tv_sec}.log"
|
|
10
|
+
begin
|
|
11
|
+
ident = File.basename(ARGV[-1]).gsub(/\W+/, "_")
|
|
12
|
+
log = "#{RAILS_ROOT}/log/cron-runner-#{ident}.log"
|
|
13
|
+
rescue
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
Dir.chdir(RAILS_ROOT)
|
|
17
|
+
args = %W{-e -l #{log} -- RAILS_RUNNER} + ARGV
|
|
18
|
+
system "script/cron-sh", *args
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# For running shell commands through cron - only prints output if there is an error
|
|
4
|
+
#
|
|
5
|
+
# author mconway
|
|
6
|
+
# since 8/12/07
|
|
7
|
+
|
|
8
|
+
require 'optparse'
|
|
9
|
+
require 'ostruct'
|
|
10
|
+
require 'rubygems'
|
|
11
|
+
require 'open4'
|
|
12
|
+
|
|
13
|
+
options = OpenStruct.new
|
|
14
|
+
options.logfile = "/tmp/cron-sh-#{Time.now.tv_sec}.log"
|
|
15
|
+
options.echoerr = false
|
|
16
|
+
options.echoout = false
|
|
17
|
+
|
|
18
|
+
opts = OptionParser.new do |opts|
|
|
19
|
+
opts.banner = "Usage: cron-sh [options] <shell command>"
|
|
20
|
+
opts.separator "Runs the given command, sending all stdout/stderr to a logfile, but echoing"
|
|
21
|
+
opts.separator "the entire file if the command exits with an error"
|
|
22
|
+
opts.separator ""
|
|
23
|
+
opts.separator "Specific options:"
|
|
24
|
+
|
|
25
|
+
opts.on("-l", "--log logfile", "Log to given file instead of a default") do |val|
|
|
26
|
+
options.logfile = val
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
opts.on("-o", "--[no-]echoout", "Log _and_ echo stdout") do |val|
|
|
30
|
+
options.echoout = true
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
opts.on("-e", "--[no-]echoerr", "Log _and_ echo stderr") do |val|
|
|
34
|
+
options.echoerr = true
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
|
38
|
+
puts opts
|
|
39
|
+
exit
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
cmd = opts.parse(ARGV)
|
|
44
|
+
|
|
45
|
+
status = Open4::popen4(*cmd) do |pid, stdin, stdout, stderr|
|
|
46
|
+
File.open(options.logfile, "w") do | fh |
|
|
47
|
+
threads = []
|
|
48
|
+
threads << Thread.new(stdout) do |stdout|
|
|
49
|
+
stdout.each { |line| $stdout.puts line if options.echoout; fh.print line; fh.flush }
|
|
50
|
+
end
|
|
51
|
+
threads << Thread.new(stderr) do |stderr|
|
|
52
|
+
stderr.each { |line| $stderr.puts line if options.echoerr; fh.print line; fh.flush }
|
|
53
|
+
end
|
|
54
|
+
threads.each { |t| t.join }
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
result = status.exitstatus
|
|
59
|
+
if result != 0
|
|
60
|
+
puts ""
|
|
61
|
+
puts "*** Process exited with non-zero error code, full output follows"
|
|
62
|
+
puts "*** Command was: #{cmd.join(' ')}"
|
|
63
|
+
puts ""
|
|
64
|
+
puts IO.read(options.logfile)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
exit(result)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
gem "rubber", Rubber.version if Rubber::Util::is_bundler? && ! Rubber::Util::rubber_as_plugin?
|
|
2
|
+
|
|
3
|
+
if Rubber::Util::is_rails2?
|
|
4
|
+
m.gsub_file('script/cron-runner', /RAILS_RUNNER/, 'script/runner')
|
|
5
|
+
m.gsub_file('Rakefile', /RAILS_LOADER/, "require(File.join(File.dirname(__FILE__), 'config', 'boot'))")
|
|
6
|
+
m.gsub_file('Rakefile', /RAILS_TASKS/, "require 'tasks/rails'")
|
|
7
|
+
else
|
|
8
|
+
gsub_file('script/cron-runner', /RAILS_RUNNER/, 'rails runner')
|
|
9
|
+
gsub_file('Rakefile', /RAILS_LOADER/, '')
|
|
10
|
+
gsub_file('Rakefile', /RAILS_TASKS/, '')
|
|
11
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
|
|
2
|
+
namespace :rubber do
|
|
3
|
+
|
|
4
|
+
namespace :cassandra do
|
|
5
|
+
|
|
6
|
+
rubber.allow_optional_tasks(self)
|
|
7
|
+
|
|
8
|
+
after "rubber:install_packages", "rubber:cassandra:install"
|
|
9
|
+
|
|
10
|
+
task :install, :roles => :cassandra do
|
|
11
|
+
rubber.sudo_script 'install_cassandra', <<-ENDSCRIPT
|
|
12
|
+
if [[ ! -d "#{rubber_env.cassandra_dir}" ]]; then
|
|
13
|
+
wget -qNP /tmp #{rubber_env.cassandra_pkg_url}
|
|
14
|
+
tar -C #{rubber_env.cassandra_prefix} -zxf /tmp/apache-cassandra-#{rubber_env.cassandra_version}-bin.tar.gz
|
|
15
|
+
wget -qNO #{rubber_env.cassandra_dir}/jmxterm.jar http://downloads.sourceforge.net/project/cyclops-group/jmxterm/1.0-alpha-4/jmxterm-1.0-alpha-4-uber.jar
|
|
16
|
+
fi
|
|
17
|
+
ENDSCRIPT
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
after "rubber:bootstrap", "rubber:cassandra:bootstrap"
|
|
21
|
+
|
|
22
|
+
task :bootstrap, :roles => :cassandra do
|
|
23
|
+
instances = rubber_instances.for_role("cassandra") & rubber_instances.filtered
|
|
24
|
+
instances.each do |ic|
|
|
25
|
+
task_name = "_bootstrap_cassandra_#{ic.full_name}".to_sym()
|
|
26
|
+
task task_name, :hosts => ic.full_name do
|
|
27
|
+
env = rubber_cfg.environment.bind("cassandra", ic.name)
|
|
28
|
+
exists = capture("echo $(ls #{env.cassandra_data_dir}/ 2> /dev/null)")
|
|
29
|
+
if exists.strip.size == 0
|
|
30
|
+
# After everything installed on machines, we need the source tree
|
|
31
|
+
# on hosts in order to run rubber:config for bootstrapping the db
|
|
32
|
+
deploy.update_code
|
|
33
|
+
|
|
34
|
+
# Gen just the conf for cassandra
|
|
35
|
+
rubber.run_config(:RUBBER_ENV => RUBBER_ENV, :FILE => "role/cassandra", :FORCE => true, :deploy_path => release_path)
|
|
36
|
+
|
|
37
|
+
cassandra_start
|
|
38
|
+
|
|
39
|
+
# temporary hack to load initial schema from cassandra.yaml until
|
|
40
|
+
# something better available. Subsequent schema changes should be
|
|
41
|
+
# done using thrift system_* api
|
|
42
|
+
# http://wiki.apache.org/cassandra/FAQ#no_keyspaces
|
|
43
|
+
# http://wiki.apache.org/cassandra/LiveSchemaUpdates
|
|
44
|
+
if instances.size == 1
|
|
45
|
+
rubber.sudo_script "install_cassandra_schema", <<-ENDSCRIPT
|
|
46
|
+
echo run -b org.apache.cassandra.service:type=StorageService loadSchemaFromYAML |\
|
|
47
|
+
java -jar #{rubber_env.cassandra_dir}/jmxterm.jar -n -l #{ic.full_name}:#{rubber_env.cassandra_jmx_port}
|
|
48
|
+
ENDSCRIPT
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
send task_name
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
on :load do
|
|
57
|
+
rubber.serial_task self, :serial_restart, :roles => :cassandra do
|
|
58
|
+
cassandra_stop
|
|
59
|
+
cassandra_start
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
rubber.serial_task self, :serial_reload, :roles => :cassandra do
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def cassandra_stop
|
|
67
|
+
rsudo "pid=`cat #{rubber_env.cassandra_pid_file}` && kill $pid; while ps $pid &> /dev/null; do sleep 1; done"
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def cassandra_start
|
|
71
|
+
rsudo "nohup #{rubber_env.cassandra_dir}/bin/cassandra -p #{rubber_env.cassandra_pid_file} &> #{rubber_env.cassandra_log_dir}/startup.log"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
task :restart, :roles => :cassandra do
|
|
75
|
+
rubber.cassandra.stop
|
|
76
|
+
rubber.cassandra.start
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
task :stop, :roles => :cassandra do
|
|
80
|
+
cassandra_stop
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
task :start, :roles => :cassandra do
|
|
84
|
+
cassandra_start
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
end
|