· 6 years ago · Feb 20, 2019, 05:08 PM
1Shared ip(Keepalived): 192.168.1.20
2node01: 192.168.1.11
3node02: 192.168.1.12
4
5#!/usr/bin/python
6
7import subprocess
8import sys
9
10try:
11 subprocess.check_call(['/usr/bin/systemctl', 'status', 'postgresql.service'])
12 sys.exit(0)
13except subprocess.CalledProcessError:
14 sys.exit(3)
15
16#!/usr/bin/python
17
18import sys
19import subprocess
20
21if sys.argv[3] == "MASTER":
22 try:
23 subprocess.check_call(['/usr/bin/systemctl start postgresql.service'])
24 except subprocess.CalledProcessError:
25 pass
26 sys.exit(0)
27
28if sys.argv[3] == "BACKUP":
29 try:
30 subprocess.check_call(['/usr/bin/systemctl', 'stop', 'postgresql.service'])
31 except subprocess.CalledProcessError:
32 pass
33 sys.exit(0)
34
35if sys.argv[3] == "FAULT":
36 try:
37 subprocess.check_call(['/usr/bin/systemctl', 'stop', 'postgresql.service'])
38 except subprocess.CalledProcessError:
39 pass
40 sys.exit(0)
41
42sys.exit(1)
43
44vrrp_script chk_pgsql {
45 script "/etc/keepalived/pgsql-check"
46 interval 2 # check every 2 seconds
47 fall 2 # require 2 failures for KO
48 rise 2 # require 2 successes for OK
49}
50
51vrrp_instance VI_1 {
52 state MASTER
53 interface eth0
54 virtual_router_id 51
55 priority 100
56 advert_int 1
57 authentication {
58 auth_type PASS
59 auth_pass 1111
60 }
61 virtual_ipaddress {
62 192.168.1.20
63 }
64 track_script {
65 chk_pgsql
66 }
67 notify "/etc/keepalived/notify"
68}
69
70vrrp_script chk_pgsql {
71 script "/etc/keepalived/check-pgsql"
72 interval 1
73 fall 3
74 rise 1
75 weight 1
76}
77
78vrrp_script chk_pgsql {
79 script "/etc/keepalived/check-pgsql"
80 interval 1
81 fall 3
82 rise 1
83 weight 1
84}
85
86vrrp_instance VI_1 {
87 state BACKUP
88 interface eth0
89 virtual_router_id 51
90 priority 99
91 advert_int 1
92 authentication {
93 auth_type PASS
94 auth_pass 1111
95 }
96 track_script {
97 chk_pgsql
98 }
99 virtual_ipaddress {
100 192.168.1.20
101 }
102 notify_master "/etc/keepalived/start-pgsql"
103 notify_backup "/etc/keepalived/stop-pgsql"
104 notify_fault "/etc/keepalived/stop-pgsql"
105 notify_stop "/etc/keepalived/stop-pgsql"
106}