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,302 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :nagios do
|
|
5
|
+
|
|
6
|
+
set :nagios_user, 'nagios'
|
|
7
|
+
set :nagios_group, 'nagios'
|
|
8
|
+
set :nagios_cmd_group, 'nagcmd' # Allow external commands to be submitted through the web interface
|
|
9
|
+
|
|
10
|
+
SRC_PACKAGES[:nagios] = {
|
|
11
|
+
:filename => 'nagios-3.0rc1.tar.gz',
|
|
12
|
+
:md5sum => "d8b4fbf1c2527ddcc18a39372a41dba3 nagios-3.0rc1.tar.gz",
|
|
13
|
+
:dir => 'nagios-3.0rc1',
|
|
14
|
+
:url => "http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz",
|
|
15
|
+
:unpack => "tar zxfv nagios-3.0rc1.tar.gz;",
|
|
16
|
+
:configure => %w(
|
|
17
|
+
./configure
|
|
18
|
+
--with-command-group=nagcmd
|
|
19
|
+
;
|
|
20
|
+
).reject{|arg| arg.match '#'}.join(' '),
|
|
21
|
+
:make => 'make all;',
|
|
22
|
+
:install => 'make install install-init install-commandmode'
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
desc "Install nagios"
|
|
26
|
+
task :install do
|
|
27
|
+
install_deps
|
|
28
|
+
create_nagios_user
|
|
29
|
+
deprec2.add_user_to_group(nagios_user, apache_user)
|
|
30
|
+
deprec2.mkdir('/usr/local/nagios/etc', :owner => "#{nagios_user}.#{nagios_group}", :via => :sudo)
|
|
31
|
+
deprec2.mkdir('/usr/local/nagios/objects', :owner => "#{nagios_user}.#{nagios_group}", :via => :sudo)
|
|
32
|
+
deprec2.download_src(SRC_PACKAGES[:nagios], src_dir)
|
|
33
|
+
deprec2.install_from_src(SRC_PACKAGES[:nagios], src_dir)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
task :create_nagios_user do
|
|
37
|
+
deprec2.groupadd(nagios_group)
|
|
38
|
+
deprec2.useradd(nagios_user, :group => nagios_group, :homedir => false)
|
|
39
|
+
deprec2.groupadd(nagios_cmd_group)
|
|
40
|
+
deprec2.add_user_to_group(nagios_user, nagios_cmd_group)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Install dependencies for nagios
|
|
44
|
+
task :install_deps do
|
|
45
|
+
apt.install( {:base => %w(mailx)}, :stable )
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
SYSTEM_CONFIG_FILES[:nagios] = [
|
|
49
|
+
|
|
50
|
+
{:template => 'nagios.cfg.erb',
|
|
51
|
+
:path => '/usr/local/nagios/etc/nagios.cfg',
|
|
52
|
+
:mode => 0664,
|
|
53
|
+
:owner => 'nagios:nagios'},
|
|
54
|
+
|
|
55
|
+
{:template => 'resource.cfg.erb',
|
|
56
|
+
:path => '/usr/local/nagios/etc/resource.cfg',
|
|
57
|
+
:mode => 0660,
|
|
58
|
+
:owner => 'nagios:nagios'},
|
|
59
|
+
|
|
60
|
+
{:template => 'cgi.cfg.erb',
|
|
61
|
+
:path => '/usr/local/nagios/etc/cgi.cfg',
|
|
62
|
+
:mode => 0664,
|
|
63
|
+
:owner => 'nagios:nagios'},
|
|
64
|
+
|
|
65
|
+
{:template => 'htpasswd.users',
|
|
66
|
+
:path => '/usr/local/nagios/etc/htpasswd.users',
|
|
67
|
+
:mode => 0664,
|
|
68
|
+
:owner => 'nagios:nagios'},
|
|
69
|
+
|
|
70
|
+
{:template => 'templates.cfg.erb',
|
|
71
|
+
:path => '/usr/local/nagios/etc/objects/templates.cfg',
|
|
72
|
+
:mode => 0664,
|
|
73
|
+
:owner => 'nagios:nagios'},
|
|
74
|
+
|
|
75
|
+
{:template => 'commands.cfg.erb',
|
|
76
|
+
:path => '/usr/local/nagios/etc/objects/commands.cfg',
|
|
77
|
+
:mode => 0664,
|
|
78
|
+
:owner => 'nagios:nagios'},
|
|
79
|
+
|
|
80
|
+
{:template => 'timeperiods.cfg.erb',
|
|
81
|
+
:path => '/usr/local/nagios/etc/objects/timeperiods.cfg',
|
|
82
|
+
:mode => 0664,
|
|
83
|
+
:owner => 'nagios:nagios'},
|
|
84
|
+
|
|
85
|
+
{:template => 'localhost.cfg.erb',
|
|
86
|
+
:path => '/usr/local/nagios/etc/objects/localhost.cfg',
|
|
87
|
+
:mode => 0664,
|
|
88
|
+
:owner => 'nagios:nagios'},
|
|
89
|
+
|
|
90
|
+
{:template => 'contacts.cfg.erb',
|
|
91
|
+
:path => '/usr/local/nagios/etc/objects/contacts.cfg',
|
|
92
|
+
:mode => 0664,
|
|
93
|
+
:owner => 'nagios:nagios'},
|
|
94
|
+
|
|
95
|
+
{:template => 'hosts.cfg.erb',
|
|
96
|
+
:path => '/usr/local/nagios/etc/objects/hosts.cfg',
|
|
97
|
+
:mode => 0664,
|
|
98
|
+
:owner => 'nagios:nagios'},
|
|
99
|
+
|
|
100
|
+
{:template => 'services.cfg.erb',
|
|
101
|
+
:path => '/usr/local/nagios/etc/objects/services.cfg',
|
|
102
|
+
:mode => 0664,
|
|
103
|
+
:owner => 'nagios:nagios'},
|
|
104
|
+
|
|
105
|
+
{:template => 'localhost.cfg.erb',
|
|
106
|
+
:path => '/usr/local/nagios/etc/objects/localhost.cfg',
|
|
107
|
+
:mode => 0664,
|
|
108
|
+
:owner => 'nagios:nagios'},
|
|
109
|
+
|
|
110
|
+
{:template => 'nagios_apache_vhost.conf.erb',
|
|
111
|
+
:path => "conf/nagios_apache_vhost.conf",
|
|
112
|
+
:mode => 0644,
|
|
113
|
+
:owner => 'root:root'}
|
|
114
|
+
|
|
115
|
+
]
|
|
116
|
+
|
|
117
|
+
desc "Generate configuration file(s) for nagios from template(s)"
|
|
118
|
+
task :config_gen do
|
|
119
|
+
SYSTEM_CONFIG_FILES[:nagios].each do |file|
|
|
120
|
+
deprec2.render_template(:nagios, file)
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
desc "Push nagios config files to server"
|
|
125
|
+
task :config, :roles => :nagios do
|
|
126
|
+
deprec2.push_configs(:nagios, SYSTEM_CONFIG_FILES[:nagios])
|
|
127
|
+
sudo "ln -sf #{deploy_to}/nagios/conf/nagios_apache_vhost.conf /usr/local/apache2/conf/apps"
|
|
128
|
+
config_check
|
|
129
|
+
restart
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
desc "Run Nagios config check"
|
|
133
|
+
task :config_check, :roles => :nagios do
|
|
134
|
+
send(run_method, "/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg")
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
desc "Set Nagios to start on boot"
|
|
138
|
+
task :activate, :roles => :nagios do
|
|
139
|
+
send(run_method, "update-rc.d nagios defaults")
|
|
140
|
+
sudo "ln -sf #{deploy_to}/nagios/conf/nagios_apache_vhost.conf #{apache_vhost_dir}/nagios_#{application}.conf"
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
desc "Set Nagios to not start on boot"
|
|
144
|
+
task :deactivate, :roles => :nagios do
|
|
145
|
+
send(run_method, "update-rc.d -f nagios remove")
|
|
146
|
+
link = "#{apache_vhost_dir}/nagios_#{application}.conf"
|
|
147
|
+
sudo "test -h #{link} && sudo unlink #{link} || true"
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
# Control
|
|
152
|
+
|
|
153
|
+
desc "Start Nagios"
|
|
154
|
+
task :start, :roles => :nagios do
|
|
155
|
+
send(run_method, "/etc/init.d/nagios start")
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
desc "Stop Nagios"
|
|
159
|
+
task :stop, :roles => :nagios do
|
|
160
|
+
send(run_method, "/etc/init.d/nagios stop")
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
desc "Restart Nagios"
|
|
164
|
+
task :restart, :roles => :nagios do
|
|
165
|
+
send(run_method, "/etc/init.d/nagios restart")
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
desc "Reload Nagios"
|
|
169
|
+
task :reload, :roles => :nagios do
|
|
170
|
+
send(run_method, "/etc/init.d/nagios reload")
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
task :backup, :roles => :web do
|
|
174
|
+
# not yet implemented
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
task :restore, :roles => :web do
|
|
178
|
+
# not yet implemented
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
#
|
|
182
|
+
# Service specific tasks
|
|
183
|
+
#
|
|
184
|
+
|
|
185
|
+
# XXX quick and dirty - clean up later
|
|
186
|
+
desc "Grant a user access to the web interface"
|
|
187
|
+
task :htpass, :roles => :nagios do
|
|
188
|
+
target_user = Capistrano::CLI.ui.ask "Userid" do |q|
|
|
189
|
+
q.default = 'nagiosadmin'
|
|
190
|
+
end
|
|
191
|
+
system "htpasswd config/nagios/usr/local/nagios/etc/htpasswd.users #{target_user}"
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
SRC_PACKAGES[:nagios_plugins] = {
|
|
198
|
+
:filename => 'nagios-plugins-1.4.11.tar.gz',
|
|
199
|
+
:md5sum => "042783a2180a6987e0b403870b3d01f7 nagios-plugins-1.4.11.tar.gz",
|
|
200
|
+
:dir => 'nagios-plugins-1.4.11',
|
|
201
|
+
:url => "http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz",
|
|
202
|
+
:unpack => "tar zxfv nagios-plugins-1.4.11.tar.gz;",
|
|
203
|
+
:configure => "./configure --with-nagios-user=#{nagios_user} --with-nagios-group=#{nagios_group};",
|
|
204
|
+
:make => 'make;',
|
|
205
|
+
:install => 'make install;'
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
namespace :nagios_plugins do
|
|
209
|
+
|
|
210
|
+
task :install do
|
|
211
|
+
install_deps
|
|
212
|
+
top.deprec.nagios.create_nagios_user
|
|
213
|
+
deprec2.download_src(SRC_PACKAGES[:nagios_plugins], src_dir)
|
|
214
|
+
deprec2.install_from_src(SRC_PACKAGES[:nagios_plugins], src_dir)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
# Install dependencies for nagios plugins
|
|
218
|
+
task :install_deps do
|
|
219
|
+
apt.install( {:base => %w(libmysqlclient15-dev)}, :stable )
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
namespace :nrpe do
|
|
228
|
+
|
|
229
|
+
default :nrpe_enable_command_args, false # set to true to compile nrpe to accept arguments
|
|
230
|
+
# note that you'll need to set it before these recipes are loaded (e.g. in .caprc)
|
|
231
|
+
|
|
232
|
+
SRC_PACKAGES[:nrpe] = {
|
|
233
|
+
:filename => 'nrpe-2.11.tar.gz',
|
|
234
|
+
:md5sum => "dcf3b7c5b7c94c0ba6cbb4999c1161f0 nrpe-2.11.tar.gz",
|
|
235
|
+
:dir => 'nrpe-2.11',
|
|
236
|
+
:url => "http://easynews.dl.sourceforge.net/sourceforge/nagios/nrpe-2.11.tar.gz",
|
|
237
|
+
:unpack => "tar zxfv nrpe-2.11.tar.gz;",
|
|
238
|
+
:configure => "./configure --with-nagios-user=#{nagios_user} --with-nagios-group=#{nagios_group} #{ '--enable-command-args' if nrpe_enable_command_args};",
|
|
239
|
+
:make => 'make all;',
|
|
240
|
+
:install => 'make install-plugin; make install-daemon; make install-daemon-config;'
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
task :install do
|
|
244
|
+
install_deps
|
|
245
|
+
top.deprec.nagios.create_nagios_user
|
|
246
|
+
deprec2.download_src(SRC_PACKAGES[:nrpe], src_dir)
|
|
247
|
+
deprec2.install_from_src(SRC_PACKAGES[:nrpe], src_dir)
|
|
248
|
+
# XXX this should only be run on the nrpe clients
|
|
249
|
+
# XXX currently it's run on the nagios server too
|
|
250
|
+
# XXX shouldn't do any harm but we should split them up later
|
|
251
|
+
deprec2.append_to_file_if_missing('/etc/services', 'nrpe 5666/tcp # NRPE')
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
task :install_deps do
|
|
255
|
+
apt.install( {:base => %w(xinetd libssl-dev openssl)}, :stable )
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
SYSTEM_CONFIG_FILES[:nrpe] = [
|
|
259
|
+
|
|
260
|
+
{:template => 'nrpe.xinetd.erb',
|
|
261
|
+
:path => "/etc/xinetd.d/nrpe",
|
|
262
|
+
:mode => 0644,
|
|
263
|
+
:owner => 'root:root'},
|
|
264
|
+
|
|
265
|
+
{:template => 'nrpe.cfg.erb',
|
|
266
|
+
:path => "/usr/local/nagios/etc/nrpe.cfg",
|
|
267
|
+
:mode => 0644,
|
|
268
|
+
:owner => 'nagios:nagios'} # XXX hard coded file owner is bad...
|
|
269
|
+
# It's done here because we aren't using
|
|
270
|
+
# lazy eval in hash constant.
|
|
271
|
+
|
|
272
|
+
]
|
|
273
|
+
|
|
274
|
+
desc "Generate configuration file(s) for nrpe from template(s)"
|
|
275
|
+
task :config_gen do
|
|
276
|
+
SYSTEM_CONFIG_FILES[:nrpe].each do |file|
|
|
277
|
+
deprec2.render_template(:nagios, file)
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
desc "Push nrpe config files to server"
|
|
282
|
+
task :config do
|
|
283
|
+
deprec2.push_configs(:nagios, SYSTEM_CONFIG_FILES[:nrpe])
|
|
284
|
+
# XXX should really only do this on targets
|
|
285
|
+
sudo "/etc/init.d/xinetd stop"
|
|
286
|
+
sudo "/etc/init.d/xinetd start"
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
task :test_local do
|
|
290
|
+
run "/usr/local/nagios/libexec/check_nrpe -H localhost"
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
task :test_remote, :roles => :nagios do
|
|
294
|
+
target_host = Capistrano::CLI.ui.ask "target hostname"
|
|
295
|
+
run "/usr/local/nagios/libexec/check_nrpe -H #{target_host}"
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
end
|
|
302
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :network do
|
|
5
|
+
|
|
6
|
+
set(:network_number_of_ports) {
|
|
7
|
+
Capistrano::CLI.ui.ask "Number of network ports" do |q|
|
|
8
|
+
q.default = 1
|
|
9
|
+
end
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
set(:network_interfaces) {
|
|
13
|
+
foo = {}
|
|
14
|
+
network_number_of_ports.to_i.times do |port|
|
|
15
|
+
foo[port] = {}
|
|
16
|
+
foo[port][:address] = Capistrano::CLI.ui.ask "address" do |q|
|
|
17
|
+
q.default = "192.168.#{port+1}.10"
|
|
18
|
+
end
|
|
19
|
+
foo[port][:netmask] = Capistrano::CLI.ui.ask "netmask" do |q|
|
|
20
|
+
q.default = '255.255.255.0'
|
|
21
|
+
end
|
|
22
|
+
foo[port][:broadcast] = Capistrano::CLI.ui.ask "broadcast" do |q|
|
|
23
|
+
q.default = "192.168.#{port+1}.255"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
foo
|
|
28
|
+
}
|
|
29
|
+
set(:network_hostname) {
|
|
30
|
+
Capistrano::CLI.ui.ask "hostname" do |q|
|
|
31
|
+
# q.validate = /add hostname validation here/
|
|
32
|
+
end
|
|
33
|
+
}
|
|
34
|
+
set(:network_gateway) {
|
|
35
|
+
Capistrano::CLI.ui.ask "default gateway" do |q|
|
|
36
|
+
q.default = '192.168.1.1'
|
|
37
|
+
end
|
|
38
|
+
}
|
|
39
|
+
set(:network_dns_nameservers) {
|
|
40
|
+
Capistrano::CLI.ui.ask "dns nameservers (separated by spaces)" do |q|
|
|
41
|
+
q.default = '203.8.183.1 4.2.2.1'
|
|
42
|
+
end
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
SYSTEM_CONFIG_FILES[:network] = [
|
|
47
|
+
|
|
48
|
+
{:template => "interfaces.erb",
|
|
49
|
+
:path => '/etc/network/interfaces',
|
|
50
|
+
:mode => 0644,
|
|
51
|
+
:owner => 'root:root'},
|
|
52
|
+
|
|
53
|
+
{:template => "hosts.erb",
|
|
54
|
+
:path => '/etc/hosts',
|
|
55
|
+
:mode => 0644,
|
|
56
|
+
:owner => 'root:root'},
|
|
57
|
+
|
|
58
|
+
{:template => "hostname.erb",
|
|
59
|
+
:path => '/etc/hostname',
|
|
60
|
+
:mode => 0644,
|
|
61
|
+
:owner => 'root:root'}
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
desc "Generate configuration file(s) for networking"
|
|
65
|
+
task :config_gen do
|
|
66
|
+
SYSTEM_CONFIG_FILES[:network].each do |file|
|
|
67
|
+
deprec2.render_template(:network, file)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
desc 'Deploy configuration files(s) for networking configuration'
|
|
72
|
+
task :config do
|
|
73
|
+
deprec2.push_configs(:network, SYSTEM_CONFIG_FILES[:network])
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
desc "Restart network interface"
|
|
77
|
+
task :restart do
|
|
78
|
+
sudo '/etc/init.d/networking restart'
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
end
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :nginx do
|
|
5
|
+
|
|
6
|
+
set :nginx_server_name, nil
|
|
7
|
+
set :nginx_user, 'nobody'
|
|
8
|
+
set :nginx_group, 'nogroup'
|
|
9
|
+
set :nginx_vhost_dir, '/usr/local/nginx/conf/vhosts'
|
|
10
|
+
set :nginx_client_max_body_size, '50M'
|
|
11
|
+
|
|
12
|
+
SRC_PACKAGES[:nginx] = {
|
|
13
|
+
:filename => 'nginx-0.6.31.tar.gz',
|
|
14
|
+
:md5sum => "824bcc25bbd5b636f182237b69227bd2 nginx-0.5.34.tar.gz",
|
|
15
|
+
:dir => 'nginx-0.6.31',
|
|
16
|
+
:url => "http://sysoev.ru/nginx/nginx-0.6.31.tar.gz",
|
|
17
|
+
:unpack => "tar zxf nginx-0.6.31.tar.gz;",
|
|
18
|
+
:configure => %w(
|
|
19
|
+
./configure
|
|
20
|
+
--sbin-path=/usr/local/sbin
|
|
21
|
+
--with-http_dav_module
|
|
22
|
+
--with-http_ssl_module
|
|
23
|
+
--with-http_stub_status_module
|
|
24
|
+
--with-mail
|
|
25
|
+
--with-mail_ssl_module
|
|
26
|
+
;
|
|
27
|
+
).reject{|arg| arg.match '#'}.join(' '),
|
|
28
|
+
:make => 'make;',
|
|
29
|
+
:install => 'make install;'
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
desc "Install nginx"
|
|
33
|
+
task :install do
|
|
34
|
+
install_deps
|
|
35
|
+
deprec2.download_src(SRC_PACKAGES[:nginx], src_dir)
|
|
36
|
+
deprec2.install_from_src(SRC_PACKAGES[:nginx], src_dir)
|
|
37
|
+
create_nginx_user
|
|
38
|
+
# setup_vhost_dir # XXX not done yet
|
|
39
|
+
# install_index_page # XXX not done yet
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# install dependencies for nginx
|
|
43
|
+
task :install_deps do
|
|
44
|
+
apt.install( {:base => %w(libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev)}, :stable )
|
|
45
|
+
# do we need libgcrypt11-dev?
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
task :create_nginx_user do
|
|
49
|
+
deprec2.groupadd(nginx_group)
|
|
50
|
+
deprec2.useradd(nginx_user, :group => nginx_group, :homedir => false)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
task :rename_index_page, :roles => :web do
|
|
54
|
+
index_file = '/usr/local/nginx/html/index.html'
|
|
55
|
+
sudo "test -f #{index_file} && sudo mv #{index_file} #{index_file}.orig || exit 0"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
SYSTEM_CONFIG_FILES[:nginx] = [
|
|
59
|
+
|
|
60
|
+
{:template => 'nginx-init-script',
|
|
61
|
+
:path => '/etc/init.d/nginx',
|
|
62
|
+
:mode => 0755,
|
|
63
|
+
:owner => 'root:root'},
|
|
64
|
+
|
|
65
|
+
{:template => 'nginx.conf.erb',
|
|
66
|
+
:path => "/usr/local/nginx/conf/nginx.conf",
|
|
67
|
+
:mode => 0644,
|
|
68
|
+
:owner => 'root:root'},
|
|
69
|
+
|
|
70
|
+
{:template => 'mime.types.erb',
|
|
71
|
+
:path => "/usr/local/nginx/conf/mime.types",
|
|
72
|
+
:mode => 0644,
|
|
73
|
+
:owner => 'root:root'},
|
|
74
|
+
|
|
75
|
+
{:template => 'nothing.conf',
|
|
76
|
+
:path => "/usr/local/nginx/conf/vhosts/nothing.conf",
|
|
77
|
+
:mode => 0644,
|
|
78
|
+
:owner => 'root:root'}
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
desc <<-DESC
|
|
82
|
+
Generate nginx config from template. Note that this does not
|
|
83
|
+
push the config to the server, it merely generates required
|
|
84
|
+
configuration files. These should be kept under source control.
|
|
85
|
+
The can be pushed to the server with the :config task.
|
|
86
|
+
DESC
|
|
87
|
+
task :config_gen do
|
|
88
|
+
SYSTEM_CONFIG_FILES[:nginx].each do |file|
|
|
89
|
+
deprec2.render_template(:nginx, file)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
desc "Push nginx config files to server"
|
|
94
|
+
task :config, :roles => :web do
|
|
95
|
+
deprec2.push_configs(:nginx, SYSTEM_CONFIG_FILES[:nginx])
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
desc <<-DESC
|
|
99
|
+
Activate nginx start scripts on server.
|
|
100
|
+
Setup server to start nginx on boot.
|
|
101
|
+
DESC
|
|
102
|
+
task :activate, :roles => :web do
|
|
103
|
+
activate_system
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
task :activate_system, :roles => :web do
|
|
107
|
+
send(run_method, "update-rc.d nginx defaults")
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
desc <<-DESC
|
|
111
|
+
Dectivate nginx start scripts on server.
|
|
112
|
+
Setup server to start nginx on boot.
|
|
113
|
+
DESC
|
|
114
|
+
task :deactivate, :roles => :web do
|
|
115
|
+
send(run_method, "update-rc.d -f nginx remove")
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
# Control
|
|
120
|
+
|
|
121
|
+
desc "Start Nginx"
|
|
122
|
+
task :start, :roles => :web do
|
|
123
|
+
send(run_method, "/etc/init.d/nginx start")
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
desc "Stop Nginx"
|
|
127
|
+
task :stop, :roles => :web do
|
|
128
|
+
send(run_method, "/etc/init.d/nginx stop")
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
desc "Restart Nginx"
|
|
132
|
+
task :restart, :roles => :web do
|
|
133
|
+
# So that restart will work even if nginx is not running
|
|
134
|
+
# we call stop and ignore the return code. We then start it.
|
|
135
|
+
send(run_method, "/etc/init.d/nginx stop; exit 0")
|
|
136
|
+
send(run_method, "/etc/init.d/nginx start")
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
desc "Reload Nginx"
|
|
140
|
+
task :reload, :roles => :web do
|
|
141
|
+
send(run_method, "/etc/init.d/nginx reload")
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
task :backup, :roles => :web do
|
|
145
|
+
# there's nothing to backup for nginx
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
task :restore, :roles => :web do
|
|
149
|
+
# there's nothing to store for nginx
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|