capitate 0.2.15 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +6 -0
- data/Manifest.txt +3 -2
- data/lib/capitate/plugins/prompt.rb +8 -4
- data/lib/capitate/plugins/utils.rb +18 -0
- data/lib/capitate/task_node.rb +3 -1
- data/lib/capitate/version.rb +2 -2
- data/lib/recipes/centos/backgroundjob.rb +0 -3
- data/lib/recipes/centos/memcached.rb +31 -5
- data/lib/recipes/centos/mongrel_cluster.rb +14 -6
- data/lib/recipes/centos/monit.rb +2 -15
- data/lib/recipes/centos/nginx.rb +12 -4
- data/lib/recipes/centos/sphinx.rb +13 -24
- data/lib/recipes/logrotate/mysql.rb +2 -2
- data/lib/recipes/monit/backgroundjob.rb +2 -2
- data/lib/recipes/monit/mysql.rb +1 -1
- data/lib/recipes/mysql.rb +12 -6
- data/lib/recipes/rails.rb +27 -12
- data/lib/templates/backgroundjob/backgroundjob.initd.centos.erb +9 -10
- data/lib/templates/memcached/memcached.initd.centos.erb +7 -19
- data/lib/templates/mongrel/{mongrel_cluster.initd.erb → mongrel_cluster.initd.centos.erb} +47 -14
- data/lib/templates/monit/monit.initd.centos.erb +13 -13
- data/lib/templates/mysql/my.cnf.innodb_1024.erb +3 -1
- data/lib/templates/mysql/my.cnf.innodb_512.erb +127 -0
- data/lib/templates/nginx/{nginx.initd.erb → nginx.initd.centos.erb} +18 -11
- data/lib/templates/sphinx/sphinx_app.initd.centos.erb +23 -18
- data/website/index.html +1 -1
- data/website/stylesheets/screen.css +4 -0
- metadata +5 -4
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 0.3.1 2008-04-02
|
2
|
+
|
3
|
+
* Fixing the init scripts to use killproc and have nice output (centos)
|
4
|
+
* Fixing sphinx initscript to clean on start (if process does not exist)
|
5
|
+
* Removing some roles options. Roles are confusing, I don't want to use them.
|
6
|
+
|
1
7
|
== 0.2.15 2008-03-31
|
2
8
|
|
3
9
|
* Adding backgroundjob recipes and templates.
|
data/Manifest.txt
CHANGED
@@ -75,7 +75,7 @@ lib/templates/logrotated/conf.erb
|
|
75
75
|
lib/templates/memcached/memcached.initd.centos.erb
|
76
76
|
lib/templates/memcached/memcached.monitrc.erb
|
77
77
|
lib/templates/memcached/memcached.yml.erb
|
78
|
-
lib/templates/mongrel/mongrel_cluster.initd.erb
|
78
|
+
lib/templates/mongrel/mongrel_cluster.initd.centos.erb
|
79
79
|
lib/templates/mongrel/mongrel_cluster.monitrc.erb
|
80
80
|
lib/templates/mongrel/mongrel_cluster.yml.erb
|
81
81
|
lib/templates/monit/monit.cnf
|
@@ -83,9 +83,10 @@ lib/templates/monit/monit.initd.centos.erb
|
|
83
83
|
lib/templates/monit/monitrc.erb
|
84
84
|
lib/templates/mysql/install_db.sql.erb
|
85
85
|
lib/templates/mysql/my.cnf.innodb_1024.erb
|
86
|
+
lib/templates/mysql/my.cnf.innodb_512.erb
|
86
87
|
lib/templates/mysql/mysql.monitrc.erb
|
87
88
|
lib/templates/nginx/nginx.conf.erb
|
88
|
-
lib/templates/nginx/nginx.initd.erb
|
89
|
+
lib/templates/nginx/nginx.initd.centos.erb
|
89
90
|
lib/templates/nginx/nginx.monitrc.erb
|
90
91
|
lib/templates/nginx/nginx_vhost.conf.erb
|
91
92
|
lib/templates/rails/database.yml.erb
|
@@ -22,22 +22,23 @@ module Capitate::Plugins::Prompt
|
|
22
22
|
# +verify+:: If true, prompt twice and verify
|
23
23
|
# +lazy+:: If true, returns a Proc. _Defaults to true_
|
24
24
|
# +check_hash+:: If present, checks that md5 is same as password md5
|
25
|
+
# +max_attempts+:: Number of attempts to retry. _Defaults to 3_
|
25
26
|
#
|
26
27
|
def password(label, options = {})
|
27
28
|
|
28
29
|
verify = options[:verify]
|
29
30
|
lazy = options[:lazy].nil? ? true : options[:lazy]
|
30
31
|
check_hash = options[:check_hash]
|
32
|
+
max_attempts = options[:max_attempts] || 3
|
31
33
|
|
32
34
|
# Lazy
|
33
35
|
password_prompt = Proc.new {
|
34
36
|
|
35
|
-
max_attempts = 2
|
36
37
|
attempts = 0
|
37
38
|
password = nil
|
38
39
|
success = true
|
39
40
|
|
40
|
-
loop
|
41
|
+
loop do
|
41
42
|
password = Capistrano::CLI.password_prompt(label)
|
42
43
|
attempts += 1
|
43
44
|
|
@@ -52,13 +53,16 @@ module Capitate::Plugins::Prompt
|
|
52
53
|
if check_hash
|
53
54
|
if MD5.md5(password).hexdigest != check_hash
|
54
55
|
logger.important "Invalid password, try again."
|
55
|
-
success = false
|
56
|
+
success = false
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
59
60
|
break if success
|
60
61
|
break if attempts >= max_attempts
|
61
|
-
|
62
|
+
|
63
|
+
# Reset success
|
64
|
+
success = true
|
65
|
+
end
|
62
66
|
|
63
67
|
raise "Invalid password, too many tries" unless success
|
64
68
|
|
@@ -19,6 +19,24 @@ module Capitate::Plugins::Utils
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
# Delete file.
|
23
|
+
#
|
24
|
+
# ==== Options
|
25
|
+
# +path+:: Path to delete
|
26
|
+
#
|
27
|
+
def rm(path)
|
28
|
+
run_via "rm #{path}"
|
29
|
+
end
|
30
|
+
|
31
|
+
# Delete file (recursive/force)
|
32
|
+
#
|
33
|
+
# ==== Options
|
34
|
+
# +path+:: Path to delete
|
35
|
+
#
|
36
|
+
def rm_rf(path)
|
37
|
+
run_via "rm -rf #{path}"
|
38
|
+
end
|
39
|
+
|
22
40
|
# Load template and install it.
|
23
41
|
# Removes temporary files during transfer and ensures desination directory is created before install.
|
24
42
|
#
|
data/lib/capitate/task_node.rb
CHANGED
@@ -169,7 +169,9 @@ class Capitate::TaskNode
|
|
169
169
|
file.puts "\n\nh2. Task documentation\n\n"
|
170
170
|
sorted_tasks.each do |task|
|
171
171
|
file.puts %{<div class="recipe">\n\n}
|
172
|
-
|
172
|
+
options = ""
|
173
|
+
options = "<span class='options'>, #{task.options.inspect}</span>" unless task.options.blank?
|
174
|
+
file.puts "h3(##{task.fully_qualified_name}). #{task.fully_qualified_name}#{options}\n\n"
|
173
175
|
file.puts "#{unindent(task.desc)}\n\n"
|
174
176
|
file.puts "</div>\n\n\n"
|
175
177
|
end
|
data/lib/capitate/version.rb
CHANGED
@@ -25,9 +25,6 @@ namespace :backgroundjob do
|
|
25
25
|
"Source":#{link_to_source(__FILE__)}
|
26
26
|
DESC
|
27
27
|
task :setup do
|
28
|
-
|
29
|
-
|
30
|
-
|
31
28
|
# Settings
|
32
29
|
fetch_or_default(:backgroundjob_pid_path, "#{shared_path}/pids/bj.pid")
|
33
30
|
fetch_or_default(:backgroundjob_log_path, "#{shared_path}/log/bj.log")
|
@@ -48,11 +48,37 @@ namespace :memcached do
|
|
48
48
|
# Build
|
49
49
|
build.make_install("memcached", memcached_build_options)
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
initscript
|
52
|
+
end
|
53
|
+
|
54
|
+
desc <<-DESC
|
55
|
+
Install memcached initscript.
|
56
|
+
|
57
|
+
<dl>
|
58
|
+
<dt>memcached_memory</dt>
|
59
|
+
<dd>Memcached memory (in MB).</dd>
|
60
|
+
<dd>@set :memcached_memory, 64@</dd>
|
61
|
+
|
62
|
+
<dt>memcached_pid_path*</dt>
|
63
|
+
<dd>Path to memcached pid file.</dd>
|
64
|
+
<dd class="default">Defaults to @/var/run/memcached.pid@</dd>
|
65
|
+
<dd>@set :memcached_pid_path, "/var/run/memcached.pid"@</dd>
|
66
|
+
|
67
|
+
<dt>memcached_port</dt>
|
68
|
+
<dd>Memcached port<dd>
|
69
|
+
<dd class="default">Defaults to 11211.</dd>
|
70
|
+
<dd>@set :memcached_port, 11211@</dd>
|
71
|
+
</dl>
|
72
|
+
"Source":#{link_to_source(__FILE__)}
|
73
|
+
DESC
|
74
|
+
task :initscript do
|
75
|
+
|
76
|
+
fetch_or_default(:memcached_pid_path, "/var/run/memcached.pid")
|
77
|
+
fetch_or_default(:memcached_port, 11211)
|
78
|
+
fetch(:memcached_memory)
|
79
|
+
|
80
|
+
utils.install_template("memcached/memcached.initd.centos.erb", "/etc/init.d/memcached")
|
81
|
+
run_via "/sbin/chkconfig --level 345 memcached on"
|
56
82
|
end
|
57
83
|
|
58
84
|
end
|
@@ -61,16 +61,24 @@ namespace :mongrel do
|
|
61
61
|
|
62
62
|
set :mongrel_pid_path, "#{mongrel_pid_dir}/#{mongrel_application}.pid"
|
63
63
|
set :mongrel_log_path, "log/#{mongrel_application}.log"
|
64
|
-
|
65
|
-
put template.load("mongrel/mongrel_cluster.initd.erb"), "/tmp/#{mongrel_initscript_name}.initd"
|
64
|
+
|
66
65
|
put template.load("mongrel/mongrel_cluster.yml.erb"), "#{mongrel_config_dir}/mongrel_cluster.yml"
|
67
66
|
|
68
|
-
|
69
|
-
|
67
|
+
initscript
|
68
|
+
end
|
69
|
+
|
70
|
+
desc "Mongrel cluster setup initscript for application"
|
71
|
+
task :initscript do
|
72
|
+
|
73
|
+
fetch_or_default(:mongrel_config_dir, "#{shared_path}/config/mongrel")
|
74
|
+
fetch_or_default(:mongrel_pid_dir, "#{shared_path}/pids")
|
75
|
+
fetch_or_default(:mongrel_cluster_command, "mongrel_cluster_ctl")
|
76
|
+
fetch_or_default(:mongrel_initscript_name, "mongrel_cluster_#{application}")
|
70
77
|
|
71
|
-
|
78
|
+
utils.install_template("mongrel/mongrel_cluster.initd.centos.erb", "/etc/init.d/#{mongrel_initscript_name}")
|
79
|
+
run_via "/sbin/chkconfig --level 345 #{mongrel_initscript_name} on"
|
72
80
|
end
|
73
|
-
|
81
|
+
|
74
82
|
end
|
75
83
|
|
76
84
|
end
|
data/lib/recipes/centos/monit.rb
CHANGED
@@ -52,7 +52,7 @@ namespace :monit do
|
|
52
52
|
yum.install([ "flex", "byacc" ])
|
53
53
|
|
54
54
|
# Build
|
55
|
-
|
55
|
+
build.make_install("monit", monit_build_options)
|
56
56
|
|
57
57
|
# Install initscript
|
58
58
|
utils.install_template("monit/monit.initd.centos.erb", "/etc/init.d/monit")
|
@@ -82,20 +82,7 @@ namespace :monit do
|
|
82
82
|
# HUP the inittab
|
83
83
|
run_via "telinit q"
|
84
84
|
end
|
85
|
-
|
86
|
-
desc <<-DESC
|
87
|
-
Install monit firewall rule.
|
88
|
-
|
89
|
-
*monit_port*: Monit port. _Defaults to 2812_\n
|
90
|
-
@set :monit_port, 2812@\n
|
91
|
-
DESC
|
92
|
-
task :iptables do
|
93
|
-
# Settings
|
94
|
-
fetch_or_default(:monit_port, 2812)
|
95
|
-
run_via "iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport #{monit_port} -j ACCEPT"
|
96
|
-
run_via "/sbin/service iptables save"
|
97
|
-
end
|
98
|
-
|
85
|
+
|
99
86
|
end
|
100
87
|
|
101
88
|
end
|
data/lib/recipes/centos/nginx.rb
CHANGED
@@ -57,10 +57,8 @@ namespace :nginx do
|
|
57
57
|
# Build
|
58
58
|
build.make_install("nginx", nginx_build_options)
|
59
59
|
|
60
|
-
#
|
61
|
-
|
62
|
-
run_via "install -o root /tmp/nginx.initd /etc/init.d/nginx && rm -f /tmp/nginx.initd"
|
63
|
-
run_via "/sbin/chkconfig --level 345 nginx on"
|
60
|
+
# Initscript
|
61
|
+
initscript
|
64
62
|
|
65
63
|
# Setup nginx
|
66
64
|
run_via "mkdir -p /etc/nginx/vhosts"
|
@@ -72,6 +70,16 @@ namespace :nginx do
|
|
72
70
|
run_via "id nginx || /usr/sbin/adduser -r nginx"
|
73
71
|
end
|
74
72
|
|
73
|
+
desc "Install nginx initscript"
|
74
|
+
task :initscript do
|
75
|
+
fetch_or_default(:nginx_bin_path, "/sbin/nginx")
|
76
|
+
fetch_or_default(:nginx_conf_path, "/etc/nginx/nginx.conf")
|
77
|
+
fetch_or_default(:nginx_pid_path, "/var/run/nginx.pid")
|
78
|
+
|
79
|
+
utils.install_template("nginx/nginx.initd.centos.erb", "/etc/init.d/nginx")
|
80
|
+
run_via "/sbin/chkconfig --level 345 nginx on"
|
81
|
+
end
|
82
|
+
|
75
83
|
# Restart nginx
|
76
84
|
desc "Restart nginx (service)"
|
77
85
|
task :restart do
|
@@ -57,37 +57,26 @@ namespace :sphinx do
|
|
57
57
|
fetch_or_default(:sphinx_conf_path, "#{shared_path}/config/sphinx.conf")
|
58
58
|
fetch_or_default(:sphinx_index_root, "#{shared_path}/var/index")
|
59
59
|
|
60
|
-
|
61
|
-
put template.load("sphinx/sphinx_app.initd.centos.erb"), "/tmp/sphinx.initd"
|
62
|
-
run_via "install -o root /tmp/sphinx.initd /etc/init.d/sphinx_#{application}"
|
63
|
-
|
64
|
-
# Enable service
|
65
|
-
run_via "/sbin/chkconfig --level 345 sphinx_#{application} on"
|
60
|
+
initscript
|
66
61
|
|
67
62
|
# Create app indexes dir
|
68
63
|
run "mkdir -p #{shared_path}/var/index"
|
69
64
|
end
|
70
65
|
|
71
66
|
|
72
|
-
desc
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
"Source":#{link_to_source(__FILE__)}
|
84
|
-
DESC
|
85
|
-
task :iptables do
|
86
|
-
# Settings
|
87
|
-
fetch_or_default(:sphinx_port, 3312)
|
88
|
-
run_via "iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport #{sphinx_port} -j ACCEPT"
|
89
|
-
run_via "/sbin/service iptables save"
|
67
|
+
desc "Setup sphinx initscript"
|
68
|
+
task :initscript do
|
69
|
+
|
70
|
+
fetch_or_default(:sphinx_prefix, "/usr/local/sphinx")
|
71
|
+
fetch_or_default(:sphinx_pid_path, "#{shared_path}/pids/searchd.pid")
|
72
|
+
fetch_or_default(:sphinx_conf_path, "#{shared_path}/config/sphinx.conf")
|
73
|
+
fetch_or_default(:sphinx_index_root, "#{shared_path}/var/index")
|
74
|
+
|
75
|
+
utils.install_template("sphinx/sphinx_app.initd.centos.erb", "/etc/init.d/sphinx_#{application}")
|
76
|
+
run_via "/sbin/chkconfig --level 345 sphinx_#{application} on"
|
77
|
+
|
90
78
|
end
|
79
|
+
|
91
80
|
end
|
92
81
|
|
93
82
|
end
|
@@ -3,7 +3,7 @@ namespace :mysql do
|
|
3
3
|
namespace :logrotate do
|
4
4
|
|
5
5
|
desc <<-DESC
|
6
|
-
Install logrotated conf for
|
6
|
+
Install logrotated conf for mysql.
|
7
7
|
|
8
8
|
<dl>
|
9
9
|
<dt>mysql_logrotate_path</dt>
|
@@ -12,7 +12,7 @@ namespace :mysql do
|
|
12
12
|
</dl>
|
13
13
|
"Source":#{link_to_source(__FILE__)}
|
14
14
|
DESC
|
15
|
-
task :install
|
15
|
+
task :install do
|
16
16
|
fetch_or_default(:mysql_logrotate_path, "/var/lib/mysql/localhost-slow.log")
|
17
17
|
|
18
18
|
set :logrotate_name, "mysql"
|
@@ -3,11 +3,11 @@ namespace :backgroundjob do
|
|
3
3
|
namespace :monit do
|
4
4
|
|
5
5
|
desc <<-DESC
|
6
|
-
|
6
|
+
Setup backgroundjob (for application) monitrc.
|
7
7
|
|
8
8
|
"Source":#{link_to_source(__FILE__)}
|
9
9
|
DESC
|
10
|
-
task :
|
10
|
+
task :setup do
|
11
11
|
|
12
12
|
# Settings
|
13
13
|
fetch_or_default(:backgroundjob_pid_path, "#{shared_path}/pids/bj.pid")
|
data/lib/recipes/monit/mysql.rb
CHANGED
data/lib/recipes/mysql.rb
CHANGED
@@ -22,28 +22,34 @@ namespace :mysql do
|
|
22
22
|
<dd>Grant privilege types.</dd>
|
23
23
|
<dd>Defaults to @ALL@</dd>
|
24
24
|
|
25
|
+
<dt>mysql_admin_user</dt>
|
26
|
+
<dd>Mysql admin user.</dd>
|
27
|
+
<dd>Defaults to password prompt.</dd>
|
28
|
+
|
25
29
|
<dt>mysql_admin_password</dt>
|
26
|
-
<dd>Mysql admin password
|
30
|
+
<dd>Mysql admin password.</dd>
|
27
31
|
<dd>Defaults to password prompt.</dd>
|
28
32
|
</dl>
|
29
33
|
"Source":#{link_to_source(__FILE__)}
|
30
34
|
DESC
|
31
|
-
task :setup
|
35
|
+
task :setup do
|
32
36
|
|
33
37
|
# Settings
|
34
38
|
fetch(:db_name)
|
35
39
|
fetch(:db_user)
|
36
40
|
fetch(:db_pass)
|
41
|
+
fetch_or_default(:mysql_admin_user, "root")
|
37
42
|
fetch_or_default(:mysql_admin_password, prompt.password('Mysql admin password: '))
|
38
43
|
fetch_or_default(:mysql_grant_priv_type, "ALL")
|
39
44
|
fetch_or_default(:mysql_grant_locations, [ "localhost" ])
|
40
45
|
|
41
46
|
sql = template.load("mysql/install_db.sql.erb")
|
42
47
|
|
43
|
-
logger.trace "Running sql:\n#{sql}"
|
48
|
+
logger.trace "Running sql:\n#{sql}\n"
|
44
49
|
|
45
|
-
put sql, "/tmp/install_db_#{application}.sql"
|
46
|
-
run "mysql -u
|
50
|
+
put sql, "/tmp/install_db_#{application}.sql"
|
51
|
+
run "mysql -u #{mysql_admin_user} -p#{mysql_admin_password} < /tmp/install_db_#{application}.sql"
|
52
|
+
utils.rm("/tmp/install_db_#{application}.sql")
|
47
53
|
end
|
48
54
|
|
49
55
|
desc <<-DESC
|
@@ -64,7 +70,7 @@ namespace :mysql do
|
|
64
70
|
|
65
71
|
"Source":#{link_to_source(__FILE__)}
|
66
72
|
DESC
|
67
|
-
task :install_my_cnf
|
73
|
+
task :install_my_cnf do
|
68
74
|
fetch_or_default(:my_cnf_template, "mysql/my.cnf.innodb_1024.erb")
|
69
75
|
fetch_or_default(:db_socket, "/var/lib/mysql/mysql.sock")
|
70
76
|
fetch_or_default(:db_port, 3306)
|
data/lib/recipes/rails.rb
CHANGED
@@ -2,19 +2,34 @@
|
|
2
2
|
namespace :rails do
|
3
3
|
|
4
4
|
desc <<-DESC
|
5
|
-
Create database yaml in shared path. Note: If both
|
6
|
-
db_socket wins.
|
5
|
+
Create database yaml in shared path. Note: If both @:db_host@ and @:db_socket@ are used, @db_socket@ wins.
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
7
|
+
<dl>
|
8
|
+
<dt>db_name</dt>
|
9
|
+
<dd>Database name (rails).</dd>
|
10
|
+
<dd>@set :db_name, "app_db_name"@</dd>
|
11
|
+
|
12
|
+
<dt>db_user</dt>
|
13
|
+
<dd>Database user (rails).</dd>
|
14
|
+
<dd>@set :db_user, "app_db_user"@</dd>
|
15
|
+
|
16
|
+
<dt>db_pass</dt>
|
17
|
+
<dd>Database password (rails).</dd>
|
18
|
+
<dd>@set :db_pass, "the_password"@</dd>
|
19
|
+
|
20
|
+
<dt>db_host</dt>
|
21
|
+
<dd>Database host (can be nil, if you are using socket).</dd>
|
22
|
+
<dd class="default">Defaults to @nil@</dd>
|
23
|
+
|
24
|
+
<dt>db_socket</dt>
|
25
|
+
<dd>Database socket (can be nil, if you are using host).</dd>
|
26
|
+
<dd class="default">Defaults to @nil@</dd>
|
27
|
+
<dd>@set :db_socket, "/var/lib/mysql/mysql.sock"@</dd>
|
28
|
+
|
29
|
+
<dt>database_yml_template</dt>
|
30
|
+
<dd>Path to database yml erb template.
|
31
|
+
<dd class="default">Defaults to @rails/database.yml.erb@ (in this GEM)</dd>
|
32
|
+
</dl>
|
18
33
|
|
19
34
|
"Source":#{link_to_source(__FILE__)}
|
20
35
|
DESC
|
@@ -17,31 +17,30 @@ DAEMON="<%= backgroundjob_bin_path %>"
|
|
17
17
|
PIDFILE="<%= backgroundjob_pid_path %>"
|
18
18
|
|
19
19
|
start() {
|
20
|
-
|
20
|
+
echo -n $"Starting $DESC: "
|
21
|
+
daemon --user sick --pidfile $PIDFILE $DAEMON
|
21
22
|
RETVAL=$?
|
22
23
|
echo
|
23
24
|
return $RETVAL;
|
24
25
|
}
|
25
26
|
|
26
27
|
stop() {
|
27
|
-
|
28
|
+
echo -n $"Stopping $DESC:"
|
29
|
+
killproc -p $PIDFILE
|
30
|
+
RETVAL=$?
|
31
|
+
echo
|
32
|
+
return $RETVAL;
|
28
33
|
}
|
29
34
|
|
30
35
|
case "$1" in
|
31
36
|
start)
|
32
|
-
echo -n "Starting $DESC: $NAME"
|
33
37
|
start
|
34
|
-
RETVAL=$?;
|
35
38
|
;;
|
36
|
-
stop)
|
37
|
-
|
38
|
-
stop
|
39
|
-
RETVAL=$?;
|
39
|
+
stop)
|
40
|
+
stop
|
40
41
|
;;
|
41
42
|
restart)
|
42
|
-
echo -n "Restarting $DESC: $NAME"
|
43
43
|
stop
|
44
|
-
# Sleep after stop
|
45
44
|
sleep 1
|
46
45
|
start
|
47
46
|
RETVAL=$?;
|
@@ -22,6 +22,7 @@ PORT=<%= memcached_port %>
|
|
22
22
|
USER=root
|
23
23
|
|
24
24
|
start() {
|
25
|
+
echo -n $"Starting $DESC: "
|
25
26
|
daemon $DAEMON -d -m $MEM -p $PORT -u $USER -P $PIDFILE
|
26
27
|
RETVAL=$?
|
27
28
|
echo
|
@@ -29,40 +30,27 @@ start() {
|
|
29
30
|
}
|
30
31
|
|
31
32
|
stop() {
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
echo -n $"Stopping $DESC: "
|
34
|
+
killproc -p $PIDFILE memcached
|
35
|
+
RETVAL=$?
|
36
|
+
echo
|
37
|
+
return $RETVAL;
|
37
38
|
}
|
38
39
|
|
39
40
|
case "$1" in
|
40
41
|
start)
|
41
|
-
echo -n "Starting $DESC: $NAME"
|
42
42
|
start
|
43
|
-
RETVAL=$?;
|
44
43
|
;;
|
45
44
|
stop)
|
46
|
-
echo "Stopping $DESC: $NAME"
|
47
45
|
stop
|
48
|
-
RETVAL=$?;
|
49
46
|
;;
|
50
|
-
reload)
|
51
|
-
echo -n "Reloading $DESC configuration..."
|
52
|
-
reload
|
53
|
-
RETVAL=$?;
|
54
|
-
echo "reloaded."
|
55
|
-
;;
|
56
47
|
restart)
|
57
|
-
echo -n "Restarting $DESC: $NAME"
|
58
48
|
stop
|
59
|
-
# Sleep after stop
|
60
49
|
sleep 1
|
61
50
|
start
|
62
|
-
RETVAL=$?;
|
63
51
|
;;
|
64
52
|
*)
|
65
|
-
echo "Usage: $0 {start|stop|restart
|
53
|
+
echo "Usage: $0 {start|stop|restart}" >&2
|
66
54
|
RETVAL=3;
|
67
55
|
;;
|
68
56
|
esac
|
@@ -11,8 +11,12 @@
|
|
11
11
|
# Modified by: Gabriel Handford http://ducktyper.com
|
12
12
|
#
|
13
13
|
|
14
|
-
|
14
|
+
# Source function library
|
15
|
+
. /etc/rc.d/init.d/functions
|
15
16
|
|
17
|
+
RETVAL=0
|
18
|
+
|
19
|
+
NAME="mongrel_cluster_<%= application %>"
|
16
20
|
CONF_DIR=<%= mongrel_config_dir %>
|
17
21
|
PID_DIR=<%= mongrel_pid_dir %>
|
18
22
|
USER=<%= user %>
|
@@ -20,6 +24,40 @@ CMD=<%= mongrel_cluster_command %>
|
|
20
24
|
|
21
25
|
RETVAL=0
|
22
26
|
|
27
|
+
start() {
|
28
|
+
echo -n $"Starting $NAME: "
|
29
|
+
$CMD start -c $CONF_DIR --clean >/dev/null
|
30
|
+
RETVAL=$?
|
31
|
+
[ "$RETVAL" -eq 0 ] && success $"$NAME start" || failure $"$NAME start"
|
32
|
+
echo
|
33
|
+
return $RETVAL;
|
34
|
+
}
|
35
|
+
|
36
|
+
stop() {
|
37
|
+
echo -n $"Stopping $NAME: "
|
38
|
+
$CMD stop -c $CONF_DIR >/dev/null
|
39
|
+
RETVAL=$?
|
40
|
+
[ "$RETVAL" -eq 0 ] && success $"$NAME shutdown" || failure $"$NAME shutdown"
|
41
|
+
echo
|
42
|
+
return $RETVAL;
|
43
|
+
}
|
44
|
+
|
45
|
+
restart() {
|
46
|
+
echo -n $"Restarting $NAME: "
|
47
|
+
$CMD restart -c $CONF_DIR >/dev/null
|
48
|
+
RETVAL=$?
|
49
|
+
[ "$RETVAL" -eq 0 ] && success $"$NAME restart" || failure $"$NAME restart"
|
50
|
+
echo
|
51
|
+
return $RETVAL;
|
52
|
+
}
|
53
|
+
|
54
|
+
status() {
|
55
|
+
$CMD status -c $CONF_DIR
|
56
|
+
RETVAL=$?
|
57
|
+
echo
|
58
|
+
return $RETVAL;
|
59
|
+
}
|
60
|
+
|
23
61
|
fail() {
|
24
62
|
echo "Failed to start: $1"
|
25
63
|
exit 1
|
@@ -31,30 +69,25 @@ which $CMD >/dev/null || fail "$CMD not found"
|
|
31
69
|
# Go no further if config directory is missing.
|
32
70
|
[ -d "$CONF_DIR" ] || fail "$CONF_DIR not found"
|
33
71
|
|
72
|
+
# Go no further if config directory is missing.
|
73
|
+
[ -d "$PID_DIR" ] || fail "$PID_DIR not found"
|
74
|
+
|
34
75
|
case "$1" in
|
35
76
|
start)
|
36
|
-
|
37
|
-
mkdir -p $PID_DIR
|
38
|
-
chown $USER:$USER $PID_DIR
|
39
|
-
|
40
|
-
$CMD start -c $CONF_DIR --clean
|
41
|
-
RETVAL=$?
|
77
|
+
start
|
42
78
|
;;
|
43
79
|
stop)
|
44
|
-
|
45
|
-
RETVAL=$?
|
80
|
+
stop
|
46
81
|
;;
|
47
82
|
restart)
|
48
|
-
|
49
|
-
RETVAL=$?
|
83
|
+
restart
|
50
84
|
;;
|
51
85
|
status)
|
52
|
-
|
53
|
-
RETVAL=$?
|
86
|
+
status
|
54
87
|
;;
|
55
88
|
*)
|
56
89
|
echo "Usage: $0 {start|stop|restart|status}"
|
57
|
-
|
90
|
+
RETVAL=3;
|
58
91
|
;;
|
59
92
|
esac
|
60
93
|
|
@@ -19,7 +19,9 @@ CONFFILE=/etc/monitrc
|
|
19
19
|
LOGFILE=<%= monit_log_path %>
|
20
20
|
PIDFILE=<%= monit_pid_path %>
|
21
21
|
|
22
|
+
|
22
23
|
start() {
|
24
|
+
echo -n $"Starting $DESC: "
|
23
25
|
daemon $DAEMON -l $LOGFILE -p $PIDFILE -c $CONFFILE
|
24
26
|
RETVAL=$?
|
25
27
|
echo
|
@@ -27,40 +29,38 @@ start() {
|
|
27
29
|
}
|
28
30
|
|
29
31
|
stop() {
|
30
|
-
|
32
|
+
echo -n $"Stopping $DESC: "
|
33
|
+
killproc -p $PIDFILE monit -TERM
|
34
|
+
RETVAL=$?
|
35
|
+
echo
|
36
|
+
return $RETVAL;
|
31
37
|
}
|
32
38
|
|
33
39
|
reload() {
|
34
|
-
|
40
|
+
echo -n $"Reloading $DESC: "
|
41
|
+
killproc -p $PIDFILE monit -HUP
|
42
|
+
RETVAL=$?
|
43
|
+
echo
|
44
|
+
return $RETVAL;
|
35
45
|
}
|
36
46
|
|
37
47
|
case "$1" in
|
38
48
|
start)
|
39
|
-
#echo -n "Starting $DESC: $NAME"
|
40
49
|
start
|
41
|
-
RETVAL=$?;
|
42
50
|
;;
|
43
51
|
stop)
|
44
|
-
echo "Stopping $DESC: $NAME"
|
45
52
|
stop
|
46
|
-
RETVAL=$?;
|
47
53
|
;;
|
48
54
|
reload)
|
49
|
-
echo -n "Reloading $DESC configuration..."
|
50
55
|
reload
|
51
|
-
RETVAL=$?;
|
52
|
-
echo "reloaded."
|
53
56
|
;;
|
54
57
|
restart)
|
55
|
-
echo -n "Restarting $DESC: $NAME"
|
56
58
|
stop
|
57
|
-
# Sleep after stop
|
58
59
|
sleep 1
|
59
60
|
start
|
60
|
-
RETVAL=$?;
|
61
61
|
;;
|
62
62
|
*)
|
63
|
-
echo "Usage: $0 {start|stop|restart|
|
63
|
+
echo "Usage: $0 {start|stop|restart|reload}" >&2
|
64
64
|
RETVAL=3;
|
65
65
|
;;
|
66
66
|
esac
|
@@ -16,6 +16,8 @@
|
|
16
16
|
# Licensed under the Academic Free License v. 3.0
|
17
17
|
# http://blog.evanweaver.com/files/mysql/LICENSE
|
18
18
|
#
|
19
|
+
# Modified by: gabrielh@gmail.com (http://ducktyper.com)
|
20
|
+
#
|
19
21
|
|
20
22
|
[client]
|
21
23
|
port = <%= db_port %>
|
@@ -99,7 +101,7 @@ log_long_format
|
|
99
101
|
|
100
102
|
[mysqldump]
|
101
103
|
quick
|
102
|
-
max_allowed_packet =
|
104
|
+
max_allowed_packet = 32M
|
103
105
|
|
104
106
|
[mysql]
|
105
107
|
no-auto-rehash
|
@@ -0,0 +1,127 @@
|
|
1
|
+
#
|
2
|
+
# my.cnf.innodb_1024
|
3
|
+
#
|
4
|
+
# This is a MySQL 5.x configuration file designed for the typical
|
5
|
+
# webapp, running on a 1GB server that is also the app and
|
6
|
+
# httpd server. The below configuration dedicates about half of
|
7
|
+
# the system resources to MySQL. It is InnoDB-specific, and
|
8
|
+
# will not perform well with many MyISAM tables. It supports
|
9
|
+
# limited ACID and referential integrity. It does not support
|
10
|
+
# replication.
|
11
|
+
#
|
12
|
+
# By Evan Weaver
|
13
|
+
# http://blog.evanweaver.com/articles/2007/04/30/top-secret-tuned-mysql-configurations-for-rails
|
14
|
+
#
|
15
|
+
# Copyright 2007, Cloudburst, LLC
|
16
|
+
# Licensed under the Academic Free License v. 3.0
|
17
|
+
# http://blog.evanweaver.com/files/mysql/LICENSE
|
18
|
+
#
|
19
|
+
# Modified by: gabrielh@gmail.com (http://ducktyper.com)
|
20
|
+
#
|
21
|
+
|
22
|
+
[client]
|
23
|
+
port = <%= db_port %>
|
24
|
+
socket = <%= db_socket %>
|
25
|
+
#max_allowed_packet = 32M
|
26
|
+
|
27
|
+
[mysqld]
|
28
|
+
######### engine and access interfaces
|
29
|
+
skip-networking
|
30
|
+
skip-locking
|
31
|
+
skip-bdb
|
32
|
+
|
33
|
+
port = <%= db_port %>
|
34
|
+
socket = <%= db_socket %>
|
35
|
+
default-storage-engine = innodb
|
36
|
+
|
37
|
+
######### character sets
|
38
|
+
character_set_server = utf8
|
39
|
+
collation_server = utf8_general_ci
|
40
|
+
|
41
|
+
######### innodb options
|
42
|
+
innodb_additional_mem_pool_size = 16M
|
43
|
+
# buffer pool size is most critical for innodb's performance and memory usage
|
44
|
+
innodb_buffer_pool_size = 160M
|
45
|
+
# innodb_buffer_pool_size = 256M
|
46
|
+
innodb_data_file_path = ibdata1:10M:autoextend
|
47
|
+
innodb_data_home_dir = /var/lib/mysql
|
48
|
+
innodb_file_io_threads = 4
|
49
|
+
innodb_thread_concurrency = 4
|
50
|
+
# 2 is fastest but slightly less reliable than 0 or 1, if you don't trust your hard disks
|
51
|
+
innodb_flush_log_at_trx_commit = 2
|
52
|
+
|
53
|
+
innodb_log_buffer_size = 64M
|
54
|
+
# innodb_log_file_size * innodb_log_files_in_group < buffer_pool_size
|
55
|
+
innodb_log_file_size = 48M
|
56
|
+
# innodb_log_file_size = 80M
|
57
|
+
innodb_log_files_in_group = 3
|
58
|
+
# use a secondary volume if possible for a concurrent read/write speed boost
|
59
|
+
innodb_log_group_home_dir = /var/lib/mysql
|
60
|
+
|
61
|
+
innodb_max_dirty_pages_pct = 90
|
62
|
+
innodb_lock_wait_timeout = 120
|
63
|
+
|
64
|
+
######### myisam
|
65
|
+
# innodb still requires the myisam engine for mysql's internal metadata table
|
66
|
+
key_buffer_size = 16M
|
67
|
+
|
68
|
+
######### general
|
69
|
+
connect_timeout = 10
|
70
|
+
back_log = 50
|
71
|
+
# you can't have more mongrels or fastcgi processes than the max_connections setting
|
72
|
+
max_connections = 64
|
73
|
+
# max_connections = 96
|
74
|
+
max_connect_errors = 10
|
75
|
+
table_cache = 2048
|
76
|
+
max_allowed_packet = 32M
|
77
|
+
|
78
|
+
open_files_limit = 1024
|
79
|
+
# this is the in-memory tmp table max size
|
80
|
+
max_heap_table_size = 32M
|
81
|
+
# max_heap_table_size = 64M
|
82
|
+
# below are per-connection and per-sub-query
|
83
|
+
join_buffer_size = 4M
|
84
|
+
read_buffer_size = 4M
|
85
|
+
sort_buffer_size = 8M
|
86
|
+
read_rnd_buffer_size = 8M
|
87
|
+
|
88
|
+
thread_cache_size = 8
|
89
|
+
thread_concurrency = 8
|
90
|
+
|
91
|
+
# query_cache_size is a global setting
|
92
|
+
query_cache_size = 64M
|
93
|
+
# query_cache_size = 128M
|
94
|
+
query_cache_limit = 2M
|
95
|
+
thread_stack = 192K
|
96
|
+
transaction_isolation = READ-COMMITTED
|
97
|
+
# this is the on-disk max size
|
98
|
+
tmp_table_size = 128M
|
99
|
+
tmpdir = /tmp
|
100
|
+
|
101
|
+
|
102
|
+
# You can log slow queries to the mysql log directory to help isolate performance problems
|
103
|
+
log_slow_queries
|
104
|
+
long_query_time = 3
|
105
|
+
log_long_format
|
106
|
+
|
107
|
+
[mysqldump]
|
108
|
+
quick
|
109
|
+
max_allowed_packet = 32M
|
110
|
+
|
111
|
+
[mysql]
|
112
|
+
no-auto-rehash
|
113
|
+
|
114
|
+
[myisamchk]
|
115
|
+
# not used except when repairing the database at startup
|
116
|
+
key_buffer = 64M
|
117
|
+
sort_buffer_size = 64M
|
118
|
+
read_buffer = 2M
|
119
|
+
write_buffer = 2M
|
120
|
+
|
121
|
+
[mysqlhotcopy]
|
122
|
+
interactive-timeout
|
123
|
+
|
124
|
+
[mysqld_safe]
|
125
|
+
open-files-limit = 8192
|
126
|
+
|
127
|
+
# PS. Do not under any circumstances enable binlog
|
@@ -8,7 +8,8 @@
|
|
8
8
|
# Modified: Geoffrey Grosenbach http://topfunky.com
|
9
9
|
# Modified: Gabriel Handford http://ducktyper.com
|
10
10
|
|
11
|
-
|
11
|
+
# Source function library
|
12
|
+
. /etc/rc.d/init.d/functions
|
12
13
|
|
13
14
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
14
15
|
DESC="nginx daemon"
|
@@ -21,35 +22,41 @@ PIDFILE=<%= nginx_pid_path %>
|
|
21
22
|
test -x $DAEMON || exit 0
|
22
23
|
|
23
24
|
start() {
|
24
|
-
|
25
|
+
echo -n $"Starting $DESC: "
|
26
|
+
daemon $DAEMON -c $CONFIGFILE
|
27
|
+
RETVAL=$?
|
28
|
+
echo
|
29
|
+
return $RETVAL;
|
25
30
|
}
|
26
31
|
|
27
32
|
stop() {
|
28
|
-
|
33
|
+
echo -n $"Stopping $DESC: "
|
34
|
+
killproc -p $PIDFILE nginx -QUIT
|
35
|
+
RETVAL=$?
|
36
|
+
echo
|
37
|
+
return $RETVAL;
|
29
38
|
}
|
30
39
|
|
31
40
|
reload() {
|
32
|
-
|
41
|
+
echo -n $"Reloading $DESC: "
|
42
|
+
killproc -p $PIDFILE nginx -HUP
|
43
|
+
RETVAL=$?
|
44
|
+
echo
|
45
|
+
return $RETVAL;
|
33
46
|
}
|
34
47
|
|
35
48
|
case "$1" in
|
36
49
|
start)
|
37
|
-
echo -n "Starting $DESC: $NAME"
|
38
50
|
start
|
39
51
|
;;
|
40
52
|
stop)
|
41
|
-
echo -n "Stopping $DESC: $NAME"
|
42
53
|
stop
|
43
54
|
;;
|
44
55
|
reload)
|
45
|
-
echo -n "Reloading $DESC configuration..."
|
46
56
|
reload
|
47
|
-
echo "reloaded."
|
48
57
|
;;
|
49
58
|
restart)
|
50
|
-
echo -n "Restarting $DESC: $NAME"
|
51
59
|
stop
|
52
|
-
# Sleep before start
|
53
60
|
sleep 1
|
54
61
|
start
|
55
62
|
;;
|
@@ -59,4 +66,4 @@ case "$1" in
|
|
59
66
|
;;
|
60
67
|
esac
|
61
68
|
|
62
|
-
exit
|
69
|
+
exit $RETVAL;
|
@@ -18,58 +18,63 @@ DAEMON=<%= sphinx_prefix %>/bin/searchd
|
|
18
18
|
CONFIGFILE=<%= sphinx_conf_path %>
|
19
19
|
PIDFILE=<%= sphinx_pid_path %>
|
20
20
|
INDEX_DIR=<%= sphinx_index_root %>
|
21
|
+
USER=<%= user %>
|
22
|
+
|
21
23
|
|
22
24
|
start() {
|
23
|
-
|
25
|
+
echo -n $"Starting $DESC: "
|
26
|
+
daemon --user $USER --pidfile $PIDFILE $DAEMON --config $CONFIGFILE
|
24
27
|
RETVAL=$?
|
25
28
|
echo
|
26
29
|
return $RETVAL;
|
27
30
|
}
|
28
31
|
|
29
32
|
stop() {
|
30
|
-
|
33
|
+
echo -n $"Stopping $DESC: "
|
34
|
+
killproc -p $PIDFILE
|
35
|
+
RETVAL=$?
|
36
|
+
echo
|
37
|
+
return $RETVAL;
|
31
38
|
}
|
32
39
|
|
33
40
|
reload() {
|
34
|
-
|
41
|
+
echo -n $"Reloading $DESC: "
|
42
|
+
killproc -p $PIDFILE searchd -HUP
|
43
|
+
RETVAL=$?
|
44
|
+
echo
|
45
|
+
return $RETVAL;
|
35
46
|
}
|
36
47
|
|
37
48
|
clean() {
|
38
|
-
|
49
|
+
echo -n $"Cleaning $DESC: "
|
50
|
+
pid=`cat $PIDFILE 2>/dev/null`
|
39
51
|
|
40
52
|
if checkpid $pid; then
|
41
|
-
|
53
|
+
failure $"$NAME clean"
|
42
54
|
else
|
43
55
|
rm -f $INDEX_DIR/*.spl
|
44
|
-
|
56
|
+
RETVAL=$?
|
57
|
+
[ "$RETVAL" -eq 0 ] && success $"$NAME clean" || failure $"$NAME clean"
|
45
58
|
fi
|
46
|
-
|
59
|
+
echo
|
60
|
+
return $RETVAL;
|
47
61
|
}
|
48
62
|
|
49
63
|
case "$1" in
|
50
64
|
start)
|
51
|
-
|
65
|
+
clean
|
52
66
|
start
|
53
|
-
RETVAL=$?;
|
54
67
|
;;
|
55
68
|
stop)
|
56
|
-
echo -n "Stopping $DESC: $NAME"
|
57
69
|
stop
|
58
|
-
RETVAL=$?;
|
59
70
|
;;
|
60
71
|
reload)
|
61
|
-
echo -n "Reloading $DESC configuration..."
|
62
72
|
reload
|
63
|
-
RETVAL=$?;
|
64
|
-
echo "reloaded."
|
65
73
|
;;
|
66
74
|
restart)
|
67
|
-
echo -n "Restarting $DESC: $NAME"
|
68
75
|
stop
|
69
|
-
# Sleep after stop
|
70
76
|
sleep 1
|
71
77
|
start
|
72
|
-
RETVAL=$?;
|
73
78
|
;;
|
74
79
|
clean)
|
75
80
|
echo -n "Cleaning $DESC"
|
@@ -77,7 +82,7 @@ case "$1" in
|
|
77
82
|
RETVAL=$?;
|
78
83
|
;;
|
79
84
|
*)
|
80
|
-
echo "Usage: $0 {start|stop|restart|
|
85
|
+
echo "Usage: $0 {start|stop|restart|reload|clean}" >&2
|
81
86
|
RETVAL=3;
|
82
87
|
;;
|
83
88
|
esac
|
data/website/index.html
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
<div id="version" class="clickable box" onclick='document.location = "http://rubyforge.org/projects/capitate"; return false'>
|
37
37
|
<p>Get Version</p>
|
38
|
-
<a href="http://rubyforge.org/projects/capitate" class="numbers">0.
|
38
|
+
<a href="http://rubyforge.org/projects/capitate" class="numbers">0.3.1</a>
|
39
39
|
</div>
|
40
40
|
|
41
41
|
<div id="recipes">
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capitate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ""
|
6
6
|
authors:
|
7
7
|
- Gabriel Handford
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-04-02 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -112,7 +112,7 @@ files:
|
|
112
112
|
- lib/templates/memcached/memcached.initd.centos.erb
|
113
113
|
- lib/templates/memcached/memcached.monitrc.erb
|
114
114
|
- lib/templates/memcached/memcached.yml.erb
|
115
|
-
- lib/templates/mongrel/mongrel_cluster.initd.erb
|
115
|
+
- lib/templates/mongrel/mongrel_cluster.initd.centos.erb
|
116
116
|
- lib/templates/mongrel/mongrel_cluster.monitrc.erb
|
117
117
|
- lib/templates/mongrel/mongrel_cluster.yml.erb
|
118
118
|
- lib/templates/monit/monit.cnf
|
@@ -120,9 +120,10 @@ files:
|
|
120
120
|
- lib/templates/monit/monitrc.erb
|
121
121
|
- lib/templates/mysql/install_db.sql.erb
|
122
122
|
- lib/templates/mysql/my.cnf.innodb_1024.erb
|
123
|
+
- lib/templates/mysql/my.cnf.innodb_512.erb
|
123
124
|
- lib/templates/mysql/mysql.monitrc.erb
|
124
125
|
- lib/templates/nginx/nginx.conf.erb
|
125
|
-
- lib/templates/nginx/nginx.initd.erb
|
126
|
+
- lib/templates/nginx/nginx.initd.centos.erb
|
126
127
|
- lib/templates/nginx/nginx.monitrc.erb
|
127
128
|
- lib/templates/nginx/nginx_vhost.conf.erb
|
128
129
|
- lib/templates/rails/database.yml.erb
|