rubber 1.0.2
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 +39 -0
- data/COPYING +339 -0
- data/README +6 -0
- data/TODO +11 -0
- data/VERSION +1 -0
- data/bin/vulcanize +41 -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 +5 -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 +62 -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 +30 -0
- data/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +7 -0
- data/generators/vulcanize/templates/apache/templates.yml +1 -0
- data/generators/vulcanize/templates/base/Capfile +14 -0
- data/generators/vulcanize/templates/base/config/deploy.rb +55 -0
- data/generators/vulcanize/templates/base/config/rubber/common/crontab +16 -0
- data/generators/vulcanize/templates/base/config/rubber/common/profile.rc +9 -0
- data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +104 -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.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_mysql/config/rubber/role/haproxy/haproxy-passenger.conf +19 -0
- data/generators/vulcanize/templates/complete_passenger_mysql/config/rubber/rubber-complete.yml +40 -0
- data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +10 -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 +6 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +17 -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/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 +251 -0
- data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +32 -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/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 +80 -0
- data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
- data/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +57 -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 +11 -0
- data/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +156 -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 +167 -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 +46 -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 +173 -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/passenger/config/rubber/deploy-passenger.rb +37 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/munin-passenger-sudoers.conf +6 -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 +46 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/passenger/passenger.conf +10 -0
- data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +12 -0
- data/generators/vulcanize/templates/passenger/templates.yml +1 -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 +10 -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 +67 -0
- data/lib/capistrano/hostcmd.rb +12 -0
- data/lib/rubber.rb +38 -0
- data/lib/rubber/capistrano.rb +1 -0
- data/lib/rubber/cloud.rb +13 -0
- data/lib/rubber/cloud/aws.rb +305 -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 +69 -0
- data/lib/rubber/dns/dyndns.rb +63 -0
- data/lib/rubber/dns/nettica.rb +73 -0
- data/lib/rubber/dns/zerigo.rb +131 -0
- data/lib/rubber/environment.rb +161 -0
- data/lib/rubber/generator.rb +197 -0
- data/lib/rubber/instance.rb +165 -0
- data/lib/rubber/recipes/rubber.rb +89 -0
- data/lib/rubber/recipes/rubber/bundles.rb +28 -0
- data/lib/rubber/recipes/rubber/deploy.rb +90 -0
- data/lib/rubber/recipes/rubber/instances.rb +348 -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 +357 -0
- data/lib/rubber/recipes/rubber/static_ips.rb +107 -0
- data/lib/rubber/recipes/rubber/utils.rb +203 -0
- data/lib/rubber/recipes/rubber/volumes.rb +264 -0
- data/lib/rubber/tasks/rubber.rb +221 -0
- data/lib/rubber/util.rb +37 -0
- data/test/environment_test.rb +118 -0
- data/test/generator_test.rb +323 -0
- data/test/instance_test.rb +93 -0
- data/test/test_helper.rb +4 -0
- data/test/util_test.rb +16 -0
- metadata +274 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
role_dependencies:
|
|
3
|
+
web: [nginx, haproxy]
|
|
4
|
+
app: [mongrel]
|
|
5
|
+
web_tools: [nginx]
|
|
6
|
+
|
|
7
|
+
haproxy_listen_port: 9000
|
|
8
|
+
web_port: 80
|
|
9
|
+
web_ssl_port: 443
|
|
10
|
+
web_tools_port: 8080
|
|
11
|
+
web_tools_ssl_port: 8443
|
|
12
|
+
|
|
13
|
+
security_groups:
|
|
14
|
+
web:
|
|
15
|
+
description: "To open up port #{web_port}/#{web_ssl_port} for http server on web role"
|
|
16
|
+
rules:
|
|
17
|
+
- protocol: tcp
|
|
18
|
+
from_port: "#{web_port}"
|
|
19
|
+
to_port: "#{web_port}"
|
|
20
|
+
source_ips: [0.0.0.0/0]
|
|
21
|
+
- protocol: tcp
|
|
22
|
+
from_port: "#{web_ssl_port}"
|
|
23
|
+
to_port: "#{web_ssl_port}"
|
|
24
|
+
source_ips: [0.0.0.0/0]
|
|
25
|
+
web_tools:
|
|
26
|
+
description: "To open up port #{web_tools_port}/#{web_tools_ssl_port} for internal/tools http server"
|
|
27
|
+
rules:
|
|
28
|
+
- protocol: tcp
|
|
29
|
+
from_port: "#{web_tools_port}"
|
|
30
|
+
to_port: "#{web_tools_port}"
|
|
31
|
+
source_ips: [0.0.0.0/0]
|
|
32
|
+
- protocol: tcp
|
|
33
|
+
from_port: "#{web_tools_ssl_port}"
|
|
34
|
+
to_port: "#{web_tools_ssl_port}"
|
|
35
|
+
source_ips: [0.0.0.0/0]
|
|
36
|
+
|
|
37
|
+
roles:
|
|
38
|
+
web:
|
|
39
|
+
assigned_security_groups: [web]
|
|
40
|
+
web_tools:
|
|
41
|
+
assigned_security_groups: [web_tools]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<%
|
|
2
|
+
@path = "/etc/haproxy/haproxy.cfg"
|
|
3
|
+
@additive = ["# start haproxy passenger", "# end haproxy passenger"]
|
|
4
|
+
%>
|
|
5
|
+
|
|
6
|
+
<%
|
|
7
|
+
backend_hosts = rubber_instances.for_role('passenger').collect { |i| i.name }
|
|
8
|
+
%>
|
|
9
|
+
|
|
10
|
+
listen passenger_proxy 0.0.0.0:<%= rubber_env.web_port %>
|
|
11
|
+
<% backend_hosts.each do |server| %>
|
|
12
|
+
server <%= server %> <%= server %>:<%= rubber_env.passenger_listen_port %> maxconn <%= rubber_env.max_app_connections %> check
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
listen passenger_proxy 0.0.0.0:<%= rubber_env.web_ssl_port %>
|
|
16
|
+
mode tcp
|
|
17
|
+
<% backend_hosts.each do |server| %>
|
|
18
|
+
server <%= server %> <%= server %>:<%= rubber_env.passenger_listen_ssl_port %> maxconn <%= rubber_env.max_app_connections %> check
|
|
19
|
+
<% end %>
|
data/generators/vulcanize/templates/complete_passenger_mysql/config/rubber/rubber-complete.yml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
role_dependencies:
|
|
3
|
+
web: [haproxy]
|
|
4
|
+
app: [passenger]
|
|
5
|
+
web_tools: [apache]
|
|
6
|
+
|
|
7
|
+
web_port: 80
|
|
8
|
+
web_ssl_port: 443
|
|
9
|
+
web_tools_port: 8080
|
|
10
|
+
web_tools_ssl_port: 8443
|
|
11
|
+
|
|
12
|
+
security_groups:
|
|
13
|
+
web:
|
|
14
|
+
description: "To open up port #{web_port}/#{web_ssl_port} for http server on web role"
|
|
15
|
+
rules:
|
|
16
|
+
- protocol: tcp
|
|
17
|
+
from_port: "#{web_port}"
|
|
18
|
+
to_port: "#{web_port}"
|
|
19
|
+
source_ips: [0.0.0.0/0]
|
|
20
|
+
- protocol: tcp
|
|
21
|
+
from_port: "#{web_ssl_port}"
|
|
22
|
+
to_port: "#{web_ssl_port}"
|
|
23
|
+
source_ips: [0.0.0.0/0]
|
|
24
|
+
web_tools:
|
|
25
|
+
description: "To open up port #{web_tools_port}/#{web_tools_ssl_port} for internal/tools http server"
|
|
26
|
+
rules:
|
|
27
|
+
- protocol: tcp
|
|
28
|
+
from_port: "#{web_tools_port}"
|
|
29
|
+
to_port: "#{web_tools_port}"
|
|
30
|
+
source_ips: [0.0.0.0/0]
|
|
31
|
+
- protocol: tcp
|
|
32
|
+
from_port: "#{web_tools_ssl_port}"
|
|
33
|
+
to_port: "#{web_tools_ssl_port}"
|
|
34
|
+
source_ips: [0.0.0.0/0]
|
|
35
|
+
|
|
36
|
+
roles:
|
|
37
|
+
web:
|
|
38
|
+
assigned_security_groups: [web]
|
|
39
|
+
web_tools:
|
|
40
|
+
assigned_security_groups: [web_tools]
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
|
|
2
|
+
namespace :rubber do
|
|
3
|
+
namespace :cruise do
|
|
4
|
+
|
|
5
|
+
rubber.allow_optional_tasks(self)
|
|
6
|
+
|
|
7
|
+
# want ssh keys to be generated before we try and print it out
|
|
8
|
+
after "custom_install_base", "rubber:cruise:custom_install"
|
|
9
|
+
|
|
10
|
+
task :custom_install, :roles => :cruise do
|
|
11
|
+
rubber.sudo_script 'install_cruise', <<-ENDSCRIPT
|
|
12
|
+
export CRUISE_HOME="#{rubber_env.cruise_dir}"
|
|
13
|
+
|
|
14
|
+
if [[ ! -d $CRUISE_HOME ]]; then
|
|
15
|
+
git clone git://github.com/sml/cruisecontrol.rb.git $CRUISE_HOME
|
|
16
|
+
fi
|
|
17
|
+
ENDSCRIPT
|
|
18
|
+
|
|
19
|
+
logger.info("\n#######################################################################\n\n")
|
|
20
|
+
logger.info("This machine needs access to your source repository for cruise control")
|
|
21
|
+
logger.info("run 'cap rubber:cruise:setup_project' once access has been granted")
|
|
22
|
+
logger.info("then run 'cap rubber:cruise:start' to start the cruise web server")
|
|
23
|
+
logger.info("ssh public key:\n#{capture('cat ~/.ssh/id_dsa.pub')}")
|
|
24
|
+
logger.info("\n#######################################################################\n\n")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
task :setup_project, :roles => :cruise do
|
|
28
|
+
rubber.sudo_script 'setup_project', <<-ENDSCRIPT
|
|
29
|
+
|
|
30
|
+
export CRUISE_HOME="#{rubber_env.cruise_dir}"
|
|
31
|
+
export CRUISE_DATA_ROOT="#{rubber_env.cruise_data_dir}"
|
|
32
|
+
export CRUISE_PROJECT_ROOT="#{rubber_env.cruise_project_dir}"
|
|
33
|
+
|
|
34
|
+
if [[ ! -d $CRUISE_HOME ]]; then
|
|
35
|
+
git clone git://github.com/sml/cruisecontrol.rb.git #{rubber_env.cruise_dir}
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
if [[ ! -d $CRUISE_PROJECT_ROOT ]]; then
|
|
39
|
+
if [[ -z "#{rubber_env.cruise_repository}" ]]; then
|
|
40
|
+
echo "cruise_repository must be set in rubber env"
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
cd $CRUISE_HOME
|
|
45
|
+
echo "Adding project repository to cruise: #{rubber_env.cruise_repository}"
|
|
46
|
+
./cruise add #{rubber_env.app_name} #{rubber_env.cruise_repository}
|
|
47
|
+
mkdir -p $CRUISE_PROJECT_ROOT/log
|
|
48
|
+
cd $CRUISE_PROJECT_ROOT && rake db:create RAILS_ENV=test
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
ENDSCRIPT
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
desc "Start cruise control daemon"
|
|
56
|
+
task :start, :roles => :cruise do
|
|
57
|
+
run "/etc/init.d/cruise start"
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
desc "Stop cruise control daemon"
|
|
61
|
+
task :stop, :roles => :cruise, :on_error => :continue do
|
|
62
|
+
run "/etc/init.d/cruise stop"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
desc "Restart cruise control daemon"
|
|
66
|
+
task :restart, :roles => :cruise do
|
|
67
|
+
stop
|
|
68
|
+
start
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<%
|
|
2
|
+
@path = "/etc/init.d/cruise"
|
|
3
|
+
@perms = 0755
|
|
4
|
+
%>#!/usr/bin/env ruby
|
|
5
|
+
|
|
6
|
+
require "fileutils"
|
|
7
|
+
include FileUtils
|
|
8
|
+
|
|
9
|
+
require "rubygems"
|
|
10
|
+
|
|
11
|
+
begin
|
|
12
|
+
gem 'mongrel'
|
|
13
|
+
rescue => e
|
|
14
|
+
puts "Error: daemon mode of CC.rb requires mongrel installed"
|
|
15
|
+
exit 1
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def cruise_path
|
|
19
|
+
'<%= rubber_env.cruise_dir %>'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
command = ARGV.shift
|
|
23
|
+
|
|
24
|
+
case command
|
|
25
|
+
when 'start'
|
|
26
|
+
cd cruise_path
|
|
27
|
+
system "./cruise start -d"
|
|
28
|
+
exit 0
|
|
29
|
+
when 'stop'
|
|
30
|
+
system "mongrel_rails stop -P #{cruise_path}/tmp/pids/mongrel.pid"
|
|
31
|
+
Dir["#{cruise_path}/tmp/pids/builders/*.pid"].each do |pid_file|
|
|
32
|
+
pid = File.open(pid_file){|f| f.read }
|
|
33
|
+
system "kill -9 #{pid}"
|
|
34
|
+
rm pid_file
|
|
35
|
+
end
|
|
36
|
+
exit 0
|
|
37
|
+
else
|
|
38
|
+
p "Usage: /etc/init.d/cruise start|stop"
|
|
39
|
+
exit 1
|
|
40
|
+
end
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
<%
|
|
2
|
+
@path = '/etc/mysql/my.cnf'
|
|
3
|
+
@post = '/etc/init.d/mysql restart'
|
|
4
|
+
%>
|
|
5
|
+
|
|
6
|
+
# Generated by rubber for host <%= rubber_instances[rubber_env.host].external_ip %>
|
|
7
|
+
#
|
|
8
|
+
# The MySQL database server configuration file.
|
|
9
|
+
#
|
|
10
|
+
# You can copy this to one of:
|
|
11
|
+
# - "/etc/mysql/my.cnf" to set global options,
|
|
12
|
+
# - "~/.my.cnf" to set user-specific options.
|
|
13
|
+
#
|
|
14
|
+
# One can use all long options that the program supports.
|
|
15
|
+
# Run program with --help to get a list of available options and with
|
|
16
|
+
# --print-defaults to see which it would actually understand and use.
|
|
17
|
+
#
|
|
18
|
+
# For explanations see
|
|
19
|
+
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
|
|
20
|
+
|
|
21
|
+
# This will be passed to all mysql clients
|
|
22
|
+
# It has been reported that passwords should be enclosed with ticks/quotes
|
|
23
|
+
# escpecially if they contain "#" chars...
|
|
24
|
+
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
|
|
25
|
+
[client]
|
|
26
|
+
loose-default-character-set = utf8
|
|
27
|
+
port = 3306
|
|
28
|
+
socket = /var/run/mysqld/mysqld.sock
|
|
29
|
+
|
|
30
|
+
# Here is entries for some specific programs
|
|
31
|
+
# The following values assume you have at least 32M ram
|
|
32
|
+
|
|
33
|
+
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
|
|
34
|
+
[mysqld_safe]
|
|
35
|
+
socket = /var/run/mysqld/mysqld.sock
|
|
36
|
+
nice = 0
|
|
37
|
+
|
|
38
|
+
[mysqld]
|
|
39
|
+
#
|
|
40
|
+
# * Basic Settings
|
|
41
|
+
#
|
|
42
|
+
default-character-set = utf8
|
|
43
|
+
user = mysql
|
|
44
|
+
pid-file = /var/run/mysqld/mysqld.pid
|
|
45
|
+
socket = /var/run/mysqld/mysqld.sock
|
|
46
|
+
port = 3306
|
|
47
|
+
basedir = /usr
|
|
48
|
+
datadir = /var/lib/mysql
|
|
49
|
+
tmpdir = /tmp
|
|
50
|
+
language = /usr/share/mysql/english
|
|
51
|
+
skip-external-locking
|
|
52
|
+
connect_timeout = 30
|
|
53
|
+
|
|
54
|
+
#
|
|
55
|
+
# Instead of skip-networking the default is now to listen only on
|
|
56
|
+
# localhost which is more compatible and is not less secure.
|
|
57
|
+
# bind-address = 127.0.0.1
|
|
58
|
+
#
|
|
59
|
+
# * Fine Tuning
|
|
60
|
+
#
|
|
61
|
+
key_buffer = 16M
|
|
62
|
+
max_allowed_packet = 32M
|
|
63
|
+
thread_stack = 128K
|
|
64
|
+
thread_cache_size = 8
|
|
65
|
+
table_cache=128
|
|
66
|
+
max_heap_table_size=256M
|
|
67
|
+
tmp_table_size=256M
|
|
68
|
+
sort_buffer_size = 8M
|
|
69
|
+
join_buffer_size = 8M
|
|
70
|
+
|
|
71
|
+
max_connections = 300
|
|
72
|
+
#table_cache = 64
|
|
73
|
+
#thread_concurrency = 10
|
|
74
|
+
#
|
|
75
|
+
# * Query Cache Configuration
|
|
76
|
+
#
|
|
77
|
+
query_cache_limit = 2M
|
|
78
|
+
query_cache_size = 64M
|
|
79
|
+
#
|
|
80
|
+
# * Logging and Replication
|
|
81
|
+
#
|
|
82
|
+
# Both location gets rotated by the cronjob.
|
|
83
|
+
# Be aware that this log type is a performance killer.
|
|
84
|
+
#log = /var/log/mysql/mysql.log
|
|
85
|
+
#
|
|
86
|
+
# Error logging goes to syslog. This is a Debian improvement :)
|
|
87
|
+
#
|
|
88
|
+
# Here you can see queries with especially long duration
|
|
89
|
+
log_slow_queries = /var/log/mysql/mysql-slow.log
|
|
90
|
+
long_query_time = 2
|
|
91
|
+
log-queries-not-using-indexes
|
|
92
|
+
#
|
|
93
|
+
# The following can be used as easy to replay backup logs or for replication.
|
|
94
|
+
# note: if you are setting up a replication slave, see README.Debian about
|
|
95
|
+
# other settings you may need to change.
|
|
96
|
+
#server-id = 1
|
|
97
|
+
#log_bin = /var/log/mysql/mysql-bin.log
|
|
98
|
+
# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
|
|
99
|
+
expire_logs_days = 10
|
|
100
|
+
max_binlog_size = 100M
|
|
101
|
+
#binlog_do_db = include_database_name
|
|
102
|
+
#binlog_ignore_db = include_database_name
|
|
103
|
+
#
|
|
104
|
+
# * BerkeleyDB
|
|
105
|
+
#
|
|
106
|
+
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
|
|
107
|
+
skip-bdb
|
|
108
|
+
#
|
|
109
|
+
# * InnoDB
|
|
110
|
+
#
|
|
111
|
+
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
|
|
112
|
+
# Read the manual for more InnoDB related options. There are many!
|
|
113
|
+
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
|
|
114
|
+
#skip-innodb
|
|
115
|
+
|
|
116
|
+
# Set buffer pool size to 50-80% of your computer's memory
|
|
117
|
+
innodb_buffer_pool_size=256M
|
|
118
|
+
innodb_additional_mem_pool_size=8M
|
|
119
|
+
|
|
120
|
+
# Set the log file size to about 25% of the buffer pool size
|
|
121
|
+
#innodb_log_file_size=128M
|
|
122
|
+
#innodb_log_buffer_size=32M
|
|
123
|
+
innodb_flush_log_at_trx_commit=2
|
|
124
|
+
|
|
125
|
+
#
|
|
126
|
+
# * Security Features
|
|
127
|
+
#
|
|
128
|
+
# Read the manual, too, if you want chroot!
|
|
129
|
+
# chroot = /var/lib/mysql/
|
|
130
|
+
#
|
|
131
|
+
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
|
|
132
|
+
#
|
|
133
|
+
# ssl-ca=/etc/mysql/cacert.pem
|
|
134
|
+
# ssl-cert=/etc/mysql/server-cert.pem
|
|
135
|
+
# ssl-key=/etc/mysql/server-key.pem
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
[mysqldump]
|
|
140
|
+
quick
|
|
141
|
+
quote-names
|
|
142
|
+
max_allowed_packet = 16M
|
|
143
|
+
|
|
144
|
+
[mysql]
|
|
145
|
+
#no-auto-rehash # faster start of mysql but no tab completition
|
|
146
|
+
|
|
147
|
+
[isamchk]
|
|
148
|
+
key_buffer = 16M
|
|
149
|
+
|
|
150
|
+
#
|
|
151
|
+
# * NDB Cluster
|
|
152
|
+
#
|
|
153
|
+
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
|
|
154
|
+
#
|
|
155
|
+
# The following configuration is read by the NDB Data Nodes (ndbd processes)
|
|
156
|
+
# not from the NDB Management Nodes (ndb_mgmd processes).
|
|
157
|
+
#
|
|
158
|
+
# [MYSQL_CLUSTER]
|
|
159
|
+
# ndb-connectstring=127.0.0.1
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
#
|
|
163
|
+
# * IMPORTANT: Additional settings that can override those from this file!
|
|
164
|
+
#
|
|
165
|
+
!includedir /etc/mysql/conf.d/
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<%
|
|
2
|
+
@path = "#{rubber_env.cruise_dir}/config/environments/production.rb"
|
|
3
|
+
@additive = ["# rubber-cruise-start", "# rubber-cruise-end"]
|
|
4
|
+
@post = "ln -sf #{rubber_env.cruise_dir}/public #{rubber_env.cruise_dir}/public/cruise"
|
|
5
|
+
%>
|
|
6
|
+
|
|
7
|
+
# This is needed so nginx can reverse proxy to cruise server
|
|
8
|
+
ActionController::AbstractRequest.relative_url_root = "/cruise"
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<%
|
|
2
|
+
@path = "#{rubber_env.cruise_data_dir}/site_config.rb"
|
|
3
|
+
%>
|
|
4
|
+
|
|
5
|
+
# site_config.rb contains examples of various configuration options for the local installation
|
|
6
|
+
# of CruiseControl.rb.
|
|
7
|
+
|
|
8
|
+
# YOU MUST RESTART YOUR CRUISE CONTROL SERVER FOR ANY CHANGES MADE HERE TO TAKE EFFECT!!!
|
|
9
|
+
|
|
10
|
+
# EMAIL NOTIFICATION
|
|
11
|
+
# ------------------
|
|
12
|
+
|
|
13
|
+
# CruiseControl.rb can notify you about build status via email. It uses ActionMailer component of Ruby on Rails
|
|
14
|
+
# framework. Obviously, ActionMailer needs to know how to send out email messages.
|
|
15
|
+
# If you have an SMTP server on your network, and it needs no authentication, write this in your site_config.rb:
|
|
16
|
+
#
|
|
17
|
+
# ActionMailer::Base.smtp_settings = {
|
|
18
|
+
# :address => "yoursmtpserver",
|
|
19
|
+
# :domain => "yourdomain.com",
|
|
20
|
+
# }
|
|
21
|
+
#
|
|
22
|
+
# If you have no SMTP server at hand, you can configure email notification to use GMail SMTP server, as follows
|
|
23
|
+
# (of course, you'll need to create a GMail account):
|
|
24
|
+
#
|
|
25
|
+
# ActionMailer::Base.smtp_settings = {
|
|
26
|
+
# :address => "smtp.gmail.com",
|
|
27
|
+
# :port => 587,
|
|
28
|
+
# :domain => "yourdomain.com",
|
|
29
|
+
# :authentication => :plain,
|
|
30
|
+
# :user_name => "yourgmailaccount",
|
|
31
|
+
# :password => "yourgmailpassword"
|
|
32
|
+
# }
|
|
33
|
+
#
|
|
34
|
+
# The same approach works for other SMTP servers thet require authentication. Note that GMail's SMTP server runs on a
|
|
35
|
+
# non-standard port 587 (standard port for SMTP is 25).
|
|
36
|
+
#
|
|
37
|
+
# For further details about configuration of outgoing email, see Ruby On Rails documentation for ActionMailer::Base.
|
|
38
|
+
|
|
39
|
+
# Other site-wide options are available through Configuration class:
|
|
40
|
+
|
|
41
|
+
# Change how often CC.rb pings Subversion for new requests. Default is 10.seconds, which should be OK for a local
|
|
42
|
+
# SVN repository, but probably isn't very polite for a public repository, such as RubyForge. This can also be set for
|
|
43
|
+
# each project individually, through project.scheduler.polling_interval option:
|
|
44
|
+
Configuration.default_polling_interval = 1.minute
|
|
45
|
+
|
|
46
|
+
# How often the dashboard page refreshes itself. If you have more than 10-20 dashboards open,
|
|
47
|
+
# it is advisable to set it to something higher than the default 5 seconds:
|
|
48
|
+
# Configuration.dashboard_refresh_interval = 20.seconds
|
|
49
|
+
|
|
50
|
+
# Site-wide setting for the email "from" field. This can also be set on per-project basis,
|
|
51
|
+
# through project.email.notifier.from attribute
|
|
52
|
+
Configuration.email_from = 'cruisecontrolrb@<%= rubber_env.domain %>'
|
|
53
|
+
|
|
54
|
+
# Root URL of the dashboard application. Setting this attribute allows various notifiers to include a link to the
|
|
55
|
+
# build page in the notification message.
|
|
56
|
+
Configuration.dashboard_url = 'http://<%= rubber_instances.for_role('cruise').first.full_name %>/cruise'
|
|
57
|
+
|
|
58
|
+
# If you don't want to allow triggering builds through dashboard Build Now button. Useful when you host CC.rb as a
|
|
59
|
+
# public web site (such as http://cruisecontrolrb.thoughtworks.com/projects - try clicking on Build Now button there
|
|
60
|
+
# and see what happens):
|
|
61
|
+
# Configuration.disable_build_now = true
|
|
62
|
+
|
|
63
|
+
# If you want to only allow one project to build at a time, uncomment this line
|
|
64
|
+
# by default, cruise allows multiple projects to build at a time
|
|
65
|
+
# Configuration.serialize_builds = true
|
|
66
|
+
|
|
67
|
+
# Amount of time a project will wait to build before failing when build serialization is on
|
|
68
|
+
# Configuration.serialized_build_timeout = 3.hours
|
|
69
|
+
|
|
70
|
+
# To delete build when there are more than a certain number present, uncomment this line - it will make the dashboard
|
|
71
|
+
# perform better
|
|
72
|
+
BuildReaper.number_of_builds_to_keep = 20
|
|
73
|
+
|
|
74
|
+
# any files that you'd like to override in cruise, keep in ~/.cruise, and copy over when this file is loaded like this
|
|
75
|
+
site_css = CRUISE_DATA_ROOT + "/site.css"
|
|
76
|
+
FileUtils.cp site_css, RUBBER_ROOT + "/public/stylesheets/site.css" if File.exists? site_css
|