Wissensdatenbank
Buehl, Kevin
25 Februar 2018
25 Februar 2018
1.415

Wissensdatenbank

HA-Proxy für Exchange 2016 DAG Cluster

Voraussetzungen



Vorbereitung


Aktualisieren Sie Ihre Paketlisten und Pakete mit folgenden Befehlen:
apt update
apt -y upgrade


Installation


HA Proxy


apt -y install haproxy
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
The following additional packages will be installed:
liblua5.3-0
Vorgeschlagene Pakete:
vim-haproxy haproxy-doc
Die folgenden NEUEN Pakete werden installiert:
haproxy liblua5.3-0
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 1'157 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 2'503 kB Plattenplatz zusätzlich benutzt.
Holen:1 http://ftp.ch.debian.org/debian stretch/main amd64 liblua5.3-0 amd64 5.3.3-1 [121 kB]
Holen:2 http://ftp.ch.debian.org/debian stretch/main amd64 haproxy amd64 1.7.5-2 [1'036 kB]
Es wurden 1'157 kB in 0 s geholt (3'540 kB/s).
Vormals nicht ausgewähltes Paket liblua5.3-0:amd64 wird gewählt.
(Lese Datenbank ... 23454 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../liblua5.3-0_5.3.3-1_amd64.deb ...
Entpacken von liblua5.3-0:amd64 (5.3.3-1) ...
Vormals nicht ausgewähltes Paket haproxy wird gewählt.
Vorbereitung zum Entpacken von .../haproxy_1.7.5-2_amd64.deb ...
Entpacken von haproxy (1.7.5-2) ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
Trigger für systemd (232-25+deb9u1) werden verarbeitet ...
liblua5.3-0:amd64 (5.3.3-1) wird eingerichtet ...
Trigger für rsyslog (8.24.0-1) werden verarbeitet ...
haproxy (1.7.5-2) wird eingerichtet ...
Created symlink /etc/systemd/system/multi-user.target.wants/haproxy.service → /lib/systemd/system/haproxy.service.
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
Trigger für systemd (232-25+deb9u1) werden verarbeitet ...
Trigger für rsyslog (8.24.0-1) werden verarbeitet ...


Keep Alive Deamon


apt -y install keepalived
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
The following additional packages will be installed:
ipvsadm libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libsensors4 libsnmp-base libsnmp30
Vorgeschlagene Pakete:
heartbeat ldirectord lm-sensors snmp-mibs-downloader
Die folgenden NEUEN Pakete werden installiert:
ipvsadm keepalived libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libsensors4 libsnmp-base libsnmp30
0 aktualisiert, 8 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 4'545 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 8'870 kB Plattenplatz zusätzlich benutzt.
Holen:1 http://ftp.ch.debian.org/debian stretch/main amd64 libnl-3-200 amd64 3.2.27-2 [61.5 kB]
Holen:2 http://ftp.ch.debian.org/debian stretch/main amd64 libnl-genl-3-200 amd64 3.2.27-2 [21.0 kB]
Holen:3 http://ftp.ch.debian.org/debian stretch/main amd64 libnl-route-3-200 amd64 3.2.27-2 [136 kB]
Holen:4 http://ftp.ch.debian.org/debian stretch/main amd64 libsensors4 amd64 1:3.4.0-4 [53.3 kB]
Holen:5 http://ftp.ch.debian.org/debian stretch/main amd64 libsnmp-base all 5.7.3+dfsg-1.7 [1'595 kB]
Holen:6 http://ftp.ch.debian.org/debian stretch/main amd64 libsnmp30 amd64 5.7.3+dfsg-1.7 [2'333 kB]
Holen:7 http://ftp.ch.debian.org/debian stretch/main amd64 ipvsadm amd64 1:1.28-3+b1 [37.4 kB]
Holen:8 http://ftp.ch.debian.org/debian stretch/main amd64 keepalived amd64 1:1.3.2-1 [308 kB]
Es wurden 4'545 kB in 0 s geholt (21.4 MB/s).
Vormals nicht ausgewähltes Paket libnl-3-200:amd64 wird gewählt.
(Lese Datenbank ... 23550 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../0-libnl-3-200_3.2.27-2_amd64.deb ...
[...]
Vormals nicht ausgewähltes Paket keepalived wird gewählt.
Vorbereitung zum Entpacken von .../7-keepalived_1%3a1.3.2-1_amd64.deb ...
Entpacken von keepalived (1:1.3.2-1) ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
Trigger für systemd (232-25+deb9u1) werden verarbeitet ...
libsensors4:amd64 (1:3.4.0-4) wird eingerichtet ...
libnl-3-200:amd64 (3.2.27-2) wird eingerichtet ...
ipvsadm (1:1.28-3+b1) wird eingerichtet ...
keepalived (1:1.3.2-1) wird eingerichtet ...
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /lib/systemd/system/keepalived.service.
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
Trigger für systemd (232-25+deb9u1) werden verarbeitet ...


Konfiguration


Netzwerk


nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.0.1.151/24
gateway 10.0.1.254


HA Proxy


Geben Sie folgenden Befehl ein, damit der HA Proxy automatisch startet:
echo "# Autostart">>/etc/default/haproxy
echo "ENABLED=1">>/etc/default/haproxy

Backend Server konfigurieren, öffnen Sie die Konfigurationsdatei des HA Proxys und fügen Sie folgende Zeilen am Ende ein:
nano /etc/haproxy/haproxy.cfg
frontend mta-lb
bind *:443 ssl crt /etc/haproxy/4b42.pem
reqadd X-Forwarded-Proto:\ https
default_backend mta-be

backend mta-be
server mta001 10.0.1.31:443 ssl verify none
server mta002 10.0.1.32:443 ssl verify none
/etc/init.d/haproxy restart
[ ok ] Restarting haproxy (via systemctl): haproxy.service.


Keep Alive Deamon


nano /etc/keepalived/keepalived.conf
vrrp_script check_haproxy {
script "service haproxy status" # check service status
interval 2 # check every two seconds
weight 2 # set weight if ok
}

vrrp_instance VirtualIpAddress {
interface eth0 # monitoring interface
state MASTER
virtual_router_id 51 # id of route
unicast_src_ip 10.0.1.151
unicast_peer {
10.0.1.152
}
priority 101 # 101 - Master, 100 - Backup
virtual_ipaddress {
10.48.42.1 # external virtual ip address
}
track_script {
check_haproxy
}
}
/etc/init.d/keepalived restart
[ ok ] Restarting keepalived (via systemctl): keepalived.service.