axtro-rubber 1.2.3 → 1.5.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +210 -0
- data/VERSION +1 -1
- data/bin/vulcanize +16 -32
- data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +6 -6
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +2 -2
- data/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +3 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +29 -16
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +1 -1
- data/generators/vulcanize/templates/base/Rakefile +21 -0
- data/generators/vulcanize/templates/base/config/deploy.rb +1 -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 +56 -48
- 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 +28 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber.yml +8 -13
- data/generators/vulcanize/templates/base/script/cron-runner +1 -1
- data/generators/vulcanize/templates/base/templates.rb +9 -0
- data/generators/vulcanize/templates/base/templates.yml +5 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +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 +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_mysql → complete_passenger}/config/rubber/rubber-complete.yml +0 -0
- data/generators/vulcanize/templates/complete_passenger/templates.rb +9 -0
- data/generators/vulcanize/templates/complete_passenger/templates.yml +9 -0
- data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +1 -7
- data/generators/vulcanize/templates/complete_passenger_postgresql/templates.yml +4 -0
- data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +3 -3
- data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +1 -1
- data/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +5 -5
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +2 -2
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +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 +5 -5
- 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 +43 -8
- 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 +1 -1
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +19 -15
- data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +2 -2
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +2 -2
- data/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +3 -3
- data/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +5 -5
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +1 -1
- 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 +166 -49
- data/lib/generators/vulcanize/USAGE +6 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +51 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/deflate.conf +10 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/expires.conf +9 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/headers.conf +6 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/monit-apache.conf +8 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/ports.conf +8 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/apache/setenvif.conf +52 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +79 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache.auth +7 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +34 -0
- data/lib/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +6 -0
- data/lib/generators/vulcanize/templates/apache/templates.yml +1 -0
- data/lib/generators/vulcanize/templates/base/Capfile +14 -0
- data/lib/generators/vulcanize/templates/base/Rakefile +21 -0
- data/lib/generators/vulcanize/templates/base/config/deploy.rb +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 +28 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber.yml +235 -0
- data/lib/generators/vulcanize/templates/base/lib/tasks/rubber.rake +15 -0
- data/lib/generators/vulcanize/templates/base/script/cron-rake +18 -0
- data/lib/generators/vulcanize/templates/base/script/cron-runner +18 -0
- data/lib/generators/vulcanize/templates/base/script/cron-sh +67 -0
- data/lib/generators/vulcanize/templates/base/templates.rb +9 -0
- data/lib/generators/vulcanize/templates/base/templates.yml +6 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/deploy-cassandra.rb +88 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +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/{generators/vulcanize/templates/nginx_frontend → lib/generators/vulcanize/templates/nginx}/config/rubber/role/web_tools/nginx-tools.conf +0 -0
- data/{generators/vulcanize/templates/nginx_frontend → lib/generators/vulcanize/templates/nginx}/config/rubber/role/web_tools/tools-index.html +0 -0
- data/{generators/vulcanize/templates/nginx_frontend → lib/generators/vulcanize/templates/nginx}/config/rubber/role/web_tools/tools-nginx.auth +0 -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 +184 -0
- data/lib/rubber.rb +42 -6
- data/lib/rubber/cloud/aws.rb +8 -6
- data/lib/rubber/dns/dyndns.rb +6 -7
- data/lib/rubber/dns/zerigo.rb +66 -125
- data/lib/rubber/environment.rb +15 -7
- data/lib/rubber/generator.rb +37 -27
- data/lib/rubber/instance.rb +1 -1
- data/lib/rubber/railtie.rb +14 -0
- data/lib/rubber/recipes/rubber.rb +6 -0
- data/lib/rubber/recipes/rubber/deploy.rb +3 -3
- data/lib/rubber/recipes/rubber/instances.rb +28 -64
- data/lib/rubber/recipes/rubber/setup.rb +102 -56
- data/lib/rubber/recipes/rubber/utils.rb +39 -16
- data/lib/rubber/recipes/rubber/volumes.rb +6 -7
- data/lib/rubber/tasks/rubber.rb +1 -1
- data/lib/rubber/util.rb +36 -1
- data/rails/init.rb +1 -4
- data/test/environment_test.rb +9 -1
- data/test/generator_test.rb +49 -5
- data/test/instance_test.rb +1 -1
- data/test/test_helper.rb +6 -0
- data/test/util_test.rb +1 -1
- data/test/zerigo_test.rb +88 -0
- metadata +222 -62
- data/generators/vulcanize/templates/nginx_frontend/config/rubber/deploy-nginx_frontend.rb +0 -85
- data/generators/vulcanize/templates/nginx_frontend/config/rubber/role/nginx_frontend/logrotate-nginx_frontend +0 -14
- data/generators/vulcanize/templates/nginx_frontend/config/rubber/role/nginx_frontend/monit-nginx_frontend.conf +0 -8
- data/generators/vulcanize/templates/nginx_frontend/config/rubber/role/nginx_frontend/nginx.conf +0 -50
- data/generators/vulcanize/templates/nginx_frontend/config/rubber/role/nginx_frontend/nginx_frontend +0 -366
- data/generators/vulcanize/templates/nginx_frontend/config/rubber/rubber-nginx_frontend.yml +0 -22
- data/generators/vulcanize/templates/nginx_frontend/templates.yml +0 -1
- 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/unicorn/config/rubber/deploy-unicorn.rb +0 -43
- data/generators/vulcanize/templates/unicorn/config/rubber/role/nginx_frontend/unicorn_nginx_server.conf +0 -90
- data/generators/vulcanize/templates/unicorn/config/rubber/role/unicorn/logrotate-unicorn +0 -16
- data/generators/vulcanize/templates/unicorn/config/rubber/role/unicorn/monit-unicorn.conf +0 -10
- data/generators/vulcanize/templates/unicorn/config/rubber/role/unicorn/unicorn +0 -327
- data/generators/vulcanize/templates/unicorn/config/rubber/role/unicorn/unicorn.conf +0 -86
- data/generators/vulcanize/templates/unicorn/config/rubber/rubber-unicorn.yml +0 -13
data/lib/rubber/instance.rb
CHANGED
@@ -10,7 +10,7 @@ module Rubber
|
|
10
10
|
include Enumerable
|
11
11
|
|
12
12
|
def initialize(file)
|
13
|
-
|
13
|
+
Rubber.logger.debug{"Reading rubber instances from #{file}"}
|
14
14
|
@file = file
|
15
15
|
@items = {}
|
16
16
|
@artifacts = {'volumes' => {}, 'static_ips' => {}}
|
@@ -50,6 +50,11 @@ namespace :rubber do
|
|
50
50
|
set :rubber_env, rubber_cfg.environment.bind()
|
51
51
|
set :rubber_instances, rubber_cfg.instance
|
52
52
|
|
53
|
+
# Disable connecting to any Windows instance.
|
54
|
+
# pass -l to bash in :shell to that run also gets full env
|
55
|
+
# use a pty so we don't get "stdin: is not a tty" error output
|
56
|
+
set :default_run_options, :pty => true, :shell => "/bin/bash -l", :except => { :platform => 'windows' }
|
57
|
+
|
53
58
|
set :cloud, Rubber::Cloud::get_provider(rubber_env.cloud_provider || "aws", rubber_env, self)
|
54
59
|
|
55
60
|
load_roles() unless rubber_env.disable_auto_roles
|
@@ -57,6 +62,7 @@ namespace :rubber do
|
|
57
62
|
# the private key in the same folder, the public key should have the
|
58
63
|
# extension ".pub".
|
59
64
|
ssh_options[:keys] = rubber_env.cloud_providers[rubber_env.cloud_provider].key_file
|
65
|
+
ssh_options[:timeout] = fetch(:ssh_timeout, 5)
|
60
66
|
end
|
61
67
|
|
62
68
|
|
@@ -59,8 +59,8 @@ namespace :rubber do
|
|
59
59
|
Sets permissions of files in application directory to be owned by app_user.
|
60
60
|
DESC
|
61
61
|
task :setup_app_permissions do
|
62
|
-
|
63
|
-
|
62
|
+
rsudo "find #{shared_path} -name cached-copy -prune -o -print | xargs chown #{rubber_env.app_user}:#{rubber_env.app_user}"
|
63
|
+
rsudo "chown -R #{rubber_env.app_user}:#{rubber_env.app_user} #{current_path}/tmp"
|
64
64
|
end
|
65
65
|
|
66
66
|
def run_config(options={})
|
@@ -84,7 +84,7 @@ namespace :rubber do
|
|
84
84
|
put(File.read(secret), File.join(path, base, File.basename(secret)), :mode => "+r")
|
85
85
|
end
|
86
86
|
|
87
|
-
|
87
|
+
rsudo "cd #{path} && #{extra_env} rake rubber:config"
|
88
88
|
end
|
89
89
|
|
90
90
|
end
|
@@ -35,9 +35,7 @@ namespace :rubber do
|
|
35
35
|
# Add in roles that the given set of roles depends on
|
36
36
|
ir = Rubber::Configuration::RoleItem.expand_role_dependencies(ir, get_role_dependencies)
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
create_instance(instance_alias, ir, create_spot_instance, user_data)
|
38
|
+
create_instance(instance_alias, ir, create_spot_instance)
|
41
39
|
end
|
42
40
|
|
43
41
|
desc <<-DESC
|
@@ -158,7 +156,7 @@ namespace :rubber do
|
|
158
156
|
|
159
157
|
# Creates a new ec2 instance with the given alias and roles
|
160
158
|
# Configures aliases (/etc/hosts) on local and remote machines
|
161
|
-
def create_instance(instance_alias, instance_roles, create_spot_instance=false
|
159
|
+
def create_instance(instance_alias, instance_roles, create_spot_instance=false)
|
162
160
|
fatal "Instance already exists: #{instance_alias}" if rubber_instances[instance_alias]
|
163
161
|
|
164
162
|
role_names = instance_roles.collect{|x| x.name}
|
@@ -203,7 +201,7 @@ namespace :rubber do
|
|
203
201
|
|
204
202
|
if !create_spot_instance || (create_spot_instance && max_wait_time < 0)
|
205
203
|
logger.info "Creating instance #{ami}/#{ami_type}/#{security_groups.join(',') rescue 'Default'}/#{availability_zone || 'Default'}"
|
206
|
-
instance_id = cloud.create_instance(ami, ami_type, security_groups, availability_zone
|
204
|
+
instance_id = cloud.create_instance(ami, ami_type, security_groups, availability_zone)
|
207
205
|
end
|
208
206
|
|
209
207
|
logger.info "Instance #{instance_id} created"
|
@@ -218,59 +216,9 @@ namespace :rubber do
|
|
218
216
|
while true do
|
219
217
|
print "."
|
220
218
|
sleep 2
|
221
|
-
instance = cloud.describe_instances(instance_id).first
|
222
|
-
|
223
|
-
if instance[:state] == "running"
|
224
|
-
print "\n"
|
225
|
-
logger.info "Instance running, fetching hostname/ip data"
|
226
|
-
instance_item.external_host = instance[:external_host]
|
227
|
-
instance_item.external_ip = instance[:external_ip]
|
228
|
-
instance_item.internal_host = instance[:internal_host]
|
229
|
-
instance_item.zone = instance[:zone]
|
230
|
-
instance_item.platform = instance[:platform]
|
231
|
-
rubber_instances.save()
|
232
|
-
|
233
|
-
# setup amazon elastic ips if configured to do so
|
234
|
-
setup_static_ips
|
235
|
-
|
236
|
-
# Need to setup aliases so ssh doesn't give us errors when we
|
237
|
-
# later try? to connect to same ip but using alias
|
238
|
-
setup_local_aliases
|
239
|
-
|
240
|
-
# re-load the roles since we may have just defined new ones
|
241
|
-
load_roles() unless env.disable_auto_roles
|
242
|
-
|
243
|
-
# Connect to newly created instance and grab its internal ip
|
244
|
-
# so that we can update all aliases
|
245
|
-
|
246
|
-
task :_get_ip, :hosts => instance_item.external_ip do
|
247
|
-
# There's no good way to get the internal IP for a Windows host, so just set it to the external
|
248
|
-
# and let the router handle mapping to the internal network.
|
249
|
-
if instance_item.windows?
|
250
|
-
instance_item.internal_ip = instance_item.external_ip
|
251
|
-
else
|
252
|
-
instance_item.internal_ip = capture(print_ip_command).strip
|
253
|
-
end
|
254
|
-
|
255
|
-
rubber_instances.save()
|
256
|
-
end
|
257
219
|
|
258
|
-
|
259
|
-
# so retry on connect failure
|
260
|
-
begin
|
261
|
-
_get_ip
|
262
|
-
rescue ConnectionError
|
263
|
-
sleep 2
|
264
|
-
logger.info "Failed to connect to #{instance_alias} (#{instance_item.external_ip}), retrying"
|
265
|
-
retry
|
266
|
-
end
|
267
|
-
|
268
|
-
# Add the aliases for this instance to all other hosts
|
269
|
-
setup_remote_aliases
|
270
|
-
setup_dns_aliases
|
220
|
+
break if refresh_instance(instance_alias)
|
271
221
|
|
272
|
-
break
|
273
|
-
end
|
274
222
|
end
|
275
223
|
end
|
276
224
|
|
@@ -282,15 +230,21 @@ namespace :rubber do
|
|
282
230
|
fatal "Instance does not exist: #{instance_alias}" if ! instance_item
|
283
231
|
|
284
232
|
env = rubber_cfg.environment.bind(instance_item.role_names, instance_alias)
|
285
|
-
|
286
|
-
instance = cloud.describe_instances(instance_item.instance_id).first
|
233
|
+
|
234
|
+
instance = cloud.describe_instances(instance_item.instance_id).first rescue {}
|
287
235
|
|
288
236
|
if instance[:state] == "running"
|
289
|
-
|
237
|
+
print "\n"
|
238
|
+
logger.info "Instance running, fetching hostname/ip data"
|
290
239
|
instance_item.external_host = instance[:external_host]
|
291
240
|
instance_item.external_ip = instance[:external_ip]
|
292
241
|
instance_item.internal_host = instance[:internal_host]
|
293
242
|
instance_item.zone = instance[:zone]
|
243
|
+
instance_item.platform = instance[:platform]
|
244
|
+
rubber_instances.save()
|
245
|
+
|
246
|
+
# turn back on root ssh access if we are using root as the capistrano user for connecting
|
247
|
+
enable_root_ssh(instance_item.external_ip, fetch(:initial_ssh_user, 'ubuntu')) if (user == 'root' && ! instance_item.windows?)
|
294
248
|
|
295
249
|
# setup amazon elastic ips if configured to do so
|
296
250
|
setup_static_ips
|
@@ -305,7 +259,14 @@ namespace :rubber do
|
|
305
259
|
# Connect to newly created instance and grab its internal ip
|
306
260
|
# so that we can update all aliases
|
307
261
|
task :_get_ip, :hosts => instance_item.external_ip do
|
308
|
-
|
262
|
+
# There's no good way to get the internal IP for a Windows host, so just set it to the external
|
263
|
+
# and let the router handle mapping to the internal network.
|
264
|
+
if instance_item.windows?
|
265
|
+
instance_item.internal_ip = instance_item.external_ip
|
266
|
+
else
|
267
|
+
instance_item.internal_ip = capture(print_ip_command).strip
|
268
|
+
end
|
269
|
+
|
309
270
|
rubber_instances.save()
|
310
271
|
end
|
311
272
|
|
@@ -323,7 +284,10 @@ namespace :rubber do
|
|
323
284
|
# Add the aliases for this instance to all other hosts
|
324
285
|
setup_remote_aliases
|
325
286
|
setup_dns_aliases
|
287
|
+
|
288
|
+
return true
|
326
289
|
end
|
290
|
+
return false
|
327
291
|
end
|
328
292
|
|
329
293
|
|
@@ -337,10 +301,10 @@ namespace :rubber do
|
|
337
301
|
value = Capistrano::CLI.ui.ask("About to DESTROY #{instance_alias} (#{instance_item.instance_id}) in mode #{RUBBER_ENV}. Are you SURE [yes/NO]?: ")
|
338
302
|
fatal("Exiting", 0) if value != "yes"
|
339
303
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
304
|
+
if instance_item.static_ip
|
305
|
+
value = Capistrano::CLI.ui.ask("Instance has a static ip, do you want to release it? [y/N]?: ")
|
306
|
+
destroy_static_ip(instance_item.static_ip) if value =~ /^y/
|
307
|
+
end
|
344
308
|
|
345
309
|
if instance_item.volumes
|
346
310
|
value = Capistrano::CLI.ui.ask("Instance has persistent volumes, do you want to destroy them? [y/N]?: ")
|
@@ -1,14 +1,12 @@
|
|
1
1
|
namespace :rubber do
|
2
2
|
|
3
|
-
# Disable connecting to any Windows instance.
|
4
|
-
set :default_run_options, :except => { :platform => 'windows' }
|
5
|
-
|
6
3
|
desc <<-DESC
|
7
4
|
Bootstraps instances by setting timezone, installing packages and gems
|
8
5
|
DESC
|
9
6
|
task :bootstrap do
|
10
|
-
set_timezone
|
11
7
|
link_bash
|
8
|
+
set_timezone
|
9
|
+
enable_multiverse
|
12
10
|
upgrade_packages
|
13
11
|
install_packages
|
14
12
|
setup_volumes
|
@@ -17,6 +15,33 @@ namespace :rubber do
|
|
17
15
|
deploy.setup
|
18
16
|
end
|
19
17
|
|
18
|
+
# Sets up instance to allow root access (e.g. recent canonical AMIs)
|
19
|
+
def enable_root_ssh(ip, initial_ssh_user)
|
20
|
+
old_user = user
|
21
|
+
begin
|
22
|
+
set :user, initial_ssh_user
|
23
|
+
|
24
|
+
task :_allow_root_ssh, :hosts => ip do
|
25
|
+
rsudo "cp /home/#{initial_ssh_user}/.ssh/authorized_keys /root/.ssh/"
|
26
|
+
end
|
27
|
+
|
28
|
+
begin
|
29
|
+
_allow_root_ssh
|
30
|
+
rescue ConnectionError => e
|
31
|
+
if e.message =~ /Net::SSH::AuthenticationFailed/
|
32
|
+
logger.info "Can't connect as user #{initial_ssh_user} to #{ip}, assuming root allowed"
|
33
|
+
else
|
34
|
+
sleep 2
|
35
|
+
logger.info "Failed to connect to #{ip}, retrying"
|
36
|
+
retry
|
37
|
+
end
|
38
|
+
end
|
39
|
+
ensure
|
40
|
+
set :user, old_user
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
20
45
|
desc <<-DESC
|
21
46
|
Sets up aliases for instance hostnames based on contents of instance.yml.
|
22
47
|
Generates /etc/hosts for local/remote machines and sets hostname on
|
@@ -167,7 +192,9 @@ namespace :rubber do
|
|
167
192
|
put filtered, hosts_file
|
168
193
|
|
169
194
|
# Setup hostname on instance so shell, etcs have nice display
|
170
|
-
|
195
|
+
rsudo "echo $CAPISTRANO:HOST$ > /etc/hostname && hostname $CAPISTRANO:HOST$"
|
196
|
+
# Newer ubuntus ec2-init script always resets hostname, so prevent it
|
197
|
+
rsudo "mkdir -p /etc/ec2-init && echo compat=0 > /etc/ec2-init/is-compat-env"
|
171
198
|
end
|
172
199
|
|
173
200
|
# TODO
|
@@ -221,12 +248,20 @@ namespace :rubber do
|
|
221
248
|
gem_helper(false)
|
222
249
|
end
|
223
250
|
|
251
|
+
desc <<-DESC
|
252
|
+
Install ruby gems defined in Gemfile
|
253
|
+
DESC
|
254
|
+
after "deploy:update_code", "rubber:install_bundler_gems" if Rubber::Util.is_bundler?
|
255
|
+
task :install_bundler_gems do
|
256
|
+
rsudo "cd #{current_release} && RAILS_ENV=#{RUBBER_ENV} bundle install --without development test"
|
257
|
+
end
|
258
|
+
|
224
259
|
desc <<-DESC
|
225
260
|
Install ruby gems defined in the rails environment.rb
|
226
261
|
DESC
|
227
|
-
after "rubber:config", "rubber:install_rails_gems" if Rubber::Util.
|
262
|
+
after "rubber:config", "rubber:install_rails_gems" if (Rubber::Util::is_rails2? && !Rubber::Util.is_bundler?)
|
228
263
|
task :install_rails_gems do
|
229
|
-
|
264
|
+
rsudo "cd #{current_release} && RAILS_ENV=#{RUBBER_ENV} rake gems:install"
|
230
265
|
end
|
231
266
|
|
232
267
|
desc <<-DESC
|
@@ -248,46 +283,43 @@ namespace :rubber do
|
|
248
283
|
|
249
284
|
logger.info "Installing gems:#{expanded_gem_list}"
|
250
285
|
open("/tmp/gem_helper", "w") {|f| f.write(gem_helper_script)}
|
251
|
-
system "
|
286
|
+
system "ruby /tmp/gem_helper install #{expanded_gem_list}"
|
252
287
|
end
|
253
288
|
|
289
|
+
set :gem_sources_helper_script, <<-'ENDSCRIPT'
|
290
|
+
sources = ARGV
|
291
|
+
|
292
|
+
installed = []
|
293
|
+
`gem sources -l`.each_line do |line|
|
294
|
+
line = line.strip
|
295
|
+
installed << line if line.size > 0 && line =~ /^[^*]/
|
296
|
+
end
|
297
|
+
|
298
|
+
to_install = sources - installed
|
299
|
+
to_remove = installed - sources
|
300
|
+
|
301
|
+
if to_install.size > 0
|
302
|
+
to_install.each do |source|
|
303
|
+
system "gem sources -a #{source}"
|
304
|
+
fail "Unable to add gem sources" if $?.exitstatus > 0
|
305
|
+
end
|
306
|
+
end
|
307
|
+
if to_remove.size > 0
|
308
|
+
to_remove.each do |source|
|
309
|
+
system "gem sources -r #{source}"
|
310
|
+
fail "Unable to remove gem sources" if $?.exitstatus > 0
|
311
|
+
end
|
312
|
+
end
|
313
|
+
ENDSCRIPT
|
314
|
+
|
254
315
|
desc <<-DESC
|
255
316
|
Setup ruby gems sources. Set 'gemsources' in rubber.yml to \
|
256
317
|
be an array of URI strings.
|
257
318
|
DESC
|
258
319
|
task :setup_gem_sources do
|
259
320
|
if rubber_env.gemsources
|
260
|
-
script = prepare_script 'gem_sources_helper',
|
261
|
-
|
262
|
-
|
263
|
-
sources = ARGV
|
264
|
-
|
265
|
-
installed = []
|
266
|
-
`gem sources -l`.grep(/^[^*]/) do |line|
|
267
|
-
line = line.strip
|
268
|
-
installed << line if line.size > 0
|
269
|
-
end
|
270
|
-
|
271
|
-
to_install = sources - installed
|
272
|
-
to_remove = installed - sources
|
273
|
-
|
274
|
-
if to_install.size > 0
|
275
|
-
to_install.each do |source|
|
276
|
-
system "gem sources -a #{source}"
|
277
|
-
fail "Unable to add gem sources" if $?.exitstatus > 0
|
278
|
-
end
|
279
|
-
end
|
280
|
-
if to_remove.size > 0
|
281
|
-
to_remove.each do |source|
|
282
|
-
system "gem sources -r #{source}"
|
283
|
-
fail "Unable to remove gem sources" if $?.exitstatus > 0
|
284
|
-
end
|
285
|
-
end
|
286
|
-
|
287
|
-
'EOF'
|
288
|
-
ENDSCRIPT
|
289
|
-
|
290
|
-
sudo "sh #{script} #{rubber_env.gemsources.join(' ')}"
|
321
|
+
script = prepare_script 'gem_sources_helper', gem_sources_helper_script, nil
|
322
|
+
rsudo "ruby #{script} #{rubber_env.gemsources.join(' ')}"
|
291
323
|
end
|
292
324
|
end
|
293
325
|
|
@@ -296,7 +328,7 @@ namespace :rubber do
|
|
296
328
|
You can override this task if you don't want this to happen
|
297
329
|
DESC
|
298
330
|
task :link_bash do
|
299
|
-
|
331
|
+
rsudo "ln -sf /bin/bash /bin/sh"
|
300
332
|
end
|
301
333
|
|
302
334
|
desc <<-DESC
|
@@ -310,10 +342,28 @@ namespace :rubber do
|
|
310
342
|
DESC
|
311
343
|
task :set_timezone do
|
312
344
|
opts = get_host_options('timezone')
|
313
|
-
|
314
|
-
|
345
|
+
rsudo "echo $CAPISTRANO:VAR$ > /etc/timezone", opts
|
346
|
+
rsudo "cp /usr/share/zoneinfo/$CAPISTRANO:VAR$ /etc/localtime", opts
|
315
347
|
# restart syslog so that times match timezone
|
316
|
-
|
348
|
+
sudo_script 'restart_syslog', <<-ENDSCRIPT
|
349
|
+
if [[ -x /etc/init.d/sysklogd ]]; then
|
350
|
+
/etc/init.d/sysklogd restart
|
351
|
+
elif [[ -x /etc/init.d/rsyslog ]]; then
|
352
|
+
service rsyslog restart
|
353
|
+
fi
|
354
|
+
ENDSCRIPT
|
355
|
+
end
|
356
|
+
|
357
|
+
desc <<-DESC
|
358
|
+
Enable the ubuntu multiverse source for getting packages like
|
359
|
+
ec2-ami-tools used for bundling images
|
360
|
+
DESC
|
361
|
+
task :enable_multiverse do
|
362
|
+
sudo_script 'enable_multiverse', <<-ENDSCRIPT
|
363
|
+
if ! grep -qc multiverse /etc/apt/sources.list /etc/apt/sources.list.d/* &> /dev/null; then
|
364
|
+
cat /etc/apt/sources.list | sed 's/main universe/multiverse/' > /etc/apt/sources.list.d/rubber-multiverse-source.list
|
365
|
+
fi
|
366
|
+
ENDSCRIPT
|
317
367
|
end
|
318
368
|
|
319
369
|
def update_dyndns(instance_item)
|
@@ -345,16 +395,16 @@ namespace :rubber do
|
|
345
395
|
expanded_pkg_list.join(' ')
|
346
396
|
end
|
347
397
|
|
348
|
-
|
398
|
+
rsudo "apt-get -q update"
|
349
399
|
if upgrade
|
350
|
-
|
400
|
+
rsudo "export DEBIAN_FRONTEND=noninteractive; apt-get -q -o Dpkg::Options::=--force-confold -y --force-yes dist-upgrade"
|
351
401
|
else
|
352
|
-
|
402
|
+
rsudo "export DEBIAN_FRONTEND=noninteractive; apt-get -q -o Dpkg::Options::=--force-confold -y --force-yes install $CAPISTRANO:VAR$", opts
|
353
403
|
end
|
354
404
|
end
|
355
405
|
|
356
406
|
def custom_package(url_base, name, ver, install_test)
|
357
|
-
rubber.
|
407
|
+
rubber.sudo_script "install_#{name}", <<-ENDSCRIPT
|
358
408
|
if [[ #{install_test} ]]; then
|
359
409
|
arch=`uname -m`
|
360
410
|
if [ "$arch" = "x86_64" ]; then
|
@@ -363,7 +413,7 @@ namespace :rubber do
|
|
363
413
|
src="#{url_base}/#{name}_#{ver}_i386.deb"
|
364
414
|
fi
|
365
415
|
src_file="${src##*/}"
|
366
|
-
wget -
|
416
|
+
wget -qNP /tmp ${src}
|
367
417
|
dpkg -i /tmp/${src_file}
|
368
418
|
fi
|
369
419
|
ENDSCRIPT
|
@@ -389,8 +439,6 @@ namespace :rubber do
|
|
389
439
|
# calls to rubygems
|
390
440
|
#
|
391
441
|
set :gem_helper_script, <<-'ENDSCRIPT'
|
392
|
-
ruby - $@ <<-'EOF'
|
393
|
-
|
394
442
|
gem_cmd = ARGV[0]
|
395
443
|
gems = ARGV[1..-1]
|
396
444
|
cmd = "gem #{gem_cmd} --no-rdoc --no-ri"
|
@@ -408,7 +456,7 @@ namespace :rubber do
|
|
408
456
|
end
|
409
457
|
|
410
458
|
installed = {}
|
411
|
-
`gem list --local`.
|
459
|
+
`gem list --local`.each_line do |line|
|
412
460
|
parts = line.scan(/(.*) \((.*)\)/).first
|
413
461
|
next unless parts && parts.size == 2
|
414
462
|
installed[parts[0]] = parts[1].split(",")
|
@@ -429,8 +477,6 @@ namespace :rubber do
|
|
429
477
|
system "#{cmd} #{gem_list}"
|
430
478
|
fail "Unable to install gems" if $?.exitstatus > 0
|
431
479
|
end
|
432
|
-
|
433
|
-
'EOF'
|
434
480
|
ENDSCRIPT
|
435
481
|
|
436
482
|
# Helper for installing gems,allows one to respond to prompts
|
@@ -450,11 +496,11 @@ namespace :rubber do
|
|
450
496
|
end
|
451
497
|
|
452
498
|
if opts.size > 0
|
453
|
-
script = prepare_script('gem_helper', gem_helper_script)
|
454
|
-
|
499
|
+
script = prepare_script('gem_helper', gem_helper_script, nil)
|
500
|
+
rsudo "ruby #{script} #{cmd} $CAPISTRANO:VAR$", opts do |ch, str, data|
|
455
501
|
handle_gem_prompt(ch, data, str)
|
456
502
|
end
|
457
503
|
end
|
458
504
|
end
|
459
505
|
|
460
|
-
end
|
506
|
+
end
|