Files
proxmox/scripts/archive/consolidated/deploy/setup-vlan11-ip-persistence.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

142 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Load IP configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
# Setup persistent VLAN 11 IP configuration for WSL2
# Creates systemd service and optionally configures passwordless sudo
set -e
VLAN11_IP="192.168.11.23"
PRIMARY_IF="eth0"
SCRIPT_FILE="/usr/local/bin/configure-vlan11-ip.sh"
SERVICE_FILE="/etc/systemd/system/configure-vlan11-ip.service"
echo "🔧 Setting up persistent VLAN 11 IP configuration"
echo " IP: $VLAN11_IP"
echo " Interface: $PRIMARY_IF"
echo ""
# Check if running as root
if [ "$EUID" -ne 0 ]; then
echo "❌ This script must be run with sudo"
echo " Usage: sudo $0"
exit 1
fi
# Create configuration script
echo "📝 Creating configuration script..."
mkdir -p /usr/local/bin
cat > "$SCRIPT_FILE" << 'EOFSCRIPT'
#!/bin/bash
# Configure VLAN 11 secondary IP address
PRIMARY_IF="eth0"
VLAN11_IP="192.168.11.23"
VLAN11_NETMASK="24"
# Wait for interface to be available
for i in {1..10}; do
if ip link show $PRIMARY_IF >/dev/null 2>&1; then
break
fi
sleep 1
done
# Add IP if not already present
if ip link show $PRIMARY_IF >/dev/null 2>&1 && ! ip addr show $PRIMARY_IF | grep -q "$VLAN11_IP"; then
ip addr add $VLAN11_IP/$VLAN11_NETMASK dev $PRIMARY_IF 2>/dev/null || true
fi
# Add route if not present
if ! ip route show | grep -q "${NETWORK_192_168_11_0:-192.168.11.0}/24.*src $VLAN11_IP"; then
ip route add ${NETWORK_192_168_11_0:-192.168.11.0}/24 dev $PRIMARY_IF src $VLAN11_IP 2>/dev/null || true
fi
EOFSCRIPT
chmod +x "$SCRIPT_FILE"
echo " ✅ Script created: $SCRIPT_FILE"
# Create systemd service
echo "📝 Creating systemd service..."
cat > "$SERVICE_FILE" << EOF
[Unit]
Description=Configure VLAN 11 Secondary IP Address
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=$SCRIPT_FILE
RemainAfterExit=yes
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
echo " ✅ Service file created: $SERVICE_FILE"
# Reload systemd and enable service
echo "🔄 Enabling systemd service..."
systemctl daemon-reload
systemctl enable configure-vlan11-ip.service
systemctl start configure-vlan11-ip.service
if systemctl is-active --quiet configure-vlan11-ip.service; then
echo " ✅ Service is active"
else
echo " ⚠️ Service status needs verification"
systemctl status configure-vlan11-ip.service --no-pager -l || true
fi
# Optionally configure passwordless sudo for specific IP commands
echo ""
read -p "Configure passwordless sudo for IP configuration commands? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
SUDOERS_FILE="/etc/sudoers.d/vlan11-ip-config"
SUDOERS_RULE="$USER ALL=(ALL) NOPASSWD: /usr/bin/ip addr add $VLAN11_IP/* dev $PRIMARY_IF, /usr/bin/ip addr del $VLAN11_IP/* dev $PRIMARY_IF, /usr/bin/ip route add ${NETWORK_192_168_11_0:-192.168.11.0}/24 dev $PRIMARY_IF src $VLAN11_IP, /usr/bin/ip route del ${NETWORK_192_168_11_0:-192.168.11.0}/24 dev $PRIMARY_IF src $VLAN11_IP"
echo "$SUDOERS_RULE" | visudo -c -f - 2>/dev/null && {
echo "$SUDOERS_RULE" > "$SUDOERS_FILE"
chmod 0440 "$SUDOERS_FILE"
echo " ✅ Passwordless sudo configured"
} || {
echo " ❌ Failed to configure passwordless sudo (visudo check failed)"
}
fi
# Verify configuration
echo ""
echo "🔍 Verifying configuration..."
sleep 2
if ip addr show $PRIMARY_IF | grep -q "$VLAN11_IP"; then
echo " ✅ VLAN 11 IP ($VLAN11_IP) is configured"
else
echo " ⚠️ VLAN 11 IP not found (may need manual check)"
fi
echo ""
echo "✅ Persistence setup complete!"
echo ""
echo "📋 Summary:"
echo " • Systemd service: $SERVICE_FILE"
echo " • Configuration script: $SCRIPT_FILE"
echo " • Service will run on boot to configure IP"
echo ""
echo "💡 To check service status:"
echo " sudo systemctl status configure-vlan11-ip.service"
echo ""
echo "💡 To test immediately:"
echo " sudo $SCRIPT_FILE"
echo ""