le1t0-deprec 2.1.6.023 → 2.1.6.024
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/lib/deprec/recipes/haproxy.rb +52 -0
- data/lib/deprec/templates/haproxy/haproxy.cfg.erb +24 -20
- metadata +3 -3
data/CHANGELOG
CHANGED
@@ -11,6 +11,58 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
11
11
|
|
12
12
|
}
|
13
13
|
|
14
|
+
# :haproxy_global_options should be a hash of options, in key => value pairs. Values can also be arrays of strings.
|
15
|
+
set :haproxy_global_options => {
|
16
|
+
"log" => "/var/log/haproxy.log daemon info",
|
17
|
+
"maxconn" => 4096,
|
18
|
+
"pidfile" => "/var/run/haproxy.pid",
|
19
|
+
"daemon" => true
|
20
|
+
}
|
21
|
+
|
22
|
+
# :haproxy_default_options should be a hash of options, in key => value pairs.
|
23
|
+
# :stats_auth => 'user:password' presence of this setting automatically enables stats
|
24
|
+
# :options => hash of options, in key => value pairs. Values can also be arrays of strings.
|
25
|
+
set :haproxy_default_options => {
|
26
|
+
:stats_auth => 'user:password',
|
27
|
+
:options => {
|
28
|
+
"option" => [
|
29
|
+
"forwardfor",
|
30
|
+
"httpclose",
|
31
|
+
"redispatch"
|
32
|
+
],
|
33
|
+
"balance" => "roundrobin",
|
34
|
+
"mode" => "http",
|
35
|
+
"retries" => 3,
|
36
|
+
"maxconn" => 2000,
|
37
|
+
"contimeout" => 5000,
|
38
|
+
"clitimeout" => 50000,
|
39
|
+
"srvtimeout" => 50000
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
# :haproxy_instances should contain a hash with at least one key => value pair. The key should be a string
|
44
|
+
# with the virtual IP address. The value is again a hash with some settings, containing as key => value pairs:
|
45
|
+
# :name => 'name_of_webfarm'
|
46
|
+
# :stats_auth => 'user:password' presence of this setting automatically enables stats
|
47
|
+
# :servers => hash of servers, in key => value pairs:
|
48
|
+
# 'web1' => '127.0.0.1:80 weight 6 maxconn 12 check'
|
49
|
+
# :options => hash of options, in key => value pairs. Values can also be arrays of strings.
|
50
|
+
set :haproxy_instances, {
|
51
|
+
"*:81" => {
|
52
|
+
:name => "example_lb",
|
53
|
+
:stats_auth => 'user:password',
|
54
|
+
:servers => {
|
55
|
+
'web1' => '127.0.0.1:80 weight 6 maxconn 12 check',
|
56
|
+
'web2' => '127.0.0.1:80 weight 10 maxconn 12 check'
|
57
|
+
},
|
58
|
+
:options => {
|
59
|
+
"option" => [
|
60
|
+
"httpchk HEAD /check.txt HTTP/1.0"
|
61
|
+
]
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
14
66
|
desc "Install haproxy"
|
15
67
|
task :install, :roles => :haproxy do
|
16
68
|
install_deps
|
@@ -5,27 +5,31 @@
|
|
5
5
|
# haproxy -f /etc/haproxy.cfg -sf `cat /var/run/haproxy.pid`
|
6
6
|
#
|
7
7
|
global
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
daemon
|
8
|
+
<% haproxy_global_options.each do |key, values| [values].flatten.each do |value| %>
|
9
|
+
<%= key %> <%= value %>
|
10
|
+
<% end end %>
|
12
11
|
|
13
12
|
defaults
|
14
|
-
|
13
|
+
<% unless haproxy_default_options[:stats_auth].nil? || haproxy_default_options[:stats_auth].empty? %>
|
15
14
|
stats enable
|
16
|
-
stats
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
option redispatch
|
22
|
-
maxconn 2000
|
23
|
-
contimeout 5000
|
24
|
-
clitimeout 50000
|
25
|
-
srvtimeout 50000
|
26
|
-
|
27
|
-
listen example_lb *:81
|
28
|
-
option httpchk HEAD /check.txt HTTP/1.0
|
29
|
-
server web1 127.0.0.1:80 weight 6 maxconn 12 check # cookie A
|
30
|
-
server web2 127.0.0.1:80 weight 10 maxconn 12 check # cookie B
|
15
|
+
stats <%= haproxy_default_options[:stats_auth] %>
|
16
|
+
<% end %>
|
17
|
+
<% (haproxy_default_options[:options] || {}).each do |key, values| [values].flatten.each do |value| %>
|
18
|
+
<%= key %> <%= value %>
|
19
|
+
<% end end %>
|
31
20
|
|
21
|
+
<% haproxy_instances.each_with_index do |instance_ipport, i| %>
|
22
|
+
<% ipport = instance_ipport.first %>
|
23
|
+
<% instance = instance_ipport.last %>
|
24
|
+
listen <%= instance[:name] || "no_name_defined_#{i+1}" %> <%= ipport %>
|
25
|
+
<% (instance[:options] || {}).each do |key, values| [values].flatten.each do |value| %>
|
26
|
+
<%= key %> <%= value %>
|
27
|
+
<% end end %>
|
28
|
+
<% unless instance[:stats_auth].nil? || instance[:stats_auth].empty? %>
|
29
|
+
stats enable
|
30
|
+
stats <%= instance[:stats_auth] %>
|
31
|
+
<% end %>
|
32
|
+
<% (instance[:servers] || {}).each do |key, value| %>
|
33
|
+
<%= key %> <%= value %>
|
34
|
+
<% end %>
|
35
|
+
<% end %>
|
metadata
CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
|
|
6
6
|
- 2
|
7
7
|
- 1
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 2.1.6.
|
9
|
+
- 24
|
10
|
+
version: 2.1.6.024
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Le1t0
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-15 00:00:00 +02:00
|
19
19
|
default_executable: depify
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|