Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- 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>
142 lines
4.0 KiB
Bash
Executable File
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 ""
|