Netplan mit ucarp verwenden

Netplan mit ucarp verwenden

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.

verwandte Informationen