1
1
global_defs {
2
- router_id {{ router_id } }
2
+ router_id {{ router_id } }
3
3
}
4
4
5
5
{% set rvid = 1 %}
6
6
7
- include ./local_address.conf
7
+ local_address_group laddr_g1 {
8
+ {{ localip } }
9
+ }
8
10
9
11
{% for vipinstance in vip_instance_list %}
10
12
{% if vipinstance.status != ' offline' %}
@@ -14,83 +16,93 @@ vrrp_instance {{ vipinstance.vip_instance }} {
14
16
interface {{ vipinstance.vip_nic} }
15
17
virtual_router_id {% set rvid = rvid% 256 %} { { rvid } }{% set rvid = rvid + 1 %} #VRID可用值0-255,即lvs设备上最多可以定义256个vrrp实例
16
18
17
- #多个vrrp实例时, 主备直接轮流切换, 最大化资源利用率
18
19
{% set master = master% 2 %}
19
- {% if master == 0 %}
20
+ {% if master == 0 %} #多个vrrp实例时, 主备直接轮流切换, 最大化资源利用率
20
21
priority 100 #主机上设置成100
21
22
{% else %}
22
23
priority 90 #备机上设置成90
23
24
{% endif %}
24
25
{% set master = master + 1 %}
25
26
26
27
advert_int 1
27
- nopreempt #设置成切换不抢占
28
- authentication {
29
- auth_type PASS
30
- auth_pass zsd@2018
31
- }
28
+ nopreempt #设置成切换不抢占
29
+ authentication {
30
+ auth_type PASS
31
+ auth_pass zsD@2018
32
+ }
33
+
34
+ notify_master "/etc/keepalived/lvs_to_master.sh {% for vip in vipinstance.vip_group %} { { vip.vip } }{% endfor %} "
35
+ notify_backup "/etc/keepalived/lvs_to_backup.sh {% for vip in vipinstance.vip_group %} { { vip.vip } }{% endfor %} "
36
+ notify_fault "/etc/keepalived/lvs_to_fault.sh {% for vip in vipinstance.vip_group %} { { vip.vip } }{% endfor %} "
37
+
32
38
virtual_ipaddress {
33
39
{% for vip in vipinstance.vip_group %}
34
- { { vip.vip } } { { vip.port } } # { { vipinstance.descript } }
40
+ { { vip.vip } }
35
41
{% endfor %}
36
42
}
37
43
}
38
44
39
45
40
46
virtual_server_group { { vipinstance.vip_instance } } {
41
47
{% for vip in vipinstance.vip_group %}
42
- { { vip.vip } } { { vip.port } } #{ { vipinstance.descript } }
48
+ { { vip.vip } } { { vip.port } } #{ { vipinstance.descript } }
43
49
{% endfor %}
44
50
}
45
51
46
52
virtual_server group { { vipinstance.vip_instance } } {
47
- delay_loop {{ vipinstance.delay_loop } }
48
- lb_algo { { vipinstance.lb_algo } }
49
- lb_kind { { vipinstance.lb_kind } }
50
- protocol { { vipinstance.protocol } }
51
- persistence_timeout { { vipinstance.persistence_timeout } }
52
- {% if vipinstance.sync_proxy %} syn_proxy{% endif %}
53
- laddr_group_name laddr_g1
54
- {% if vipinstance.alpha %} alpha{% endif %}
55
- {% if vipinstance.omega %} omega{% endif %}
56
- quorum { { vipinstance.quorum } }
57
- hysteresis { { vipinstance.hysteresis } }
58
- quorum_up "{% for vip in vipinstance.vip_group %} ip addr add { { vip.vip } }/32 dev { { vipinstance.vip_nic} } ;{% endfor %} "
59
- {% if vipinstance.omega %}
60
- quorum_down "{% for vip in vipinstance.vip_group %} ip addr del { { vip.vip } }/32 dev { { vipinstance.vip_nic} } ;{% endfor %} "
61
- {% endif %}
62
-
63
- {% for rs in vipinstance.rs %}
64
- {% for rs_port in rs.port %}
65
- real_server { { rs.server_ip } } { { rs_port } } {
66
- weight {{ rs.weight } }
67
- inhibit_on_failure
68
- {% if rs.monitor.type == ' HTTP_GET' %}
69
- HTTP_GET {
70
- url {
71
- path {{ rs.monitor.path } }
72
- digest { { rs.monitor.digest } }
73
- }
74
- connect_timeout { { rs.monitor.connect_timeout } }
75
- nb_get_retry { { rs.monitor.nb_get_retry } }
76
- delay_before_retry { { rs.monitor.delay_before_retry } }
77
- connect_port { { rs_port } }
78
- }
79
- {% elif rs.monitor.type == ' TCP_CHECK' %}
80
- TCP_CHECK {
81
- connect_timeout {{ rs.monitor.connect_timeout } }
82
- connect_port { { rs_port } }
83
- }
84
- {% elif rs.monitor.type == ' MISC_CHECK' %}
85
- MISC_CHECK {
86
- misc_path " {{ rs.monitor.misc_path }}"
87
- misc_timeout {{ rs.monitor.misc_timeout } }
88
- }
89
- {% endif %}
53
+ delay_loop {{ vipinstance.delay_loop } }
54
+ lb_algo { { vipinstance.lb_algo } }
55
+ lb_kind { { vipinstance.lb_kind } }
56
+ protocol { { vipinstance.protocol } }
57
+ persistence_timeout { { vipinstance.persistence_timeout } }
58
+ {% if vipinstance.sync_proxy %} syn_proxy{% endif %}
59
+ laddr_group_name laddr_g1
60
+ {% if vipinstance.alpha %} alpha{% endif %}
61
+ {% if vipinstance.omega %} omega{% endif %}
62
+ quorum { { vipinstance.quorum } }
63
+ hysteresis { { vipinstance.hysteresis } }
64
+ quorum_up "{% for vip in vipinstance.vip_group %} ip addr add { { vip.vip } }/32 dev { { vipinstance.vip_nic} };{% endfor %} "
65
+ {% if vipinstance.omega %}
66
+ quorum_down "{% for vip in vipinstance.vip_group %} ip addr del { { vip.vip } }/32 dev { { vipinstance.vip_nic} };{% endfor %} "
67
+ {% endif %}
68
+
69
+ {% for rs in vipinstance.rs %}
70
+ {% for rs_port in rs.port %}
71
+ real_server { { rs.server_ip } } { { rs_port } } {
72
+ weight {{ rs.weight } }
73
+ inhibit_on_failure
74
+
75
+ notify_up "/etc/keepalived/rs_up.sh { { rs.server_ip } } { { rs_port } }"
76
+ notify_down "/etc/keepalived/rs_down.sh { { rs.server_ip } } { { rs_port } }"
77
+
78
+
79
+ {% if rs.monitor.type == ' HTTP_GET' %}
80
+ HTTP_GET {
81
+ bindto {{ localip } }
82
+ url {
83
+ path {{ rs.monitor.path } }
84
+ digest { { rs.monitor.digest } }
85
+ }
86
+ connect_timeout { { rs.monitor.connect_timeout } }
87
+ nb_get_retry { { rs.monitor.nb_get_retry } }
88
+ delay_before_retry { { rs.monitor.delay_before_retry } }
89
+ connect_port { { rs_port } }
90
+ }
91
+ {% elif rs.monitor.type == ' TCP_CHECK' %}
92
+ TCP_CHECK {
93
+ bindto {{ localip } }
94
+ connect_timeout { { rs.monitor.connect_timeout } }
95
+ connect_port { { rs_port } }
96
+ }
97
+ {% elif rs.monitor.type == ' MISC_CHECK' %}
98
+ MISC_CHECK {
99
+ misc_path " {{ rs.monitor.misc_path }}"
100
+ misc_timeout {{ rs.monitor.misc_timeout } }
101
+ }
102
+ {% endif %}
90
103
}
91
- {% endfor %}
92
- {% endfor %}
104
+ {% endfor %}
105
+ {% endfor %}
93
106
}
94
107
{% endif %}
95
-
96
108
{% endfor %}
0 commit comments