sml-rubber 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. data/COPYING +339 -0
  2. data/README +6 -0
  3. data/TODO +9 -0
  4. data/VERSION +1 -0
  5. data/generators/vulcanize/USAGE +6 -0
  6. data/generators/vulcanize/templates/apache/config/rubber/deploy-apache.rb +45 -0
  7. data/generators/vulcanize/templates/apache/config/rubber/role/web/deflate.conf +10 -0
  8. data/generators/vulcanize/templates/apache/config/rubber/role/web/expires.conf +9 -0
  9. data/generators/vulcanize/templates/apache/config/rubber/role/web/headers.conf +6 -0
  10. data/generators/vulcanize/templates/apache/config/rubber/role/web/setenvif.conf +52 -0
  11. data/generators/vulcanize/templates/apache/config/rubber/role/web/vhost.conf +27 -0
  12. data/generators/vulcanize/templates/apache/config/rubber/rubber-apache.yml +15 -0
  13. data/generators/vulcanize/templates/apache/templates.yml +1 -0
  14. data/generators/vulcanize/templates/base/Capfile +17 -0
  15. data/generators/vulcanize/templates/base/config/deploy.rb +77 -0
  16. data/generators/vulcanize/templates/base/config/rubber/common/crontab +16 -0
  17. data/generators/vulcanize/templates/base/config/rubber/common/profile.rc +9 -0
  18. data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +56 -0
  19. data/generators/vulcanize/templates/base/config/rubber/rubber.yml +221 -0
  20. data/generators/vulcanize/templates/base/lib/tasks/rubber.rake +18 -0
  21. data/generators/vulcanize/templates/base/script/cron-rake +18 -0
  22. data/generators/vulcanize/templates/base/script/cron-runner +18 -0
  23. data/generators/vulcanize/templates/base/script/cron-sh +67 -0
  24. data/generators/vulcanize/templates/base/templates.yml +1 -0
  25. data/generators/vulcanize/templates/complete_mysql/templates.yml +6 -0
  26. data/generators/vulcanize/templates/complete_passenger_mysql/templates.yml +8 -0
  27. data/generators/vulcanize/templates/cruise/config/rubber/deploy-cruise.rb +74 -0
  28. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/cruise +40 -0
  29. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/my.cnf +165 -0
  30. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/production.rb +8 -0
  31. data/generators/vulcanize/templates/cruise/config/rubber/role/cruise/site_config.rb +76 -0
  32. data/generators/vulcanize/templates/cruise/config/rubber/role/web_tools/cruise-nginx.conf +11 -0
  33. data/generators/vulcanize/templates/cruise/config/rubber/rubber-cruise.yml +18 -0
  34. data/generators/vulcanize/templates/cruise/templates.yml +1 -0
  35. data/generators/vulcanize/templates/haproxy/config/rubber/deploy-haproxy.rb +45 -0
  36. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy-default.conf +8 -0
  37. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/haproxy.conf +44 -0
  38. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/monit-haproxy.conf +9 -0
  39. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslog-haproxy.conf +6 -0
  40. data/generators/vulcanize/templates/haproxy/config/rubber/role/haproxy/syslogd-default.conf +17 -0
  41. data/generators/vulcanize/templates/haproxy/config/rubber/role/web_tools/haproxy-nginx.conf +10 -0
  42. data/generators/vulcanize/templates/haproxy/config/rubber/rubber-haproxy.yml +12 -0
  43. data/generators/vulcanize/templates/haproxy/templates.yml +1 -0
  44. data/generators/vulcanize/templates/memcached/config/memcached.yml +28 -0
  45. data/generators/vulcanize/templates/memcached/config/rubber/common/memcached.yml +14 -0
  46. data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached.conf +52 -0
  47. data/generators/vulcanize/templates/memcached/config/rubber/role/memcached/memcached_munin_plugin +249 -0
  48. data/generators/vulcanize/templates/memcached/config/rubber/rubber-memcached.yml +7 -0
  49. data/generators/vulcanize/templates/memcached/templates.yml +1 -0
  50. data/generators/vulcanize/templates/minimal_mysql/templates.yml +7 -0
  51. data/generators/vulcanize/templates/minimal_nodb/templates.yml +6 -0
  52. data/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +75 -0
  53. data/generators/vulcanize/templates/mongrel/config/rubber/role/app/mongrel_cluster.yml +12 -0
  54. data/generators/vulcanize/templates/mongrel/config/rubber/role/app/monit-mongrel.conf +20 -0
  55. data/generators/vulcanize/templates/mongrel/config/rubber/rubber-mongrel.yml +9 -0
  56. data/generators/vulcanize/templates/mongrel/templates.yml +1 -0
  57. data/generators/vulcanize/templates/monit/config/rubber/common/monit-default.conf +15 -0
  58. data/generators/vulcanize/templates/monit/config/rubber/common/monit.conf +251 -0
  59. data/generators/vulcanize/templates/monit/config/rubber/deploy-monit.rb +32 -0
  60. data/generators/vulcanize/templates/monit/config/rubber/role/web_tools/monit-admin-nginx.conf +10 -0
  61. data/generators/vulcanize/templates/monit/config/rubber/rubber-monit.yml +6 -0
  62. data/generators/vulcanize/templates/monit/templates.yml +1 -0
  63. data/generators/vulcanize/templates/munin/config/rubber/common/monit-munin.conf +8 -0
  64. data/generators/vulcanize/templates/munin/config/rubber/common/munin-node.conf +48 -0
  65. data/generators/vulcanize/templates/munin/config/rubber/deploy-munin.rb +30 -0
  66. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-nginx.conf +8 -0
  67. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin-plugins.conf +31 -0
  68. data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +80 -0
  69. data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +8 -0
  70. data/generators/vulcanize/templates/munin/script/munin/example_mysql_query.rb +57 -0
  71. data/generators/vulcanize/templates/munin/script/munin/example_simple.rb +24 -0
  72. data/generators/vulcanize/templates/munin/templates.yml +1 -0
  73. data/generators/vulcanize/templates/mysql/config/rubber/common/database.yml +11 -0
  74. data/generators/vulcanize/templates/mysql/config/rubber/deploy-mysql.rb +178 -0
  75. data/generators/vulcanize/templates/mysql/config/rubber/role/db/crontab +14 -0
  76. data/generators/vulcanize/templates/mysql/config/rubber/role/db/monit-mysql.cnf +10 -0
  77. data/generators/vulcanize/templates/mysql/config/rubber/role/db/my.cnf +167 -0
  78. data/generators/vulcanize/templates/mysql/config/rubber/role/mysql_slave/mysql_slave_munin_plugin +51 -0
  79. data/generators/vulcanize/templates/mysql/config/rubber/rubber-mysql.yml +38 -0
  80. data/generators/vulcanize/templates/mysql/templates.yml +1 -0
  81. data/generators/vulcanize/templates/mysql_cluster/config/rubber/common/mysql_cluster_migrations.rb +13 -0
  82. data/generators/vulcanize/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +173 -0
  83. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_data/my.cnf +15 -0
  84. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_mgm/ndb_mgmd.cnf +39 -0
  85. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/monit-mysql_cluster_sql.cnf +10 -0
  86. data/generators/vulcanize/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +23 -0
  87. data/generators/vulcanize/templates/mysql_cluster/config/rubber/rubber-mysql_cluster.yml +32 -0
  88. data/generators/vulcanize/templates/mysql_cluster/templates.yml +1 -0
  89. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/database.yml +16 -0
  90. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/monit-mysql_proxy.cnf +10 -0
  91. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy +153 -0
  92. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.conf +10 -0
  93. data/generators/vulcanize/templates/mysql_proxy/config/rubber/common/mysql-proxy.lua +5 -0
  94. data/generators/vulcanize/templates/mysql_proxy/config/rubber/deploy-mysql_proxy.rb +52 -0
  95. data/generators/vulcanize/templates/mysql_proxy/config/rubber/rubber-mysql_proxy.yml +11 -0
  96. data/generators/vulcanize/templates/mysql_proxy/templates.yml +1 -0
  97. data/generators/vulcanize/templates/nginx/config/rubber/deploy-nginx.rb +45 -0
  98. data/generators/vulcanize/templates/nginx/config/rubber/role/web/crontab +9 -0
  99. data/generators/vulcanize/templates/nginx/config/rubber/role/web/monit-nginx.conf +9 -0
  100. data/generators/vulcanize/templates/nginx/config/rubber/role/web/nginx.conf +133 -0
  101. data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/index.html +23 -0
  102. data/generators/vulcanize/templates/nginx/config/rubber/role/web_tools/nginx-tools.conf +74 -0
  103. data/generators/vulcanize/templates/nginx/config/rubber/rubber-nginx.yml +33 -0
  104. data/generators/vulcanize/templates/nginx/templates.yml +1 -0
  105. data/generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb +27 -0
  106. data/generators/vulcanize/templates/passenger/config/rubber/role/web/passenger.conf +8 -0
  107. data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +4 -0
  108. data/generators/vulcanize/templates/passenger/templates.yml +1 -0
  109. data/generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml +46 -0
  110. data/generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb +112 -0
  111. data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab +11 -0
  112. data/generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/monit-sphinx.conf +10 -0
  113. data/generators/vulcanize/templates/sphinx/config/rubber/rubber-sphinx.yml +6 -0
  114. data/generators/vulcanize/templates/sphinx/templates.yml +1 -0
  115. data/generators/vulcanize/vulcanize_generator.rb +67 -0
  116. data/lib/capistrano/hostcmd.rb +12 -0
  117. data/lib/rubber.rb +37 -0
  118. data/lib/rubber/capistrano.rb +1 -0
  119. data/lib/rubber/cloud.rb +13 -0
  120. data/lib/rubber/cloud/aws.rb +261 -0
  121. data/lib/rubber/cloud/base.rb +16 -0
  122. data/lib/rubber/configuration.rb +47 -0
  123. data/lib/rubber/dns.rb +13 -0
  124. data/lib/rubber/dns/base.rb +69 -0
  125. data/lib/rubber/dns/dyndns.rb +63 -0
  126. data/lib/rubber/dns/nettica.rb +56 -0
  127. data/lib/rubber/dns/zerigo.rb +121 -0
  128. data/lib/rubber/environment.rb +161 -0
  129. data/lib/rubber/generator.rb +197 -0
  130. data/lib/rubber/instance.rb +113 -0
  131. data/lib/rubber/recipes/rubber.rb +88 -0
  132. data/lib/rubber/recipes/rubber/bundles.rb +28 -0
  133. data/lib/rubber/recipes/rubber/deploy.rb +66 -0
  134. data/lib/rubber/recipes/rubber/instances.rb +298 -0
  135. data/lib/rubber/recipes/rubber/security_groups.rb +149 -0
  136. data/lib/rubber/recipes/rubber/setup.rb +285 -0
  137. data/lib/rubber/recipes/rubber/static_ips.rb +107 -0
  138. data/lib/rubber/recipes/rubber/utils.rb +195 -0
  139. data/lib/rubber/recipes/rubber/volumes.rb +263 -0
  140. data/lib/rubber/tasks/rubber.rb +218 -0
  141. data/lib/rubber/util.rb +33 -0
  142. data/test/environment_test.rb +118 -0
  143. data/test/generator_test.rb +323 -0
  144. data/test/instance_test.rb +38 -0
  145. data/test/test_helper.rb +4 -0
  146. data/test/util_test.rb +16 -0
  147. 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,6 @@
1
+ description: A fairly complete and scalable mysql deployment setup
2
+ dependent_templates:
3
+ - minimal_mysql
4
+ - monit
5
+ - munin
6
+ - memcached
@@ -0,0 +1,8 @@
1
+ description: A fairly complete and scalable mysql deployment setup
2
+ dependent_templates:
3
+ - base
4
+ - mysql
5
+ - apache
6
+ - passenger
7
+ - munin
8
+ - memcached
@@ -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