Skip to content

Commit 5439700

Browse files
feat: add configuration script to speed up inicialization
1 parent 232b029 commit 5439700

2 files changed

Lines changed: 88 additions & 3 deletions

File tree

Makefile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# =====================================
22
# Project: Hypervisor Monitoring App
33
# Organization: Hyperloop UPV
4-
# Author: Javier Ribal del Río & Lola Castelló
4+
# Author: Javier Ribal del Río & Lola Castelló Puchades
55
# License: MIT
66
# =====================================
77

@@ -10,9 +10,9 @@ RELEASE_DIR := release
1010
FRONTEND_DIR := frontend
1111
BACKEND_DIR := backend
1212

13-
.PHONY: build frontend backend prepare copy-config copy-frontend clean
13+
.PHONY: build frontend backend prepare copy-config copy-frontend copy-setup clean
1414

15-
build: frontend prepare backend copy-config copy-frontend
15+
build: frontend prepare backend copy-config copy-frontend copy-setup
1616
@echo "Release ready"
1717

1818
# -------------------------
@@ -58,6 +58,11 @@ copy-frontend:
5858
@echo "Copying frontend..."
5959
cp -r $(FRONTEND_DIR)/dist $(RELEASE_DIR)/frontend/
6060

61+
62+
copy-setup:
63+
@echo "Copy setup_hypervisor.sh"
64+
cp ./setup_hypervisor.sh $(RELEASE_DIR)/
65+
6166
# -------------------------
6267
# Clean
6368
# -------------------------

setup_hypervisor.sh

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
# Require root
5+
if [[ "$EUID" -ne 0 ]]; then
6+
echo "This script must be run as root."
7+
exit 1
8+
fi
9+
10+
# Get interfaces excluding loopback
11+
mapfile -t interfaces < <(ip -o link show | awk -F': ' '{print $2}' | grep -v "^lo$")
12+
13+
echo "Available network interfaces:"
14+
echo "-----------------------------"
15+
16+
for i in "${!interfaces[@]}"; do
17+
printf "%d) %s\n" "$((i+1))" "${interfaces[$i]}"
18+
done
19+
20+
########################################
21+
# FIRST INTERFACE (POD)
22+
########################################
23+
24+
echo
25+
read -rp "Which interface will be connected to POD? (Enter number) " choice1
26+
27+
if ! [[ "$choice1" =~ ^[0-9]+$ ]] || (( choice1 < 1 || choice1 > ${#interfaces[@]} )); then
28+
echo "Invalid selection."
29+
exit 1
30+
fi
31+
32+
POD_INTERFACE="${interfaces[$((choice1-1))]}"
33+
34+
echo
35+
read -rp "Enter IP address with CIDR mask for POD (e.g., 192.168.1.10/24): " POD_IP
36+
37+
if ! [[ "$POD_IP" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}/([0-9]|[12][0-9]|3[0-2])$ ]]; then
38+
echo "Invalid IP format."
39+
exit 1
40+
fi
41+
42+
echo
43+
echo "Configuring POD interface: $POD_INTERFACE"
44+
45+
ip addr flush dev "$POD_INTERFACE"
46+
ip addr add "$POD_IP" dev "$POD_INTERFACE"
47+
ip link set "$POD_INTERFACE" promisc on
48+
ip link set "$POD_INTERFACE" up
49+
50+
########################################
51+
# SECOND INTERFACE (HYPERVISOR-ROUTER / NAP)
52+
########################################
53+
54+
echo
55+
read -rp "Which interface will be connected to Hypervisor-Router/NAP? (Enter number) " choice2
56+
57+
if ! [[ "$choice2" =~ ^[0-9]+$ ]] || (( choice2 < 1 || choice2 > ${#interfaces[@]} )); then
58+
echo "Invalid selection."
59+
exit 1
60+
fi
61+
62+
SECOND_INTERFACE="${interfaces[$((choice2-1))]}"
63+
64+
echo
65+
read -rp "Enter IP address with CIDR mask for Hypervisor-Router/NAP: " SECOND_IP
66+
67+
if ! [[ "$SECOND_IP" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}/([0-9]|[12][0-9]|3[0-2])$ ]]; then
68+
echo "Invalid IP format."
69+
exit 1
70+
fi
71+
72+
echo
73+
echo "Configuring Hypervisor-Router/NAP interface: $SECOND_INTERFACE"
74+
75+
ip addr flush dev "$SECOND_INTERFACE"
76+
ip addr add "$SECOND_IP" dev "$SECOND_INTERFACE"
77+
ip link set "$SECOND_INTERFACE" up
78+
79+
echo
80+
echo "Network configuration completed successfully."

0 commit comments

Comments
 (0)