Wir wissen, dass die neue Version von Ubuntu Netplan vollständig unterstützt. Daher möchte ich fragen, wie ich diese Funktion mit dem UCARP-Protokoll (Anwendung) nutzen kann. Wie kann ich Netplan mit UCARP integrieren? Wenn es keine Lösung gibt, welche alternativen Möglichkeiten gibt es, diese Funktion zu nutzen? Vielen Dank für Ihre Aufmerksamkeit. Ich freue mich auf Ihre Antwort.
Antwort1
Es ist möglich, UCARP mit Netplan zum Laufen zu bringen:
Zuerst sollten Sie /usr/share/ucarp/vip-up und vip-down bearbeiten:
----- up -----
#!/bin/sh
exec 2>/dev/null
/sbin/ip address add "$2"/32 dev "$1"
------- down -------
#!/bin/sh
exec 2>/dev/null
/sbin/ip address del "$2"/32 dev "$1"
Der nächste Schritt besteht darin, ucarp zu konfigurieren:
/usr/sbin/ucarp --interface=ens160 --pass=YourPassw00rd --srcip=10.0.215.26 --vhid=1 --addr=10.0.215.46 --shutdown --preempt --advskew=0 --upscript=/usr/share/ucarp/vip-up --downscript=/usr/share/ucarp/vip-down
Sie können --pass ändern, um die Datei mit --passfile zu verwenden. Srcip – IP Ihres Computers, Adresse – virtuelle IP Ihres Clusters.
Ich habe das gerade ausprobiert und alles war ok. Ich habe Ethernet auf dem Masterknoten deaktiviert und die Umschaltung erfolgte nach 2 ms.
Es gibt jedoch ein Problem: UCARP ist kein Dienst, daher müssen Sie eine Einheit dafür erstellen.
nano /etc/systemd/system/ucarp.service
Und fülle es
[Unit]
#Unit description. You can see this message when use "service ucarp status"
Description=Start UCARP as service
# Start after this:
After=syslog.target
After=network.target
[Service]
# Set type of service. Only oneshot works with exec lines with so much values. Look for Man page for instructions.
Type=oneshot
# Execute on start.
ExecStart=/usr/sbin/ucarp --interface=ens160 --pass=SuperPa$$w0rd --srcip=10.0.215.26 --vhid=1 --addr=10.0.215.46 --shutdown --preempt --advskew=0 --upscript=/usr/share/ucarp/vip-up --downscript=/usr/share/ucarp/vip-down -B
# Execute on stop.
KillMode=control-group
# Execute on reboot.
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Und zum Autostart hinzugefügt
sudo systemctl enable ucarp
Antwort2
Das ucarp-Paket enthält eine Integration für ifupdown, aber nicht für netplan. Es steht auf der Liste der Pakete, die aktualisiert werden müssen, beschrieben unterhttps://bugs.launchpad.net/ubuntu/+source/ucarp/+bug/1718227.
Wenn Sie das Networkd-Backend verwenden, können Sie die Hooks selbst lokal implementieren, wie in beschrieben networkd-dispatcher(8)
. Andernfalls haben Sie immer die Möglichkeit, auf ifupdown statt netplan zurückzugreifen, um die Netzwerkschnittstelle zu konfigurieren, auf der Sie ucarp ausführen müssen.