Использование netplan с ucarp

Использование netplan с ucarp

мы знаем, что новая версия Ubuntu полностью поддерживает Netplan. Поэтому я хочу спросить, как я могу использовать эту функцию с протоколом ucarp (приложением). Как я могу интегрировать Netplan с ucarp. Если нет решения, какие есть альтернативные способы использования этой функции. Спасибо за внимание. Я с нетерпением жду вашего ответа.

решение1

Можно заставить UCARP работать с Netplan:

Сначала следует отредактировать /usr/share/ucarp/vip-up и vip-down:

  ----- 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"

Следующий шаг — настройка ucarp:

/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

Вы можете изменить --pass для использования файла с помощью --passfile. Srcip - IP вашей машины, addr - виртуальный IP вашего кластера.

Я только что попробовал это, и все было в порядке. Я отключил Ethernet на главном узле, и переключение произошло через 2 мс.

Но есть одна проблема — UCARP не является службой, поэтому вам следует создать для нее подразделение.

nano /etc/systemd/system/ucarp.service

И заполни его

[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

И добавил в автозапуск

sudo systemctl enable ucarp

решение2

Пакет ucarp включает интеграцию для ifupdown, но не для netplan. Он находится в списке пакетов, требующих обновления, описанном наhttps://bugs.launchpad.net/ubuntu/+source/ucarp/+bug/1718227.

Если вы используете бэкэнд networkd, вы можете реализовать хуки самостоятельно локально, как описано в networkd-dispatcher(8). В противном случае у вас всегда есть возможность вернуться к использованию ifupdown вместо netplan для настройки сетевого интерфейса, на котором вам нужно запустить ucarp.

Связанный контент