Empact-deprec 1.99.21
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 +170 -0
- data/COPYING +19 -0
- data/LICENSE +339 -0
- data/README +136 -0
- data/THANKS +5 -0
- data/bin/depify +133 -0
- data/docs/ANNOUNCE.deprec2 +47 -0
- data/docs/README.install +88 -0
- data/docs/README.nagios +28 -0
- data/docs/README.rails +20 -0
- data/docs/README.svn +31 -0
- data/docs/ROADMAP.txt +74 -0
- data/docs/deprec-1.x/deprec-1.x.quickstart +50 -0
- data/docs/deprec-1.x/notes.txt +12 -0
- data/docs/deprec_banner.gif +0 -0
- data/lib/deprec.rb +8 -0
- data/lib/deprec/capistrano_extensions.rb +378 -0
- data/lib/deprec/recipes.rb +40 -0
- data/lib/deprec/recipes/aoe.rb +117 -0
- data/lib/deprec/recipes/apache.rb +179 -0
- data/lib/deprec/recipes/ar_sendmail.rb +65 -0
- data/lib/deprec/recipes/canonical.rb +57 -0
- data/lib/deprec/recipes/deprec.rb +155 -0
- data/lib/deprec/recipes/deprecated.rb +71 -0
- data/lib/deprec/recipes/example.rb +115 -0
- data/lib/deprec/recipes/git.rb +168 -0
- data/lib/deprec/recipes/gitosis.rb +47 -0
- data/lib/deprec/recipes/god.rb +107 -0
- data/lib/deprec/recipes/heartbeat.rb +138 -0
- data/lib/deprec/recipes/iptables.rb +53 -0
- data/lib/deprec/recipes/logrotate.rb +51 -0
- data/lib/deprec/recipes/lvm.rb +20 -0
- data/lib/deprec/recipes/memcached.rb +102 -0
- data/lib/deprec/recipes/mongrel.rb +209 -0
- data/lib/deprec/recipes/monit.rb +130 -0
- data/lib/deprec/recipes/mysql.rb +115 -0
- data/lib/deprec/recipes/nagios.rb +302 -0
- data/lib/deprec/recipes/network.rb +84 -0
- data/lib/deprec/recipes/nginx.rb +154 -0
- data/lib/deprec/recipes/ntp.rb +96 -0
- data/lib/deprec/recipes/php.rb +99 -0
- data/lib/deprec/recipes/postfix.rb +105 -0
- data/lib/deprec/recipes/rails.rb +302 -0
- data/lib/deprec/recipes/ruby.rb +66 -0
- data/lib/deprec/recipes/sphinx.rb +83 -0
- data/lib/deprec/recipes/ssh.rb +93 -0
- data/lib/deprec/recipes/svn.rb +169 -0
- data/lib/deprec/recipes/swiftiply.rb +108 -0
- data/lib/deprec/recipes/thin.rb +201 -0
- data/lib/deprec/recipes/trac.rb +277 -0
- data/lib/deprec/recipes/ubuntu.rb +20 -0
- data/lib/deprec/recipes/users.rb +90 -0
- data/lib/deprec/recipes/utils.rb +39 -0
- data/lib/deprec/recipes/xen.rb +259 -0
- data/lib/deprec/templates/aoe/aoe-init +55 -0
- data/lib/deprec/templates/aoe/fence_aoemask +351 -0
- data/lib/deprec/templates/apache/httpd-vhost-app.conf.erb +144 -0
- data/lib/deprec/templates/apache/httpd.conf +465 -0
- data/lib/deprec/templates/apache/index.html.erb +37 -0
- data/lib/deprec/templates/apache/master.css +72 -0
- data/lib/deprec/templates/ar_sendmail/logrotate.conf.erb +9 -0
- data/lib/deprec/templates/ar_sendmail/monit.conf.erb +5 -0
- data/lib/deprec/templates/coraid/aoe-init +55 -0
- data/lib/deprec/templates/deprec/caprc.erb +14 -0
- data/lib/deprec/templates/god/god-init-script +71 -0
- data/lib/deprec/templates/god/god-notifications +0 -0
- data/lib/deprec/templates/god/god_mongrel.erb +81 -0
- data/lib/deprec/templates/god/god_mysql.erb +50 -0
- data/lib/deprec/templates/god/god_nginx.erb +61 -0
- data/lib/deprec/templates/god/god_thin.erb +80 -0
- data/lib/deprec/templates/heartbeat/authkeys.erb +2 -0
- data/lib/deprec/templates/heartbeat/ha.cf.erb +15 -0
- data/lib/deprec/templates/heartbeat/haresources.erb +1 -0
- data/lib/deprec/templates/iptables/iptables.up.erb +41 -0
- data/lib/deprec/templates/logrotate/logrotate.conf.erb +32 -0
- data/lib/deprec/templates/memcached/memcached-init-script +65 -0
- data/lib/deprec/templates/memcached/memcached.conf.erb +46 -0
- data/lib/deprec/templates/mongrel/logrotate.conf.erb +11 -0
- data/lib/deprec/templates/mongrel/mongrel_cluster-init-script +54 -0
- data/lib/deprec/templates/mongrel/mongrel_cluster.logrotate.d +14 -0
- data/lib/deprec/templates/mongrel/mongrel_cluster.yml.erb +10 -0
- data/lib/deprec/templates/mongrel/monit.conf.erb +17 -0
- data/lib/deprec/templates/monit/monit-init-script +104 -0
- data/lib/deprec/templates/monit/monitrc.erb +227 -0
- data/lib/deprec/templates/monit/nothing +0 -0
- data/lib/deprec/templates/mysql/create_databases.sql +20 -0
- data/lib/deprec/templates/mysql/database.yml.prod +6 -0
- data/lib/deprec/templates/mysql/database.yml.stage +6 -0
- data/lib/deprec/templates/mysql/my.cnf.erb +140 -0
- data/lib/deprec/templates/mysql/sphinx.conf.prod +542 -0
- data/lib/deprec/templates/mysql/sphinx.conf.stage +542 -0
- data/lib/deprec/templates/nagios/cgi.cfg.erb +321 -0
- data/lib/deprec/templates/nagios/commands.cfg.erb +240 -0
- data/lib/deprec/templates/nagios/contacts.cfg.erb +75 -0
- data/lib/deprec/templates/nagios/hosts.cfg.erb +70 -0
- data/lib/deprec/templates/nagios/htpasswd.users +1 -0
- data/lib/deprec/templates/nagios/localhost.cfg.erb +157 -0
- data/lib/deprec/templates/nagios/nagios.cfg.erb +1274 -0
- data/lib/deprec/templates/nagios/nagios_apache_vhost.conf.erb +45 -0
- data/lib/deprec/templates/nagios/nrpe.cfg.erb +208 -0
- data/lib/deprec/templates/nagios/nrpe.xinetd.erb +16 -0
- data/lib/deprec/templates/nagios/resource.cfg.erb +34 -0
- data/lib/deprec/templates/nagios/services.cfg.erb +7 -0
- data/lib/deprec/templates/nagios/templates.cfg.erb +190 -0
- data/lib/deprec/templates/nagios/timeperiods.cfg.erb +94 -0
- data/lib/deprec/templates/network/hostname.erb +1 -0
- data/lib/deprec/templates/network/hosts.erb +2 -0
- data/lib/deprec/templates/network/interfaces.erb +18 -0
- data/lib/deprec/templates/nginx/logrotate.conf.erb +13 -0
- data/lib/deprec/templates/nginx/mime.types.erb +70 -0
- data/lib/deprec/templates/nginx/nginx-init-script +62 -0
- data/lib/deprec/templates/nginx/nginx.conf.erb +53 -0
- data/lib/deprec/templates/nginx/nginx.logrotate.d +12 -0
- data/lib/deprec/templates/nginx/nothing.conf +1 -0
- data/lib/deprec/templates/nginx/rails_nginx_vhost.conf.erb +45 -0
- data/lib/deprec/templates/ntp/ntp.conf.erb +42 -0
- data/lib/deprec/templates/postfix/aliases.erb +3 -0
- data/lib/deprec/templates/postfix/dynamicmaps.cf.erb +8 -0
- data/lib/deprec/templates/postfix/main.cf.erb +41 -0
- data/lib/deprec/templates/postfix/master.cf.erb +77 -0
- data/lib/deprec/templates/rails/database.yml.erb +6 -0
- data/lib/deprec/templates/sphinx/monit.conf.erb +5 -0
- data/lib/deprec/templates/ssh/ssh_config.erb +50 -0
- data/lib/deprec/templates/ssh/sshd_config.erb +78 -0
- data/lib/deprec/templates/subversion/svn.apache.vhost.erb +43 -0
- data/lib/deprec/templates/swiftiply/swiftiply-init-script +61 -0
- data/lib/deprec/templates/swiftiply/swiftiply.yml.erb +11 -0
- data/lib/deprec/templates/thin/thin-init-script +51 -0
- data/lib/deprec/templates/thin/thin.yml.erb +11 -0
- data/lib/deprec/templates/trac/apache_vhost.conf.erb +24 -0
- data/lib/deprec/templates/trac/nginx_vhost.conf.erb +26 -0
- data/lib/deprec/templates/trac/trac.ini.erb +169 -0
- data/lib/deprec/templates/trac/trac_deprec.png +0 -0
- data/lib/deprec/templates/trac/tracd-init.erb +43 -0
- data/lib/deprec/templates/trac/users.htdigest.erb +0 -0
- data/lib/deprec/templates/xen/15-disable-hwclock +40 -0
- data/lib/deprec/templates/xen/network-bridge-wrapper +3 -0
- data/lib/deprec/templates/xen/xen-tools.conf.erb +220 -0
- data/lib/deprec/templates/xen/xend-config.sxp.erb +195 -0
- data/lib/deprec/templates/xen/xend-init.erb +69 -0
- data/lib/deprec/templates/xen/xendomains.erb +137 -0
- data/lib/deprec/templates/xen/xm.tmpl.erb +85 -0
- data/lib/vmbuilder_plugins/all.rb +20 -0
- data/lib/vmbuilder_plugins/apt.rb +93 -0
- data/lib/vmbuilder_plugins/emerge.rb +76 -0
- data/lib/vmbuilder_plugins/gem.rb +90 -0
- data/lib/vmbuilder_plugins/std.rb +203 -0
- metadata +207 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
|
|
4
|
+
namespace :deprec do
|
|
5
|
+
namespace :mongrel do
|
|
6
|
+
|
|
7
|
+
set :mongrel_servers, 2
|
|
8
|
+
set :mongrel_port, 8000
|
|
9
|
+
set :mongrel_address, "127.0.0.1"
|
|
10
|
+
set(:mongrel_environment) { rails_env }
|
|
11
|
+
set(:mongrel_log_dir) { "#{deploy_to}/shared/log" }
|
|
12
|
+
set(:mongrel_pid_dir) { "#{deploy_to}/shared/pids" }
|
|
13
|
+
set :mongrel_conf_dir, '/etc/mongrel_cluster'
|
|
14
|
+
set(:mongrel_conf) { "/etc/mongrel_cluster/#{application}.yml" }
|
|
15
|
+
set :mongrel_user_prefix, 'mongrel_'
|
|
16
|
+
set(:mongrel_user) { mongrel_user_prefix + application }
|
|
17
|
+
set :mongrel_group_prefix, 'app_'
|
|
18
|
+
set(:mongrel_group) { mongrel_group_prefix + application }
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# Install
|
|
22
|
+
|
|
23
|
+
desc "Install mongrel"
|
|
24
|
+
task :install, :roles => :app do
|
|
25
|
+
gem2.select 'mongrel' # mongrel requires we select a version
|
|
26
|
+
gem2.install 'mongrel_cluster'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
task :symlink_logrotate_config, :roles => :web do
|
|
30
|
+
sudo "ln -sf #{deploy_to}/mongrel/logrotate.conf /etc/logrotate.d/mongrel-#{application}"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Configure
|
|
34
|
+
|
|
35
|
+
SYSTEM_CONFIG_FILES[:mongrel] = [
|
|
36
|
+
|
|
37
|
+
{:template => 'mongrel_cluster-init-script',
|
|
38
|
+
:path => '/etc/init.d/mongrel_cluster',
|
|
39
|
+
:mode => 0755,
|
|
40
|
+
:owner => 'root:root'}
|
|
41
|
+
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
PROJECT_CONFIG_FILES[:mongrel] = [
|
|
45
|
+
|
|
46
|
+
{:template => 'mongrel_cluster.yml.erb',
|
|
47
|
+
:path => 'cluster.yml',
|
|
48
|
+
:mode => 0644,
|
|
49
|
+
:owner => 'root:root'},
|
|
50
|
+
|
|
51
|
+
{:template => 'monit.conf.erb',
|
|
52
|
+
:path => "monit.conf",
|
|
53
|
+
:mode => 0600,
|
|
54
|
+
:owner => 'root:root'},
|
|
55
|
+
|
|
56
|
+
{:template => 'logrotate.conf.erb',
|
|
57
|
+
:path => "logrotate.conf",
|
|
58
|
+
:mode => 0644,
|
|
59
|
+
:owner => 'root:root'}
|
|
60
|
+
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
desc "Generate configuration file(s) for mongrel from template(s)"
|
|
64
|
+
task :config_gen do
|
|
65
|
+
config_gen_system
|
|
66
|
+
config_gen_project
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
task :config_gen_system do
|
|
70
|
+
SYSTEM_CONFIG_FILES[:mongrel].each do |file|
|
|
71
|
+
deprec2.render_template(:mongrel, file)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
task :config_gen_project do
|
|
76
|
+
PROJECT_CONFIG_FILES[:mongrel].each do |file|
|
|
77
|
+
deprec2.render_template(:mongrel, file)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
desc 'Deploy configuration files(s) for mongrel'
|
|
82
|
+
task :config, :roles => :app do
|
|
83
|
+
config_system
|
|
84
|
+
config_project
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
task :config_system, :roles => :app do
|
|
88
|
+
deprec2.push_configs(:mongrel, SYSTEM_CONFIG_FILES[:mongrel])
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
task :config_project, :roles => :app do
|
|
92
|
+
create_mongrel_user_and_group
|
|
93
|
+
deprec2.push_configs(:mongrel, PROJECT_CONFIG_FILES[:mongrel])
|
|
94
|
+
symlink_mongrel_cluster
|
|
95
|
+
symlink_monit_config
|
|
96
|
+
symlink_logrotate_config
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
task :symlink_monit_config, :roles => :app do
|
|
100
|
+
deprec2.mkdir(monit_confd_dir, :via => :sudo)
|
|
101
|
+
sudo "ln -sf #{deploy_to}/mongrel/monit.conf #{monit_confd_dir}/mongrel_#{application}.conf"
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
task :unlink_monit_config, :roles => :app do
|
|
105
|
+
sudo "test -L #{monit_confd_dir}/mongrel_#{application}.conf && unlink #{monit_confd_dir}/mongrel_#{application}.conf"
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
task :symlink_mongrel_cluster, :roles => :app do
|
|
109
|
+
deprec2.mkdir(mongrel_conf_dir, :via => :sudo)
|
|
110
|
+
sudo "ln -sf #{deploy_to}/mongrel/cluster.yml #{mongrel_conf}"
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
task :unlink_mongrel_cluster, :roles => :app do
|
|
114
|
+
sudo "test -L #{mongrel_conf} && unlink #{mongrel_conf}"
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# Control
|
|
119
|
+
|
|
120
|
+
desc "Start application server."
|
|
121
|
+
task :start, :roles => :app do
|
|
122
|
+
send(run_method, "mongrel_rails cluster::start --clean -C #{mongrel_conf}")
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
desc "Stop application server."
|
|
126
|
+
task :stop, :roles => :app do
|
|
127
|
+
send(run_method, "mongrel_rails cluster::stop -C #{mongrel_conf}")
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
desc "Restart application server."
|
|
131
|
+
task :restart, :roles => :app do
|
|
132
|
+
send(run_method, "mongrel_rails cluster::restart --clean -C #{mongrel_conf}")
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
task :activate, :roles => :app do
|
|
136
|
+
activate_system
|
|
137
|
+
activate_project
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
task :activate_system, :roles => :app do
|
|
141
|
+
send(run_method, "update-rc.d mongrel_cluster defaults")
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
task :activate_project, :roles => :app do
|
|
145
|
+
symlink_mongrel_cluster
|
|
146
|
+
symlink_monit_config
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
task :deactivate, :roles => :app do
|
|
150
|
+
puts
|
|
151
|
+
puts "******************************************************************"
|
|
152
|
+
puts
|
|
153
|
+
puts "Danger!"
|
|
154
|
+
puts
|
|
155
|
+
puts "Do you want to deactivate just this project or all mongrel"
|
|
156
|
+
puts "clusters on this server? Try a more granular command:"
|
|
157
|
+
puts
|
|
158
|
+
puts "cap deprec:mongrel:deactivate_system # disable all clusters"
|
|
159
|
+
puts "cap deprec:mongrel:deactivate_project # disable only this project"
|
|
160
|
+
puts
|
|
161
|
+
puts "******************************************************************"
|
|
162
|
+
puts
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
task :deactivate_system, :roles => :app do
|
|
166
|
+
send(run_method, "update-rc.d -f mongrel_cluster remove")
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
task :deactivate_project, :roles => :app do
|
|
170
|
+
unlink_mongrel_cluster
|
|
171
|
+
unlink_monit_config
|
|
172
|
+
restart
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
task :backup, :roles => :app do
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
task :restore, :roles => :app do
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
desc "create user and group for mongel to run as"
|
|
182
|
+
task :create_mongrel_user_and_group, :roles => :app do
|
|
183
|
+
deprec2.groupadd(mongrel_group)
|
|
184
|
+
deprec2.useradd(mongrel_user, :group => mongrel_group, :homedir => false)
|
|
185
|
+
# Set the primary group for the mongrel user (in case user already existed
|
|
186
|
+
# when previous command was run)
|
|
187
|
+
sudo "usermod --gid #{mongrel_group} #{mongrel_user}"
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
desc "set group ownership and permissions on dirs mongrel needs to write to"
|
|
191
|
+
task :set_perms_for_mongrel_dirs, :roles => :app do
|
|
192
|
+
tmp_dir = "#{deploy_to}/current/tmp"
|
|
193
|
+
shared_dir = "#{deploy_to}/shared"
|
|
194
|
+
files = ["#{mongrel_log_dir}/mongrel.log", "#{mongrel_log_dir}/#{rails_env}.log"]
|
|
195
|
+
|
|
196
|
+
sudo "chgrp -R #{mongrel_group} #{tmp_dir} #{shared_dir}"
|
|
197
|
+
sudo "chmod -R g+w #{tmp_dir} #{shared_dir}"
|
|
198
|
+
# set owner and group of log files
|
|
199
|
+
files.each { |file|
|
|
200
|
+
sudo "touch #{file}"
|
|
201
|
+
sudo "chown #{mongrel_user} #{file}"
|
|
202
|
+
sudo "chgrp #{mongrel_group} #{file}"
|
|
203
|
+
sudo "chmod g+w #{file}"
|
|
204
|
+
}
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do namespace :monit do
|
|
4
|
+
|
|
5
|
+
set :monit_user, 'monit'
|
|
6
|
+
set :monit_group, 'monit'
|
|
7
|
+
set :monit_confd_dir, '/etc/monit.d'
|
|
8
|
+
|
|
9
|
+
set :monit_check_interval, 60
|
|
10
|
+
set :monit_log, 'syslog facility log_daemon'
|
|
11
|
+
set :monit_mailserver, nil
|
|
12
|
+
set :monit_mail_from, 'monit@deprec.enabled.slice'
|
|
13
|
+
set :monit_alert_recipients, %w(root@localhost)
|
|
14
|
+
set :monit_timeout_recipients, %w(root@localhost)
|
|
15
|
+
set :monit_webserver_enabled, true
|
|
16
|
+
set :monit_webserver_port, 2812
|
|
17
|
+
set :monit_webserver_address, 'localhost'
|
|
18
|
+
set :monit_webserver_allowed_hosts_and_networks, %w(localhost)
|
|
19
|
+
set :monit_webserver_auth_user, 'admin'
|
|
20
|
+
set :monit_webserver_auth_pass, 'monit'
|
|
21
|
+
|
|
22
|
+
# Upstream changes: http://www.tildeslash.com/monit/dist/CHANGES.txt
|
|
23
|
+
# Ubuntu package version = monit-4.8.1
|
|
24
|
+
SRC_PACKAGES[:monit] = {
|
|
25
|
+
:filename => 'monit-4.10.1.tar.gz',
|
|
26
|
+
:md5sum => "d3143b0bbd79b53f1b019d2fc1dae656 monit-4.10.1.tar.gz",
|
|
27
|
+
:dir => 'monit-4.10.1',
|
|
28
|
+
:url => "http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz",
|
|
29
|
+
:unpack => "tar zxf monit-4.10.1.tar.gz;",
|
|
30
|
+
:configure => %w(
|
|
31
|
+
./configure
|
|
32
|
+
;
|
|
33
|
+
).reject{|arg| arg.match '#'}.join(' '),
|
|
34
|
+
:make => 'make;',
|
|
35
|
+
:install => 'make install;'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
desc "Install monit"
|
|
39
|
+
task :install do
|
|
40
|
+
install_deps
|
|
41
|
+
deprec2.download_src(SRC_PACKAGES[:monit], src_dir)
|
|
42
|
+
deprec2.install_from_src(SRC_PACKAGES[:monit], src_dir)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# install dependencies for monit
|
|
46
|
+
task :install_deps do
|
|
47
|
+
apt.install( {:base => %w(flex bison libssl-dev)}, :stable )
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
SYSTEM_CONFIG_FILES[:monit] = [
|
|
51
|
+
|
|
52
|
+
{:template => 'monit-init-script',
|
|
53
|
+
:path => '/etc/init.d/monit',
|
|
54
|
+
:mode => 0755,
|
|
55
|
+
:owner => 'root:root'},
|
|
56
|
+
|
|
57
|
+
{:template => 'monitrc.erb',
|
|
58
|
+
:path => "/etc/monitrc",
|
|
59
|
+
:mode => 0700,
|
|
60
|
+
:owner => 'root:root'},
|
|
61
|
+
|
|
62
|
+
{:template => 'nothing',
|
|
63
|
+
:path => "/etc/monit.d/nothing",
|
|
64
|
+
:mode => 0700,
|
|
65
|
+
:owner => 'root:root'}
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
desc <<-DESC
|
|
69
|
+
Generate nginx config from template. Note that this does not
|
|
70
|
+
push the config to the server, it merely generates required
|
|
71
|
+
configuration files. These should be kept under source control.
|
|
72
|
+
The can be pushed to the server with the :config task.
|
|
73
|
+
DESC
|
|
74
|
+
task :config_gen do
|
|
75
|
+
SYSTEM_CONFIG_FILES[:monit].each do |file|
|
|
76
|
+
deprec2.render_template(:monit, file)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
desc "Push monit config files to server"
|
|
81
|
+
task :config do
|
|
82
|
+
deprec2.push_configs(:monit, SYSTEM_CONFIG_FILES[:monit])
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
desc "Start Monit"
|
|
86
|
+
task :start, :roles => :app do
|
|
87
|
+
send(run_method, "/etc/init.d/monit start")
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
desc "Stop Monit"
|
|
91
|
+
task :stop, :roles => :app do
|
|
92
|
+
send(run_method, "/etc/init.d/monit stop")
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
desc "Restart Monit"
|
|
96
|
+
task :restart, :roles => :app do
|
|
97
|
+
send(run_method, "/etc/init.d/monit restart")
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
desc "Reload Monit"
|
|
101
|
+
task :reload, :roles => :app do
|
|
102
|
+
send(run_method, "/etc/init.d/monit reload")
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
desc <<-DESC
|
|
106
|
+
Activate monit start scripts on server.
|
|
107
|
+
Setup server to start monit on boot.
|
|
108
|
+
DESC
|
|
109
|
+
task :activate do
|
|
110
|
+
send(run_method, "update-rc.d monit defaults")
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
desc <<-DESC
|
|
114
|
+
Dectivate monit start scripts on server.
|
|
115
|
+
Setup server to start monit on boot.
|
|
116
|
+
DESC
|
|
117
|
+
task :deactivate do
|
|
118
|
+
send(run_method, "update-rc.d -f monit remove")
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
task :backup do
|
|
122
|
+
# there's nothing to backup for monit
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
task :restore do
|
|
126
|
+
# there's nothing to restore for monit
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end end
|
|
130
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :mysql do
|
|
5
|
+
|
|
6
|
+
# Installation
|
|
7
|
+
|
|
8
|
+
desc "Install mysql"
|
|
9
|
+
task :install, :roles => :db do
|
|
10
|
+
install_deps
|
|
11
|
+
symlink_mysql_sockfile # XXX still needed?
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Install dependencies for Mysql
|
|
15
|
+
task :install_deps, :roles => :db do
|
|
16
|
+
apt.install( {:base => %w(mysql-server mysql-client)}, :stable )
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
task :symlink_mysql_sockfile, :roles => :db do
|
|
20
|
+
# rails puts "socket: /tmp/mysql.sock" into config/database.yml
|
|
21
|
+
# this is not the location for our ubuntu's mysql socket file
|
|
22
|
+
# so we create this link to make deployment using rails defaults simpler
|
|
23
|
+
sudo "ln -sf /var/run/mysqld/mysqld.sock /tmp/mysql.sock"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Configuration
|
|
27
|
+
|
|
28
|
+
SYSTEM_CONFIG_FILES[:mysql] = [
|
|
29
|
+
|
|
30
|
+
{:template => "my.cnf.erb",
|
|
31
|
+
:path => '/etc/mysql/my.cnf',
|
|
32
|
+
:mode => 0644,
|
|
33
|
+
:owner => 'root:root'}
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
desc "Generate configuration file(s) for mysql from template(s)"
|
|
37
|
+
task :config_gen do
|
|
38
|
+
SYSTEM_CONFIG_FILES[:mysql].each do |file|
|
|
39
|
+
deprec2.render_template(:mysql, file)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
desc "Push trac config files to server"
|
|
44
|
+
task :config, :roles => :db do
|
|
45
|
+
deprec2.push_configs(:mysql, SYSTEM_CONFIG_FILES[:mysql])
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
task :activate, :roles => :db do
|
|
49
|
+
send(run_method, "update-rc.d mysql defaults")
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
task :deactivate, :roles => :db do
|
|
53
|
+
send(run_method, "update-rc.d -f mysql remove")
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Control
|
|
57
|
+
|
|
58
|
+
desc "Start Mysql"
|
|
59
|
+
task :start, :roles => :db do
|
|
60
|
+
send(run_method, "/etc/init.d/mysql start")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
desc "Stop Mysql"
|
|
64
|
+
task :stop, :roles => :db do
|
|
65
|
+
send(run_method, "/etc/init.d/mysql stop")
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
desc "Restart Mysql"
|
|
69
|
+
task :restart, :roles => :db do
|
|
70
|
+
send(run_method, "/etc/init.d/mysql restart")
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
desc "Reload Mysql"
|
|
74
|
+
task :reload, :roles => :db do
|
|
75
|
+
send(run_method, "/etc/init.d/mysql reload")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
task :backup, :roles => :db do
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
task :restore, :roles => :db do
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
#
|
|
90
|
+
# Setup replication
|
|
91
|
+
#
|
|
92
|
+
|
|
93
|
+
# setup user for repl
|
|
94
|
+
# GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.yourdomain.com' IDENTIFIED BY 'slavepass';
|
|
95
|
+
|
|
96
|
+
# get current position of binlog
|
|
97
|
+
# mysql> FLUSH TABLES WITH READ LOCK;
|
|
98
|
+
# Query OK, 0 rows affected (0.00 sec)
|
|
99
|
+
#
|
|
100
|
+
# mysql> SHOW MASTER STATUS;
|
|
101
|
+
# +------------------+----------+--------------+------------------+
|
|
102
|
+
# | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
|
|
103
|
+
# +------------------+----------+--------------+------------------+
|
|
104
|
+
# | mysql-bin.000012 | 296 | | |
|
|
105
|
+
# +------------------+----------+--------------+------------------+
|
|
106
|
+
# 1 row in set (0.00 sec)
|
|
107
|
+
#
|
|
108
|
+
# # get current data
|
|
109
|
+
# mysqldump --all-databases --master-data >dbdump.db
|
|
110
|
+
#
|
|
111
|
+
# UNLOCK TABLES;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
# Replication Features and Issues
|
|
115
|
+
# http://dev.mysql.com/doc/refman/5.0/en/replication-features.html
|