[[PageOutline(2-5,Índice)]] = OGAgent: agente OpenGnsys para sistema operativo = == Descripción general == OGAgent es un nuevo programa agente compilado para instalar en los sistemas operativos de los equipos cliente y que incluye un servicio REST propio preparado para ''conversar'' mediante mensajes asíncronos en formato JSON con la API REST de su servidor OpenGnsys. OGAgent consta de 2 componentes principales: * Servicio administrador: realiza la comunicación con el servidor OpenGnsys y ejecuta operaciones de administración sobre el cliente. * Servicio de usuario: ejecuta operaciones sobre la sesión del usuario. == Sistemas operativos soportados == ||= Sistemas operativos =||= Fichero OGAgent =|| ||Ubuntu, Debian y derivados||ogagent_''Version''_all.deb|| ||Red Hat, Fedora y derivados||ogagent-''Version''.noarch.rpm|| ||SuSE y OpenSuSE ||ogagent-opensuse-''Version''.noarch.rpm|| ||MS-Windows ||OGAgentSetup-''Version''.exe|| ||macOS X ||OGAgentInstaller-''Version''.pkg|| == Instalación del agente == Descargar el fichero correspondiente al sistema operativo utilizado el desplegable de la sección "Descargas disponibles" del formulario de propiedades de ordenadores de la web de administración de OpenGnsys y pulsar sobre la marca verde, tal y como se muestra en el ejemplo. [[Image(seleccion-ogagent.png)]] === Sistemas operativos Ubuntu, Debian y derivados === Ejecutar las siguientes operaciones como usuario administrador (usando {{{sudo}}}). 1. Instalar el agente descargado: * Para escritorios GNOME: {{{ sudo apt install --install-suggests DirectorioDescarga/ogagent_Version_all.deb }}} * Para escritorios KDE o Unity: {{{ sudo apt install DirectorioDescarga/ogagent_Version_all.deb }}} 1. Configurar el agente, incluyendo la dirección IP del servidor OpenGnsys: {{{ sudo sed -i "0,/remote=/ s,remote=.*,remote=https://IPServidorOpenGnsys/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg }}} 1. Iniciar el servicio (se iniciará automáticamente en el proceso de arranque): {{{ sudo systemctl start ogagent }}} === Sistemas operativos Red Hat, Fedora y derivados === Ejecutar las siguientes operaciones como usuario {{{root}}} o como administrador (usando {{{sudo}}}). 1. Instalar el agente descargado: {{{ yum install ogagent-Version.noarch.rpm }}} 1. Configurar el agente, incluyendo la dirección IP del servidor OpenGnsys: {{{ sed -i "0,/remote=/ s,remote=.*,remote=https://IPServidorOpenGnsys/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg }}} 1. Iniciar el servicio (se iniciará automáticamente en el proceso de arranque): {{{ systemctl start ogagent }}} Nota: bajo ciertas circunstancias, puede ser necesario corregir permisos antes de iniciar el servicio, ejecutando: {{{ chmod +x /etc/init.d/ogagent }}} === Sistemas operativos OpenSuSE === Ejecutar las siguientes operaciones como usuario administrador (usando {{{sudo}}}). 1. Instalar el agente descargado: {{{ sudo zypper install ogagent-Version.noarch.rpm }}} 1. Seguir las instrucciones de instalación e ignorar el aviso de que el paquete no está firmado. 1. Configurar el agente, incluyendo la dirección IP del servidor OpenGnsys: {{{ sudo sed -i "0,/remote=/ s,remote=.*,remote=https://IPServidorOpenGnsys/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg }}} 1. Iniciar el servicio (se iniciará automáticamente en el proceso de arranque): {{{ sudo systemctl start ogagent }}} === Sistemas operativos Windows === Ejecutar las siguientes operaciones como usuario administrador. 1. Instalar el agente descargado, ejecutando: {{{ OGAgentSetup-Version.exe }}} 1. Seguir las instrucciones del instalador. * OGAGent 1.1.1b y posteriores: el programa permite introducir la dirección IP del servidor OpenGnsys e inicia automáticamente el servicio. * Versiones anteriores a OGAgent 1.1.1b: será necesario editar el fichero de configuración `C:\Program Files (x86)\OGAgent\cfg\ogagent.cfg` (en Windows de 64 bits) o `C:\Program Files\OGAgent\cfg\ogagent.cfg`) (en Windows de 32 bits), modificar el valor de la cláusula `remote` de la sección `[OGAgent]` incluyendo la dirección IP del servidor OpenGnsys e iniciar manualmente el servicio ejecutando `NET START OGAgent`. Nota: a partir de OGAgent 1.1.1b también puede realizarse una instalación silenciosa indicando la IP del servidor OpenGnsys, ejecutando como administrador (tener en cuenta que `/S` debe ser mayúscula): {{{ OGAgentSetup-Version.exe /S /server IPServidor }}} === Sistemas operativos macOS X === `(en preparación)` == Desinstalación del agente == Usar el método estándar del sistema operativo para desinstalar paquetes o aplicaciones. == Actualización del agente == Para actualizar el OGAgent es necesario desinstalar el agente OGAgent, reiniciar el equipo e instalar una nueva versión del programa. == Ejecución == Cuando un usuario entra en su sesión de escritorio, OGAgent mostrará un icono indicando su ejecución y que permite obtener información de la versión del programa. El siguiente gráfico muestra un ejemplo de su ejecución en Windows 10. [[Image(ogagent-windows.png)]] == Estados de los clientes OpenGnsys == Con la aparición de los agentes OGAgent, la pantalla de estados de los clientes incluye los siguientes valores: * Equipo apagado o sin conexión con el servidor. * Cliente ogAdmClient esperando instrucciones de OpenGnsys. * Cliente ogAdmclient ejecutando una operación. * Agente OGAgent instalado en Windows. * Agente OGAgent con una sesión de usuario iniciada en Windows. * Agente OGAgent instalado en distribución Linux. * Agente OGAgent con una sesión de usuario iniciada en Linux. * Agente OGAgent instalado en macOS. [[Image(estados-clientes.png)]] == Registro de incidencias == === Servidor === El servidor OpenGnsys registra las notificaciones enviadas por los agentes OGAgent en el fichero {{{/opt/opengnsys/log/ogagent.log}}}, usando el siguiente formato de línea: ''{{{FechaHora Operación Parámetros}}}''. Ejemplo: {{{ # cat /opt/opengnsys/log/ogagent.log 2020-01-28T11:59:05+0000: OGAgent started: ip=192.168.2.12, mac=08:00:27:0e:65:12, os=Linux:Ubuntu 18.04. 2020-01-28T11:59:42+0000: User logged in: ip=192.168.2.12, user=vagrant, lang=es, os=Linux:Ubuntu 18.04. 2020-01-28T12:05:59+0000: User logged out: ip=192.168.2.12, user=vagrant. 2020-01-28T12:06:03+0000: OGAgent stopped: ip=192.168.2.12, mac=08:00:27:0e:65:12, os=Linux:Ubuntu 18.04. }}} La sección "Sesiones" de las propiedades de ordenador muestra una salida procesada de este fichero, como se muestra en el gráfico de ejemplo. [[Image(sesiones-ogagent.png)]] === Agente === Existe un fichero de configuración de OGAgent para cada uno de sus 2 componentes principales ({{{ogagent.cfg}}} y {{{ogclient.cfg}}}) que registra las operaciones que realiza cada uno de ellos y donde se pueden definir los niveles correspondientes de ''log''. Los niveles de registro típicos son {{{DEBUG}}} para obtener información de depuración e {{{INFO}}} para una información básica. Los ficheros de incidencias para cada componente son: ||= S.O. =||= Log administrador =||= Log usuario =|| ||Windows ||`C:\Windows\Temp\opengnsys.log`||`%HOME%\Applocal\Data\Temp\opengnsys.log` || ||Linux y macOS||`/var/tmp/opengnsys.log` ||`$HOME/opengnsys.log` || == Mensajes entre OpenGnsys Server y OGAgent (solo para desarrolladores) == '(sección pendiente de actualizar a la última versión)' OGAgent para OpenGnsys 1.1.0 tiene incorporadas las siguientes operaciones: * Notificaciones enviadas al servidor (''push''): ||= Ruta =||= Método =||= Descripción =||= Mensaje JSON =|| ||{{{/opengnsys/started}}}||POST||Inicio del servicio OGAgent||{{{ {"ip":"IP","mac":"MAC","ostype":"SO","osversion":"Versión","secret":"Clave"} }}}|| ||{{{/opengnsys/stopped}}}||POST||Parada del servicio OGAgent||{{{ {"ip":"IP","mac":"MAC","ostype":"TipoSO","osversion":"VersionSO"} }}}|| ||{{{/opengnsys/loggedin}}}||POST||Usuario inicia sesión en escritorio||{{{ {"ip":"IP","user":"Usuario"} }}}|| ||{{{/opengnsys/loggedout}}}||POST||Usuario finaliza sesión en escritorio||{{{ {"ip":"IP","user":"Usuario"} }}}|| '''Nota:''' La clave de sesión se genera aleatoriamente en la operación de inicio del servicio agente, se envía al servidor para que éste la almacene y posteriormente pueda ser utilizada como parámetro de seguridad en las peticiones atendidas por el propio agente. * Operaciones atendidas (''pull''): ||= Ruta =||= Método =||= Descripción =||= Mensaje JSON =||= Respuesta JSON =|| ||{{{/opengnsys/status}}}||GET||Notificación del estado del equipo|| ||{{{ {'status':'XXX','loggedin':bool} }}} || ||{{{/opengnsys/poweroff}}}||GET||Operación de apagado del cliente|| ||{{{ {"op":"launched"} }}}|| ||{{{/opengnsys/reboot}}}||GET||Operación de reinicio del cliente|| ||{{{ {"op":"launched"} }}}|| ||{{{/opengnsys/script}}}||POST||Operación de ejecución de script Python en el cliente (codificado en Base64)||{{{ {"script":"CadenaBase64"} }}}||{{{ {"op":"launched"} }}}|| ||{{{/opengnsys/popup}}}||POST||Muestra un mensaje en la sesión del usuario||{{{ {"title":"Cadena","message":"Cadena"} }}}||{{{ {"op":"launched"} }}}|| '''Nota:''' Las peticiones deben incluir una cabecera {{{Authentication}}} con el valor de la clave de acceso a la API REST del agente OGAgent. === Estados definidos === ||=Estado=||= Descripción =|| ||{{{LNX}}}||Sistema operativo GNU/Linux|| ||{{{WIN}}}||Sistema operativo Windows|| ||{{{OSX}}}||Sistema operativo macOS X|| ||{{{OPG}}}||Cliente OpenGnsys esperando órdenes ''(aún no soportado)''|| ||{{{BSY}}}||Cliente OpenGnsys ocupado ejecutando alguna orden ''(aún no soportado)''|| == Banco de pruebas == ||= SO Cliente =||= Escritorio =||= Comentarios =|| ||CentOS 7||No||Correcto, solo servicio administrador|| ||Fedora 30||KDE Plasma||Correcto|| ||macOS X 10.13||-||Correcto, solo servicio administrador|| ||openSUSE 15.1||KDE Plasma||Correcto|| ||Ubuntu 16.04||Unity||Correcto|| ||Ubuntu 18.04||GNOME 3||Correcto|| ||Ubuntu 20.04||-||''Error de instalación''|| ||Windows 7||-||Correcto|| ||Windows 10||-||Correcto||