Parcourir la source

Cambio a variables de estado

Guzmán Castanedo Villalba il y a 6 ans
Parent
commit
91f0799b2d
1 fichiers modifiés avec 93 ajouts et 40 suppressions
  1. 93 40
      install

+ 93 - 40
install

@@ -10,8 +10,6 @@
 
 OSInfo() {
 	#printf "Detectando SO..."
-	debianOS=false
-	rhelOS=false
 	OS=$(uname -s)
 	if [ $OS = "Linux" ]; then
 		OS="GNU/Linux"
@@ -131,6 +129,28 @@ comprobarDependencias() {
 	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() {
 	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)
@@ -173,34 +193,25 @@ mostrarComponentes() {
 	for i in $componentes; do
 		case $i in
 			\"WebServer\")
-				printf "Instalando Servidor Web"
-				instalarWebServer
-				printf " OK.\n"
+				mostrarWebServer
 				;;
 			\"Database\")
-				printf "Instalando Servidor Database"
-				instalarDatabase
-				printf " OK.\n"
+				mostrarDatabase
 				;;
 			\"PHP\")
-				printf "Instalando PHP..."
-				printf " OK.\n"
+				phpOn=true
 				;;
 			\"SSL/TLS\")
-				printf "Instalando SSL/TLS..."
-				printf " OK.\n"
+				# 2 Opciones: Let's Encrypt o Autofirmado
 				;;
 			\"MediaWiki\")
-				printf "Instalando MediaWiki..."
-				printf " OK.\n"
+				mediaWikiOn=true
 				;;
 			\"Moodle\")
-				printf "Instalando Moodle..."
-				printf " OK.\n"
+				moodleOn=true
 				;;
 			\"Actualizaciones\")
-				printf "Configurando actualizaciones..."
-				printf " OK.\n"
+				actualizacionesOn=true
 				;;
 			*)
 				printf "ERROR:\tError interno (selección de componentes).\n"
@@ -210,28 +221,26 @@ mostrarComponentes() {
 	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 \
 	"Apache" "Instalar el servidor web Apache2" ON \
 	"Nginx" "Instalar el servidor web Nginx" OFF \
 	--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
 	if [ $? -ne 0 ]; then
-		printf "\nERROR:\tInstalación interrumpida por el usuario.\n"
+		printf "ERROR:\tInstalación interrumpida por el usuario.\n"
 		exit 2
 	fi
 	# Preguntar otras opciones de configuración
 	comprobarHostname
 	case $webServer in
 		Apache)
-			printf " Apache..."
-			instalarApache
+			apacheOn=true
 			;;
 		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
 			;;
 	esac
@@ -286,41 +295,38 @@ instalarNginx() {
 	fi
 }
 
-instalarDatabase() {
+mostrarDatabase() {
 	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 \
 		"MySQL" "Instalar la base de datos MySQL (no uso comercial)" ON \
 		"MariaDB" "Instalar la base de datos MariaDB (fork de MySQL)" OFF \
 		--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
 		if [ $? -ne 0 ]; then
-			printf "\nERROR:\tInstalación interrumpida por el usuario.\n"
+			printf "ERROR:\tInstalación interrumpida por el usuario.\n"
 			exit 2
 		fi
 		# Preguntar otras opciones de configuración
 		case $database in
 			MySQL)
-				printf " MySQL..."
-				instalarMySQL
+				mySQLOn=true
 				;;
 			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
 				;;
 		esac
 	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
 		if [ $? -ne 0 ]; then
-			printf "\nERROR:\tInstalación interrumpida por el usuario.\n"
+			printf "ERROR:\tInstalación interrumpida por el usuario.\n"
 			exit 2
 		fi
-		printf " MariaDB.."
-		instalarMariaDB
+		mariaDBOn=true
 	else
-		printf "\nERROR:\tError interno (instalación Base de Datos).\n"
+		printf "ERROR:\tError interno (instalación Base de Datos).\n"
 		exit 1
 	fi
 }
@@ -366,8 +372,9 @@ instalarMariaDB() {
 	fi
 }
 
-# Comprobación del sistema
+# Comprobación del sistema e inicialización
 comprobarRoot
+inicializarVariables
 OSInfo
 comprobarDependencias
 
@@ -381,8 +388,50 @@ mostrarComponentes
 	# Habilitar cortafuegos -> PROBLEMA: se corta la conexión ssh
 	
 # 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 Apache
@@ -399,7 +448,11 @@ mostrarComponentes
 	# Configuración SSL/TLS
 		# Generar certificados
 		# Configurar certificados
-	# Configurar actualización
+	# Configurar actualizaciones
+	if [ $actualizacionesOn = true ]; then
+		printf "Configurando actualizaciones automáticas..."
+		printf " OK.\n"
+	fi
 
 # Autodestrucción
 {