|
@@ -10,8 +10,6 @@
|
|
|
|
|
|
OSInfo() {
|
|
OSInfo() {
|
|
#printf "Detectando SO..."
|
|
#printf "Detectando SO..."
|
|
- debianOS=false
|
|
|
|
- rhelOS=false
|
|
|
|
OS=$(uname -s)
|
|
OS=$(uname -s)
|
|
if [ $OS = "Linux" ]; then
|
|
if [ $OS = "Linux" ]; then
|
|
OS="GNU/Linux"
|
|
OS="GNU/Linux"
|
|
@@ -131,6 +129,28 @@ comprobarDependencias() {
|
|
fi
|
|
fi
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+inicializarVariables() {
|
|
|
|
+ debianOS=false
|
|
|
|
+ rhelOS=false
|
|
|
|
+ apacheOn=false
|
|
|
|
+ nginxOn=false
|
|
|
|
+ mySQLOn=false
|
|
|
|
+ mariaDBOn=false
|
|
|
|
+ phpOn=false
|
|
|
|
+ mediaWikiOn=false
|
|
|
|
+ moodleOn=false
|
|
|
|
+ actualizacionesOn=false
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+instalacionExpress() {
|
|
|
|
+ apacheOn=true
|
|
|
|
+ mariaDBOn=true
|
|
|
|
+ phpOn=true
|
|
|
|
+ mediaWikiOn=true
|
|
|
|
+ moodleOn=true
|
|
|
|
+ actualizacinesOn=true
|
|
|
|
+}
|
|
|
|
+
|
|
comprobarHostname() {
|
|
comprobarHostname() {
|
|
while [ -z $hostname ]; do
|
|
while [ -z $hostname ]; do
|
|
hostname=$(whiptail --title "HOSTNAME" --inputbox "El nombre de dominio de este servidor es:\n"$(hostname)"\n\nQuieres cambiarlo por otro?" --ok-button "Cambiar" --cancel-button "No Cambiar" 20 70 3>&1 1>&2 2>&3)
|
|
hostname=$(whiptail --title "HOSTNAME" --inputbox "El nombre de dominio de este servidor es:\n"$(hostname)"\n\nQuieres cambiarlo por otro?" --ok-button "Cambiar" --cancel-button "No Cambiar" 20 70 3>&1 1>&2 2>&3)
|
|
@@ -173,34 +193,25 @@ mostrarComponentes() {
|
|
for i in $componentes; do
|
|
for i in $componentes; do
|
|
case $i in
|
|
case $i in
|
|
\"WebServer\")
|
|
\"WebServer\")
|
|
- printf "Instalando Servidor Web"
|
|
|
|
- instalarWebServer
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ mostrarWebServer
|
|
;;
|
|
;;
|
|
\"Database\")
|
|
\"Database\")
|
|
- printf "Instalando Servidor Database"
|
|
|
|
- instalarDatabase
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ mostrarDatabase
|
|
;;
|
|
;;
|
|
\"PHP\")
|
|
\"PHP\")
|
|
- printf "Instalando PHP..."
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ phpOn=true
|
|
;;
|
|
;;
|
|
\"SSL/TLS\")
|
|
\"SSL/TLS\")
|
|
- printf "Instalando SSL/TLS..."
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ # 2 Opciones: Let's Encrypt o Autofirmado
|
|
;;
|
|
;;
|
|
\"MediaWiki\")
|
|
\"MediaWiki\")
|
|
- printf "Instalando MediaWiki..."
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ mediaWikiOn=true
|
|
;;
|
|
;;
|
|
\"Moodle\")
|
|
\"Moodle\")
|
|
- printf "Instalando Moodle..."
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ moodleOn=true
|
|
;;
|
|
;;
|
|
\"Actualizaciones\")
|
|
\"Actualizaciones\")
|
|
- printf "Configurando actualizaciones..."
|
|
|
|
- printf " OK.\n"
|
|
|
|
|
|
+ actualizacionesOn=true
|
|
;;
|
|
;;
|
|
*)
|
|
*)
|
|
printf "ERROR:\tError interno (selección de componentes).\n"
|
|
printf "ERROR:\tError interno (selección de componentes).\n"
|
|
@@ -210,28 +221,26 @@ mostrarComponentes() {
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
-instalarWebServer() {
|
|
|
|
|
|
+mostrarWebServer() {
|
|
webServer=$(whiptail --title "SERVIDOR WEB" --radiolist "<ESPACIO>: seleccionar <TAB>: cambiar <FLECHAS>: moverse\n\nEscoge el servidor web que quieres usar:" 20 70 2 \
|
|
webServer=$(whiptail --title "SERVIDOR WEB" --radiolist "<ESPACIO>: seleccionar <TAB>: cambiar <FLECHAS>: moverse\n\nEscoge el servidor web que quieres usar:" 20 70 2 \
|
|
"Apache" "Instalar el servidor web Apache2" ON \
|
|
"Apache" "Instalar el servidor web Apache2" ON \
|
|
"Nginx" "Instalar el servidor web Nginx" OFF \
|
|
"Nginx" "Instalar el servidor web Nginx" OFF \
|
|
--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
if [ $? -ne 0 ]; then
|
|
if [ $? -ne 0 ]; then
|
|
- printf "\nERROR:\tInstalación interrumpida por el usuario.\n"
|
|
|
|
|
|
+ printf "ERROR:\tInstalación interrumpida por el usuario.\n"
|
|
exit 2
|
|
exit 2
|
|
fi
|
|
fi
|
|
# Preguntar otras opciones de configuración
|
|
# Preguntar otras opciones de configuración
|
|
comprobarHostname
|
|
comprobarHostname
|
|
case $webServer in
|
|
case $webServer in
|
|
Apache)
|
|
Apache)
|
|
- printf " Apache..."
|
|
|
|
- instalarApache
|
|
|
|
|
|
+ apacheOn=true
|
|
;;
|
|
;;
|
|
Nginx)
|
|
Nginx)
|
|
- printf " Nginx..."
|
|
|
|
- instalarNginx
|
|
|
|
|
|
+ nginxOn=true
|
|
;;
|
|
;;
|
|
*)
|
|
*)
|
|
- printf "\nERROR:\tError interno (selección de web server).\n"
|
|
|
|
|
|
+ printf "ERROR:\tError interno (selección de web server).\n"
|
|
exit 1
|
|
exit 1
|
|
;;
|
|
;;
|
|
esac
|
|
esac
|
|
@@ -286,41 +295,38 @@ instalarNginx() {
|
|
fi
|
|
fi
|
|
}
|
|
}
|
|
|
|
|
|
-instalarDatabase() {
|
|
|
|
|
|
+mostrarDatabase() {
|
|
if [ $debianOS = true ]; then
|
|
if [ $debianOS = true ]; then
|
|
database=$(whiptail --title "BASE DE DATOS" --radiolist "<ESPACIO>: seleccionar <TAB>: cambiar <FLECHAS>: moverse\n\nEscoge la base de datos que quieres usar:" 20 70 2 \
|
|
database=$(whiptail --title "BASE DE DATOS" --radiolist "<ESPACIO>: seleccionar <TAB>: cambiar <FLECHAS>: moverse\n\nEscoge la base de datos que quieres usar:" 20 70 2 \
|
|
"MySQL" "Instalar la base de datos MySQL (no uso comercial)" ON \
|
|
"MySQL" "Instalar la base de datos MySQL (no uso comercial)" ON \
|
|
"MariaDB" "Instalar la base de datos MariaDB (fork de MySQL)" OFF \
|
|
"MariaDB" "Instalar la base de datos MariaDB (fork de MySQL)" OFF \
|
|
--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
if [ $? -ne 0 ]; then
|
|
if [ $? -ne 0 ]; then
|
|
- printf "\nERROR:\tInstalación interrumpida por el usuario.\n"
|
|
|
|
|
|
+ printf "ERROR:\tInstalación interrumpida por el usuario.\n"
|
|
exit 2
|
|
exit 2
|
|
fi
|
|
fi
|
|
# Preguntar otras opciones de configuración
|
|
# Preguntar otras opciones de configuración
|
|
case $database in
|
|
case $database in
|
|
MySQL)
|
|
MySQL)
|
|
- printf " MySQL..."
|
|
|
|
- instalarMySQL
|
|
|
|
|
|
+ mySQLOn=true
|
|
;;
|
|
;;
|
|
MariaDB)
|
|
MariaDB)
|
|
- printf " MariaDB..."
|
|
|
|
- instalarMariaDB
|
|
|
|
|
|
+ mariaDBOn=true
|
|
;;
|
|
;;
|
|
*)
|
|
*)
|
|
- printf "\nERROR:\tError interno (selección de base de datos).\n"
|
|
|
|
|
|
+ printf "ERROR:\tError interno (selección de base de datos).\n"
|
|
exit 1
|
|
exit 1
|
|
;;
|
|
;;
|
|
esac
|
|
esac
|
|
elif [ $rhelOS = true ]; then
|
|
elif [ $rhelOS = true ]; then
|
|
whiptail --title "BASE DE DATOS" --yesno "Para su distribucion $OS $DIST $REV, sólo está disponible la base de datos MariaDB." --yes-button "Continuar" --no-button "Salir" 20 70
|
|
whiptail --title "BASE DE DATOS" --yesno "Para su distribucion $OS $DIST $REV, sólo está disponible la base de datos MariaDB." --yes-button "Continuar" --no-button "Salir" 20 70
|
|
if [ $? -ne 0 ]; then
|
|
if [ $? -ne 0 ]; then
|
|
- printf "\nERROR:\tInstalación interrumpida por el usuario.\n"
|
|
|
|
|
|
+ printf "ERROR:\tInstalación interrumpida por el usuario.\n"
|
|
exit 2
|
|
exit 2
|
|
fi
|
|
fi
|
|
- printf " MariaDB.."
|
|
|
|
- instalarMariaDB
|
|
|
|
|
|
+ mariaDBOn=true
|
|
else
|
|
else
|
|
- printf "\nERROR:\tError interno (instalación Base de Datos).\n"
|
|
|
|
|
|
+ printf "ERROR:\tError interno (instalación Base de Datos).\n"
|
|
exit 1
|
|
exit 1
|
|
fi
|
|
fi
|
|
}
|
|
}
|
|
@@ -366,8 +372,9 @@ instalarMariaDB() {
|
|
fi
|
|
fi
|
|
}
|
|
}
|
|
|
|
|
|
-# Comprobación del sistema
|
|
|
|
|
|
+# Comprobación del sistema e inicialización
|
|
comprobarRoot
|
|
comprobarRoot
|
|
|
|
+inicializarVariables
|
|
OSInfo
|
|
OSInfo
|
|
comprobarDependencias
|
|
comprobarDependencias
|
|
|
|
|
|
@@ -381,8 +388,50 @@ mostrarComponentes
|
|
# Habilitar cortafuegos -> PROBLEMA: se corta la conexión ssh
|
|
# Habilitar cortafuegos -> PROBLEMA: se corta la conexión ssh
|
|
|
|
|
|
# Instalación
|
|
# Instalación
|
|
- # Cuando funcionen todos los instaladores, cambiarlo por variables de estado e instalar en este punto
|
|
|
|
- # whiptail --gauge
|
|
|
|
|
|
+ # FALTA: whiptail --gauge -> Más bonito
|
|
|
|
+ # Servidor Web
|
|
|
|
+ if [ $apacheOn = true ]; then
|
|
|
|
+ printf "Instalando Web Server Apache..."
|
|
|
|
+ #instalarApache
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ elif [ $nginxOn = true ]; then
|
|
|
|
+ printf "Instalando Web Server Nginx..."
|
|
|
|
+ #instalarNginx
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ else
|
|
|
|
+ printf "ERROR:\tError interno (instalación Web Server).\n"
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+ # Base de Datos
|
|
|
|
+ if [ $mySQLOn = true ]; then
|
|
|
|
+ printf "Instalando Base de Datos MySQL..."
|
|
|
|
+ #instalarMySQL
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ elif [ $mariaDBOn = true ]; then
|
|
|
|
+ printf "Instalando Base de Datos MariaDB..."
|
|
|
|
+ #instalarMariaDB
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ else
|
|
|
|
+ printf "ERROR:\tError interno (instalación Base de Datos).\n"
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+ # PHP
|
|
|
|
+ if [ $phpOn = true ]; then
|
|
|
|
+ printf "Instalando PHP-7..."
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ fi
|
|
|
|
+ # SSL/TLS
|
|
|
|
+ # Falta por implementar
|
|
|
|
+ # MediaWiki
|
|
|
|
+ if [ $mediaWikiOn = true ]; then
|
|
|
|
+ printf "Instalando MediaWiki..."
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ fi
|
|
|
|
+ # Moodle
|
|
|
|
+ if [ $moodleOn = true ]; then
|
|
|
|
+ printf "Instalando Moodle..."
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ fi
|
|
|
|
|
|
# Configuración
|
|
# Configuración
|
|
# Configuración Apache
|
|
# Configuración Apache
|
|
@@ -399,7 +448,11 @@ mostrarComponentes
|
|
# Configuración SSL/TLS
|
|
# Configuración SSL/TLS
|
|
# Generar certificados
|
|
# Generar certificados
|
|
# Configurar certificados
|
|
# Configurar certificados
|
|
- # Configurar actualización
|
|
|
|
|
|
+ # Configurar actualizaciones
|
|
|
|
+ if [ $actualizacionesOn = true ]; then
|
|
|
|
+ printf "Configurando actualizaciones automáticas..."
|
|
|
|
+ printf " OK.\n"
|
|
|
|
+ fi
|
|
|
|
|
|
# Autodestrucción
|
|
# Autodestrucción
|
|
{
|
|
{
|