-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcyberlab.sh
More file actions
executable file
·144 lines (113 loc) · 3.93 KB
/
cyberlab.sh
File metadata and controls
executable file
·144 lines (113 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/bash
# ==================================================
# Script de despliegue automático de NICS | CyberLab
# ==================================================
set -e
# ======================================
# SECCIÓN DE CONFIGURACION DE LOS LOGS
# ======================================
BASE_DIR="$(pwd)"
LOG_DIR="${BASE_DIR}/log"
LOG_FILE="${LOG_DIR}/cyberlab.log"
mkdir -p "${LOG_DIR}"
if [[ -f "${LOG_FILE}" ]]; then
mv "${LOG_FILE}" "${LOG_FILE}-$(date +%Y%m%d-%H%M).bak"
fi
exec > >(tee -a "${LOG_FILE}") 2>&1
exec 3>>"${LOG_FILE}"
# ===========================
# FUNCIONES
# ===========================
timer() {
local start_time=$1
local end_time=$(date +%s)
local duration=$((end_time - start_time))
printf "%02d min %02d seg\n" $((duration / 60)) $((duration % 60))
}
log_block() {
echo "" >&3
echo "============================================================" >&3
echo "$1" >&3
echo "$(date '+%Y-%m-%d | %H:%M:%S')" >&3
echo "============================================================" >&3
echo "" >&3
}
overall_start=$(date +%s)
log_block "INICIO DEL DESPLIEGUE DE NICS | CyberLab"
echo "🚀 Iniciando despliegue de NICS | CyberLab..."
# ===========================
# PASO 1
# ===========================
log_block "PASO 1 | Instalación de OpenStack"
step_start=$(date +%s)
bash openstack-installer/openstack-installer.sh
echo "[✔] Instalación completada en: $(timer $step_start)"
echo "------------------------------------------------------------"
# ===========================
# PASO 2
# ===========================
log_block "PASO 2 | Activación entorno virtual OpenStack"
if [[ -d "openstack-installer/openstack_venv" ]]; then
source openstack-installer/openstack_venv/bin/activate
echo "[✔] Entorno activado correctamente."
else
echo "[✖] No se encontró el entorno 'openstack_venv'."
exit 1
fi
# ===========================
# PASO 3
# ===========================
log_block "PASO 3 | Generación de credenciales"
bash generate_admin-openrc.sh
echo "[✔] Credenciales generadas."
if [[ -f "admin-openrc.sh" ]]; then
source admin-openrc.sh
echo "[✔] admin-openrc cargado."
fi
# ===========================
# PASO 4
# ===========================
log_block "PASO 4 | Reglas de red / iptables"
sudo bash openstack-installer/uplinkbridge.sh
echo "[✔] Reglas aplicadas."
echo "------------------------------------------------------------"
# ===========================
# PASO 5
# ===========================
log_block "PASO 5 | Configuración inicial OpenStack"
step_start=$(date +%s)
bash openstack-resources.sh
echo "[✔] Configuración completada en: $(timer $step_start)"
echo "------------------------------------------------------------"
# ===========================
# PASO 6
# ===========================
log_block "PASO 6 | Arrancando Dashboard"
step_start=$(date +%s)
DASH_LOG="${LOG_DIR}/dashboard.log"
bash start_dashboard.sh > "${DASH_LOG}" 2>&1 &
DASH_PID=$!
echo "Accede al dashboard desde tu navegador:"
echo "[➜] http://localhost:5001"
echo
echo "[⚙️] Ejecutándose en segundo plano (PID: $DASH_PID)"
echo "Para detenerlo:"
echo "[!] kill $DASH_PID"
echo
echo "[📜] Log del dashboard: tail -f ${DASH_LOG}"
echo "------------------------------------------------------------"
# ===========================
# INFO ACCESO
# ===========================
log_block "PARÁMETROS DE ACCESO"
AUTH_URL=$(grep -m1 "auth_url:" /etc/kolla/clouds.yaml | awk '{print $2}' | sed 's/:5000//')
USERNAME=$(grep -m1 "username:" /etc/kolla/clouds.yaml | awk '{print $2}')
PASSWORD=$(grep -m1 "password:" /etc/kolla/clouds.yaml | awk '{print $2}')
echo "Dashboard: ${AUTH_URL}"
echo "Usuario: ${USERNAME}"
echo "Password: ${PASSWORD}"
echo "------------------------------------------------------------"
deactivate 2>/dev/null || true
log_block "FIN DEL PROCESO"
echo "[⏱] Tiempo total de despliegue: $(timer $overall_start)"
echo "[📜] Log completo registrado en: ${LOG_FILE}"