summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xclient/engine/PostConf.lib42
-rwxr-xr-xclient/shared/scripts/configureOs16
2 files changed, 54 insertions, 4 deletions
diff --git a/client/engine/PostConf.lib b/client/engine/PostConf.lib
index 7b6062de..a28b3dee 100755
--- a/client/engine/PostConf.lib
+++ b/client/engine/PostConf.lib
@@ -447,6 +447,48 @@ EOT
#/**
+# ogConfigureOsAgent int_ndisk int_filesys
+#@brief Configura el agente OpenGnsys para sistemas operativos.
+#@param int_ndisk nº de orden del disco
+#@param int_filesys nº de orden del sistema de archivos
+#@return (nada)
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@exception OG_ERR_NOTFOUND Fichero o dispositivo no encontrado.
+#@exception OG_ERR_LOCKED Sistema de archivos bloqueado.
+#@version 1.1.0 - Primera versión para OpenGnsys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2016-08-16
+#*/ ##
+function ogConfigureOsAgent ()
+{
+# Variables locales.
+local MNTDIR CFGFILE i
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_filesys" \
+ "$FUNCNAME 1 1"
+ return
+fi
+
+# Error si no se reciben 2 parámetros.
+[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+# Obtener sistema de archvios.
+MNTDIR=$(ogMount $1 $2) || return $?
+
+# Buscar fichero de configuración de OGAgent.
+for i in usr/share "Program Files" "Program Files (x86)"; do
+ CFGFILE=$(ogGetPath "$MNTDIR/$i/OGAgent/cfg/ogagent.cfg")
+ [ -n "$CFGFILE" ] && break
+done
+# Error si no se encuentra el archivo de configuración.
+[ -n "$CFGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "ogagent.cfg" || return $?
+
+# Parchear fichero de configuración de OGAgent con IP del servidor OpenGnsys.
+sed -i -e "0,/^remote=/ s,^\(remote=https://\)\([^/]*\)\(.*\)$,\1$(ogGetServerIp)\3," $CFGFILE
+}
+
+
+#/**
# ogInstallLinuxClient int_ndisk int_filesys
#@brief Instala el cliente OpenGnSys para sistemas operativos GNU/Linux.
#@param int_ndisk nº de orden del disco
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 2aa5288d..8b32f403 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -26,6 +26,10 @@
#@version 1.0.5 - Postconfiguración para Mac OS X.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2013-10-11
+#@version 1.1.0 - Postconfiguración para agente de sistema operativo basado en REST.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2016-08-16
+#*/ ##
# Carga el configurador del engine y los parámetros de red.
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
@@ -69,8 +73,10 @@ case "$OSTYPE" in
# Registrar en Windows que la partición indicada es su nueva unidad C:\
ogWindowsRegisterPartition $1 $2 C $1 $2
#ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows
- # Instalar cliente para Windows si se indica en la variable INSTALLOSCLIENT.
- if [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
+ # Instalar nuevo agente de sistema operativo o el antiguo cliente para Windows.
+ if [ "${INSTALLOSAGENT^^}" == "TRUE" ]; then
+ ogConfigureOsAgent $1 $2
+ elif [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
ogInstallMiniSetup $1 $2 postconf.cmd
ogInstallWindowsClient $1 $2 postconf.cmd
fi
@@ -78,8 +84,10 @@ case "$OSTYPE" in
Linux) # Postconfiguración de GNU/Linux.
## Install and Configure Grub based on OS installed and Grub 1st stage location.
ogGrubInstallPartition $1 $2
- # Instalar cliente para GNU/Linux si se indica en la variable INSTALLOSCLIENT.
- if [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
+ # Instalar nuevo agente de sistema operativo o el antiguo cliente para GNU/Linux.
+ if [ "${INSTALLOSAGENT^^}" == "TRUE" ]; then
+ ogConfigureOsAgent $1 $2
+ elif [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
ogInstallLinuxClient $1 $2
fi
;;