sml-rubber 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +339 -0
- data/README +6 -0
- data/TODO +9 -0
- data/VERSION +1 -0
- data/generators/vulcanize/USAGE +6 -0
- data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +45 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web/deflate.conf +10 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web/expires.conf +9 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web/headers.conf +6 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web/setenvif.conf +52 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web/vhost.conf +27 -0
- data/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +15 -0
- data/generators/vulcanize/templates/apache/templates.yml +1 -0
- data/generators/vulcanize/templates/base/Capfile +17 -0
- data/generators/vulcanize/templates/base/config/deploy.rb +77 -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 +56 -0
- data/generators/vulcanize/templates/base/config/rubber/rubber.yml +221 -0
- data/generators/vulcanize/templates/base/lib/tasks/rubber.rake +18 -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_mysql/templates.yml +6 -0
- data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +8 -0
- data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +74 -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-default.conf +8 -0
- data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy.conf +44 -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 +12 -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/app/mongrel_cluster.yml +12 -0
- data/generators/vulcanize/templates/mongrel/config/rubber/role/app/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 +30 -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 +178 -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 +38 -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/web/crontab +9 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web/monit-nginx.conf +9 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web/nginx.conf +133 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/index.html +23 -0
- data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +74 -0
- data/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +33 -0
- data/generators/vulcanize/templates/nginx/templates.yml +1 -0
- data/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +27 -0
- data/generators/vulcanize/templates/passenger/config/rubber/role/web/passenger.conf +8 -0
- data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +4 -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 +37 -0
- data/lib/rubber/capistrano.rb +1 -0
- data/lib/rubber/cloud.rb +13 -0
- data/lib/rubber/cloud/aws.rb +261 -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 +56 -0
- data/lib/rubber/dns/zerigo.rb +121 -0
- data/lib/rubber/environment.rb +161 -0
- data/lib/rubber/generator.rb +197 -0
- data/lib/rubber/instance.rb +113 -0
- data/lib/rubber/recipes/rubber.rb +88 -0
- data/lib/rubber/recipes/rubber/bundles.rb +28 -0
- data/lib/rubber/recipes/rubber/deploy.rb +66 -0
- data/lib/rubber/recipes/rubber/instances.rb +298 -0
- data/lib/rubber/recipes/rubber/security_groups.rb +149 -0
- data/lib/rubber/recipes/rubber/setup.rb +285 -0
- data/lib/rubber/recipes/rubber/static_ips.rb +107 -0
- data/lib/rubber/recipes/rubber/utils.rb +195 -0
- data/lib/rubber/recipes/rubber/volumes.rb +263 -0
- data/lib/rubber/tasks/rubber.rb +218 -0
- data/lib/rubber/util.rb +33 -0
- data/test/environment_test.rb +118 -0
- data/test/generator_test.rb +323 -0
- data/test/instance_test.rb +38 -0
- data/test/test_helper.rb +4 -0
- data/test/util_test.rb +16 -0
- metadata +246 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
# rails tries to load this from generator dir, so skip it.
|
2
|
+
if __FILE__ !~ /rubber\/generators\/vulcanize/
|
3
|
+
|
4
|
+
begin
|
5
|
+
# first try as a rails plugin
|
6
|
+
require "#{File.dirname(__FILE__)}/../../vendor/plugins/rubber/lib/rubber.rb"
|
7
|
+
rescue LoadError
|
8
|
+
# then try as a gem
|
9
|
+
require 'rubber'
|
10
|
+
end
|
11
|
+
|
12
|
+
env = ENV['RUBBER_ENV'] ||= (ENV['RAILS_ENV'] || 'development')
|
13
|
+
root = File.dirname(__FILE__) + '/../..'
|
14
|
+
Rubber::initialize(root, env)
|
15
|
+
|
16
|
+
require 'rubber/tasks/rubber'
|
17
|
+
|
18
|
+
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} -- script/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 @@
|
|
1
|
+
description: The core configuration needed by all others
|
@@ -0,0 +1,74 @@
|
|
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
|
+
env = rubber_cfg.environment.bind()
|
12
|
+
rubber.sudo_script 'install_cruise', <<-ENDSCRIPT
|
13
|
+
export CRUISE_HOME="#{env.cruise_dir}"
|
14
|
+
|
15
|
+
if [[ ! -d $CRUISE_HOME ]]; then
|
16
|
+
git clone git://github.com/sml/cruisecontrol.rb.git $CRUISE_HOME
|
17
|
+
fi
|
18
|
+
ENDSCRIPT
|
19
|
+
|
20
|
+
logger.info("\n#######################################################################\n\n")
|
21
|
+
logger.info("This machine needs access to your source repository for cruise control")
|
22
|
+
logger.info("run 'cap rubber:cruise:setup_project' once access has been granted")
|
23
|
+
logger.info("then run 'cap rubber:cruise:start' to start the cruise web server")
|
24
|
+
logger.info("ssh public key:\n#{capture('cat ~/.ssh/id_dsa.pub')}")
|
25
|
+
logger.info("\n#######################################################################\n\n")
|
26
|
+
end
|
27
|
+
|
28
|
+
task :setup_project, :roles => :cruise do
|
29
|
+
env = rubber_cfg.environment.bind()
|
30
|
+
rubber.sudo_script 'setup_project', <<-ENDSCRIPT
|
31
|
+
|
32
|
+
export CRUISE_HOME="#{env.cruise_dir}"
|
33
|
+
export CRUISE_DATA_ROOT="#{env.cruise_data_dir}"
|
34
|
+
export CRUISE_PROJECT_ROOT="#{env.cruise_project_dir}"
|
35
|
+
|
36
|
+
if [[ ! -d $CRUISE_HOME ]]; then
|
37
|
+
git clone git://github.com/sml/cruisecontrol.rb.git #{env.cruise_dir}
|
38
|
+
fi
|
39
|
+
|
40
|
+
if [[ ! -d $CRUISE_PROJECT_ROOT ]]; then
|
41
|
+
if [[ -z "#{env.cruise_repository}" ]]; then
|
42
|
+
echo "cruise_repository must be set in rubber env"
|
43
|
+
exit 1
|
44
|
+
fi
|
45
|
+
|
46
|
+
cd $CRUISE_HOME
|
47
|
+
echo "Adding project repository to cruise: #{env.cruise_repository}"
|
48
|
+
./cruise add #{env.app_name} #{env.cruise_repository}
|
49
|
+
mkdir -p $CRUISE_PROJECT_ROOT/log
|
50
|
+
cd $CRUISE_PROJECT_ROOT && rake db:create RAILS_ENV=test
|
51
|
+
fi
|
52
|
+
|
53
|
+
ENDSCRIPT
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
desc "Start cruise control daemon"
|
58
|
+
task :start, :roles => :cruise do
|
59
|
+
run "/etc/init.d/cruise start"
|
60
|
+
end
|
61
|
+
|
62
|
+
desc "Stop cruise control daemon"
|
63
|
+
task :stop, :roles => :cruise, :on_error => :continue do
|
64
|
+
run "/etc/init.d/cruise stop"
|
65
|
+
end
|
66
|
+
|
67
|
+
desc "Restart cruise control daemon"
|
68
|
+
task :restart, :roles => :cruise do
|
69
|
+
stop
|
70
|
+
start
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
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
|