diff --git a/scripts/setup_bridge_br0.sh b/scripts/setup_bridge_br0.sh new file mode 100644 index 0000000..7e7faa5 --- /dev/null +++ b/scripts/setup_bridge_br0.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash +set -euo pipefail + +IFACE="${1:-enp2s0}" +BRIDGE="br0" +NETPLAN_DIR="/etc/netplan" +BACKUP_DIR="/root/virtuality-netplan-backups/$(date +%Y%m%d_%H%M%S)" +BRIDGE_FILE="${NETPLAN_DIR}/60-virtuality-br0.yaml" +ROLLBACK_SCRIPT="/root/virtuality-rollback-netplan.sh" + +if [[ "$EUID" -ne 0 ]]; then + echo "Ошибка: запусти через sudo: sudo bash scripts/setup_bridge_br0.sh" + exit 1 +fi + +if ! command -v netplan >/dev/null 2>&1; then + echo "Ошибка: netplan не найден. Скрипт рассчитан на Ubuntu/Debian с netplan." + exit 1 +fi + +if ! ip link show "$IFACE" >/dev/null 2>&1; then + echo "Ошибка: интерфейс $IFACE не найден." + ip -br a + exit 1 +fi + +echo "============================================================" +echo "Virtuality bridge setup" +echo "============================================================" +echo "Interface: $IFACE" +echo "Bridge: $BRIDGE" +echo "Backup: $BACKUP_DIR" +echo + +mkdir -p "$BACKUP_DIR" +cp -a "$NETPLAN_DIR"/*.yaml "$BACKUP_DIR"/ 2>/dev/null || true + +cat > "$ROLLBACK_SCRIPT" < "$BRIDGE_FILE" < "$file" <