Guía de uso

La configuración del sistema migasfree

El hombre razonable se adapta al mundo; el irrazonable intenta adaptar el mundo a sí mismo. Así pues, el progreso depende del irrazonable.

—George Bernard Shaw

En los capítulos anteriores has aprendido a instalar el servidor y el cliente migasfree, así como a crear paquetes. La creación de paquetes no es una tarea trivial, no tanto por su construcción en sí, sino por el hecho de que son necesarios amplios conocimientos de los sistemas operativos y de las aplicaciones.

En éste y en los siguientes tres capítulos, vas a aprender a adaptar y usar el servidor migasfree.

Propiedades

En migasfree, una propiedad es una característica de los equipos o de los usuarios, y que nos servirá para desplegar los paquetes.

Como administrador de migasfree, una de las primeras tareas que debes realizar es definir estas propiedades. Debes preguntarte en función de qué características vas a realizar los despliegues. Por ejemplo, ¿te interesa desplegar los paquetes por el HOSTNAME de los equipos? ¿y por subred? ¿Qué tal por el grupo al que pertenece el usuario en el LDAP? ¿O por su contexto LDAP?

Nota

En AZLinux, usamos principalmente el contexto LDAP al que pertenece el usuario para desplegar los cambios por los distintos servicios o departamentos de nuestro ayuntamiento, y en menor medida usamos también el CID.

Una propiedad es un código que se programa en un registro de la base de datos de migasfree. Estas propiedades serán ejecutadas en cada uno de los clientes migasfree y su valores de retorno serán devueltos al servidor como atributos.

Nota

El atributo es el valor concreto que toma una propiedad al ser ejecutada en un equipo.

Veamos un ejemplo sencillo de todo esto con la propiedad HOSTNAME. Accede a la web de tu servidor migasfree y ve a Configuración-Propiedades-HST. Verás en este registro el siguiente código escrito en python.

import platform
print platform.node()

Si ejectutas python en una consola y escribes estas dos líneas verás que python muestra, por la salida estándar, el nombre de tu equipo.

$ python
Python 2.7.3 (default, Apr 10 2013, 05:46:21)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> print platform.node()
white

En mi caso me ha devuelto white, que es el nombre de mi portátil. ¿A que no aciertas de qué color es?

Esto es, en definitiva, lo que hace el cliente migasfree: obtiene del servidor la propiedad HST (su código), la ejecuta y devuelve al servidor el resultado como atributo (HST-white).

Podrías haber escrito la propiedad también en código bash simplemente llamando al comando de linux hostname o escribiendo echo $HOSTNAME (el resultado sería el mismo), pero utilizar código python nos permite, en este caso, usar la misma propiedad también para plataformas Windows o Mac OS.

Campos de la Propiedad

Observa cada uno de los campos de la Propiedad:

  • Prefijo: Es una combinación de tres números o letras. Este prefijo se utiliza para agrupar e identificar los atributos.

  • Nombre: Denomina a la propiedad.

  • Lenguaje de programación: En el que está escrito el código de la propiedad.

  • Código: Instrucciones a ejecutar en los clientes para obtener atributos.

  • Habilitado: Indica si está activa la propiedad. Si no está marcado, la propiedad no será ejecutada en los clientes.

  • Clase: Hay cuatro tipos de clases y que nos permiten tratar el valor devuelto por la propiedad de diferentes maneras:

    • Normal. El valor devuelto por la propiedad viene con el siguiente formato:

      <valor>~<Descripción>
      

      o, simplemente, como:

      <valor>
      
    • Lista: El valor al ejecutar la propiedad en el cliente es una lista de atributos separados por una coma. Puedes ver un ejemplo en la propiedad PCI. Su formato es:

      <valor>~<Descripción>, ...
      
    • Agrega por la Derecha: Permite añadir atributos de la siguiente manera: Si el valor devuelto por la propiedad es “CONTEXTO1.CONTEXTO2.MIEMPRESA”, el servidor interpreta que el equipo tiene estos tres atributos:

      • MIEMPRESA
      • CONTEXTO2.MIEMPRESA
      • CONTEXTO1.CONTEXTO2.MIEMPRESA

      Se utiliza esta clase para crear atributos relacionados con LDAP.

    • Agrega por la Izquierda. Lo mismo que el anterior pero agregando por la izquierda.

      • CONTEXTO1
      • CONTEXTO1.CONTEXTO2
      • CONTEXTO1.CONTEXTO2.MIEMPRESA
  • Automático: Si este campo está marcado, los nuevos atributos serán añadidos automáticamente a la base de datos de migasfree. En caso contrario es el administrador de migasfree el responsable de añadir manualmente los atributos para esta propiedad. Se pueden añadir atributos manualmente accediendo a Datos-Atributos.

Propiedades específicas

Existen unas propiedades predefinidas que tienen unos objetivos muy concretos y que no pueden ser eliminadas del sistema. Lo más característico de ellas es que no son ejecutadas en el cliente sino en el servidor.

  • SET: Esta propiedad tiene un atributo llamado SET-ALL SYSTEMS. Todos los ordenadores tendrán este atributo sin excepción. Sirve para referirse a todos los ordenadores. Por ejemplo, si en un repositorio asignas este atributo, todos los ordenadores tendrán acceso a él. Es habitual usarlo también en la última demora de un calendario. Esta propiedad, además, se usa internamente para definir Conjuntos de Atributos.

  • CID: Computer Identificator. Esta propiedad generará un atributo que es igual al campo id de la tabla computer de la Base de Datos de migasfree.

    Dicho atributo CID es único por cada ordenador y se utiliza en lugar de referirse al UUID de la placa base de un ordenador siendo el más recomendado para señalar a un ordenador en concreto (procesos como el Reemplazo de ordenadores tienen en cuenta este atributo).

    Por ejemplo, un atributo CID-572 se correspondería con el UUID 5FD85780-9BC9-11E3-91B8-F0921CF3678D.

    El ajuste MIGASFREE_COMPUTER_SEARCH_FIELDS del servidor, permite configurar búsquedas por otros campos del ordenador a la hora de asignar un determinado CID en el servidor migasfree.

    Cuando un ordenador pasa a un estado Baja o a Disponible todos sus CID asignados en el sistema son eliminados. Ver campo estado de Ordenadores.

    El CID aparece por defecto en la etiqueta del ordenador que muestra el comando migasfree-label.

Tipos de Etiquetas

Hasta ahora, has visto que una propiedad es un código que se ejecuta en el cliente para obtener un atributo automáticamente. Ahora bien, pueden existir casos en que no se puede obtener automáticamente estos atributos. Imagina que quieres “etiquetar” ciertos equipos según la funcionalidad que van a realizar (Tratamiento gráfico, administración, aula, etc.). Esto no es algo que, a priori, se pueda programar.

En migasfree existe la posibilidad de crear estas etiquetas y asignarlas manualmente a los equipos tal y como harías con una etiqueta física que pegas a un ordenador.

Una etiqueta no ejecutará ningún código en el cliente. Es el propio registro del ordenador en el servidor de migasfree quien lleva asignadas, manualmente, estas etiquetas. A todos los efectos, una etiqueta es un atributo más del sistema y, por tanto, te permitirá hacer el despliegue también en función de ellas.

Por cada Configuración-Tipos de etiqueta, existirá un conjunto de etiquetas que manualmente debes añadir en Datos-Etiquetas. Una vez añadidas, puedes asignarlas a Datos-Ordenadores. También puedes editar Datos-Etiquetas y asignarle un conjunto de ordenadores.

Existe en el cliente el comando migasfree-tags que permite consultar y asignar etiquetas desde el propio cliente.

Para obtener el conjunto de etiquetas que pueden ser asignadas a un ordenador ejecuta:

migasfree-tags --available

Para consultar las etiquetas asignadas a un ordenador ejecuta:

migasfree-tags --get

Para asignar etiquetas al equipo, seleccionando manualmente las etiquetas entre las disponibles en el sistema, ejecuta:

migasfree-tags --set

Para asignar determinadas etiquetas a un equipo, escribe las etiquetas separadas por espacios:

migasfree-tags --set <ETIQUETA1> <ETIQUETA2> ...

Para asignar etiquetas en el servidor migasfree pero que no se produzca ningún cambio de paquetes utiliza:

migasfree-tags --communicate <ETIQUETA1> <ETIQUETA2> ...

Para quitar todas las etiquetas de un equipo, ejecuta:

migasfree-tags --set ""

Las etiquetas están relacionadas con los campos de los repositorios:

  • default preinclude packages
  • default include packages
  • default exclude packages

ya que al ejecutar el comando migasfre-tags --set se instalarán los paquetes definidos en preinclude e include y se desinstalarán los paquetes definidos en el campo exclude, siempre y cuando los atributos asignados al repositorio coincidan con los del equipo. Esto se utiliza para crear la imagen ISO de los escritorios.

Nota

En AZLinux, usamos migasfree-tags básicamente para, partiendo de una imagen ISO de Ubuntu, desintalar e instalar los paquetes que componen nuestro escritorio y crear una imagen del disco para clonar.

Nota

En Vitalinux se emplean las etiquetas para cambiar fácilmente de “sabor”. Cuando se quiere cambiar de sabor Vitalinux (Infantil, Primaria, Profes, ...), simplemente se eligen las etiquetas mediante el comando migasfree-tag --set, produciéndose automáticamente la instalación y desinstalación de los paquetes correspondientes. Tambien se utiliza en la creación del DVDs, permitiendo hacer una ISO para cada sabor o conjunto de sabores.

Campos de Tipos de Etiqueta

  • Prefijo: Es una combinación de tres números o letras. Este prefijo se utiliza para agrupar e identificar las etiquetas.

  • Nombre: Denomina el tipo de etiqueta.

  • Habilitado: Si no está marcado, las etiquetas de este tipo no serán funcionales.

  • Clase: El funcionamiento es exactamente igual al campo de mismo nombre que tienen las Propiedades.

    Un valor muy útil que puede tomar este campo es el de agrega por la derecha. Imagina que quieres agrupar los ordenadores por ubicación para liberar software por distintas zonas. Una forma de hacerlo es crear un Tipo de Etiqueta llamada p.e. UBICACIÓN definada de clase agrega por la derecha. Después, puedes crear las Etiquetas de tipo UBICACION p.e.:

    UBI-PLANTA-1.SEDE_CENTRAL.MADRID
    

    Cuando un equipo con esta etiqueta asignada se conecta al servidor, automáticamente el servidor interpretará que tiene no una, sino tres etiquetas:

    UBI-MADRID
    UBI-SEDE_CENTRAL.MADRID
    UBI-PLANTA-1.SEDE_CENTRAL.MADRID
    

    Con lo que finalmente podemos liberar software a todo MADRID, a toda la sede central de Madrid, o solamente a la planta 1ª.

    Nota

    Observa que el caracter de delimitación es el punto: .

Conjuntos de Atributos

En ocasiones puedes necesitar agrupar Atributos.

Imagina que tienes muchos equipos a los que asignar una cierta Etiqueta y que te resulta pesado tener que hacerlo uno a uno. Puedes entonces crear un Conjunto de Atributos.

Supón que tienes subredes con un buen ancho de banda y otras subredes que no, y que necesitas liberar software en función de esto. Podríamos crear dos Conjuntos de Atributos:

Conjunto 1:
      Nombre:                 RED LENTA
      Atributos asignados:    NET-192.168.1.0/24
                              NET-192.168.8.0/24

Conjunto 2:
      Nombre:                 RED RAPIDA
      Atributos asignados:    SET-ALL SYSTEMS
      Atributos excluidos:    SET-RED LENTA

De esta manera, cualquier equipo de las subredes 192.168.1.0/24 o 192.168.8.0/24, al ejecutar migasfree -u, se le asignará automáticamente un Atributo: SET-RED LENTA. Al resto de equipos se le asignará el Atributo: SET-RED RAPIDA.

Ahora ya podríamos crear Repositorios y asignarles dichos Atributos.

Los Conjuntos de Atributos no ejecutan ningún código en el cliente, sino que son evaluados en el servidor. Si un ordenador pertenece a un conjunto, se le asigna un Atributo con el mismo nombre que el Conjunto de Atributos.

Campos de Conjuntos de Atributos

  • Nombre: Denomina al conjunto.
  • Activo: Indica si el conjunto será evaluado.
  • Atributos: Lista de Atributos que formarán parte el conjunto.
  • Excluidos: Lista de Atributos a excluir de conjunto.

Versiones

Migasfree puede trabajar con distintos Sistemas Operativos. Una versión, en migasfree, representa a un conjunto de ordenadores que comparten un mismo proyecto.

Por ejemplo, en el Ayto. de Zaragoza contamos con las siguientes versiones:

  • AZLinux-1 (SLED 10.2) Se migró a AZLinux-2. (Ningún PC).
  • AZLinux-2 (OpenSUSE 11.2) Se migró a AZLinux-12 (Ningún PC).
  • AZLinux-12 (Ubuntu 12.04) En producción (1200 PC). En fase de migración a AZLinux-14
  • AZLinux-14 (Ubuntu 14.04) En producción (200 PC).
  • AZLinux-16 (Ubuntu 16.04). En desarrolo (Ningún PC).
  • ZA (Ubuntu 10.04 para escritorios tipo kioskos). Obsoleto.
  • WIN-XP (Windows XP). En producción (1800 PC).
  • AZW-10 (Windows 10). En desarrollo (Ningún PC).

Cada ordenador estará configurado en una única versión en un momento dado. Cambios de versión en un ordenador crean en el sistema un registro de migración automáticamente. De esta manera, es posible conocer las diferentes migraciones de S.O. que se han ido produciendo en los equipos y en qué momento se han hecho efectivas. Puedes consultar las migraciones accediendo a Datos-Migraciones.

Mediante el ajuste MIGASFREE_AUTOREGISTER se permite, o no, a los equipos registrar automáticamente las versiones. Puedes consultarlo en Ajustes del servidor migasfree.

Campos de la Versión

  • Nombre: Denomina a la versión.

  • Sistema de gestión de paquetes: El P.M.S. que se utiliza en el S.O. de esta versión.

  • Actual line computer: Es un equipo que sirve como referencia para comparar con el resto de equipos. Se debe elegir un equipo que represente la línea actual de la versión y que sea lo más “estándar” posible.

  • Actual line packages: Lista ordenada de paquetes que componen la actual línea de la versión. Cuando se conecta al servidor el equipo asignado en el campo Actual line computer se actualiza automáticamente este campo.

    Este campo tiene relación con el campo Inventario de software de los ordenadores, ya que en este último sólo se mostrará la diferencia de paquetes repecto al Actual line computer. De esta manera, se puede ver fácilmente que cambios se han producido respecto al ordenador asignado como referencia.

  • Autoregistrado: Si está marcado, se permiten registrar ordenadores desde un cliente automáticamente. En este caso, sólo con que un equipo esté configurado con la versión será añadido automáticamente a la base datos.

    En caso contrario sólo se podrán registrar ordenadores mediante el uso de un usuario que cuente con los permisos adecuados para añadir ordenadores al sistema.

  • Plataforma: a la que pertenece la versión.

Plataformas

Las versiones se clasifican por plataformas. Las plataformas vienen establecidas por la función python platform.system() y, por tanto, sus valores pueden ser:

  • Linux
  • Windows
  • (Otras)

Esta clasificación de las versiones te permite realizar consultas y estadísticas en función de la plataforma.

Mediante el ajuste MIGASFREE_AUTOREGISTER se permite, o no, a los equipos registrar automáticamente las plataformas. Puedes consultarlo en Ajustes del servidor migasfree.

Usuarios Migasfree

En migasfree existen dos tipos de usuarios, los usuarios que administran migasfree y los usuarios que utilizan los ordenadores. Este apartado se refiere a los primeros.

Cuando se genera la base de datos de migasfree se crean 7 grupos de usuarios y 8 usuarios predeterminados:

Grupos de Usuarios

En función de las tareas que los usuarios de administración de migasfree pueden realizar, se establecen los siguientes grupos de usuarios.

  • Configurator con permisos de lectura/escritura a:

    • Propiedades
    • Versiones
    • P.M.S.
    • Plataformas
    • Comprobaciones
    • Definicion de fallas
    • Mensajes
    • Actualizaciones
    • Mensajes del servidor
    • Migraciones
    • Notificaciones
  • Computer Checker tiene permisos de lectura/escritura a:

    • Errores
    • Fallas
    • Mensajes
    • Actualizaciones
  • Liberator. Permisos de lectura/escritura a:

    • Repositorios
    • Calendarios
  • Packager cuenta con permisos de lectura/escritura a:

    • Paquetes
    • Almacenes
  • Query. Permisos de lectura/escritura a:

    • Consultas
  • Device installer cuenta con permisos de lectura/escritura a:

    • Dispositivos
  • Reader. Permisos de sólo lectura a todas las tablas.

Usuarios

  • admin. Tiene permisos de lectura/escritura a todas las tablas.
  • packager. Pertenece a los grupos Reader y Packager.
  • configurator. Pertenece a los grupos Reader y Configurator.
  • installer. Pertenece a los grupos Reader y Device installer.
  • query. Pertenece a los grupos Reader y Query.
  • liberator. Pertenece a los grupos Reader y Liberator.
  • checker. Pertenece a los grupos Reader y Computer Checker.
  • reader. Pertenece al grupo Reader.

Estos usuarios tienen por defecto como contaseña su nombre, es decir, la contraseña de admin es admin, y lo mismo es aplicable al resto de usuarios.

Estos usuarios son ficticios para realizar pruebas y conviene que sean eliminados. Se recomienda crear los usuarios reales que usarán la web del servidor migasfree asignándoles los grupos de usuarios correspondientes.

Nota

Es importante que en un entorno de producción se deshabiliten los usuarios que no se vayan a utilizar o que, al menos, se les cambie la contraseña por motivos de seguridad.

Cambio de contraseña

La contraseña puede ser cambiada por los usuarios pulsando en su nombre de usuario y que aparece arriba a la derecha en todas las páginas web del servidor.

También puede ser modificada por otro usuario que tenga marcado el campo Es superusuario, accediendo al registro del usuario en cuestión y modificando directamente su campo Contaseña.

Versión por defecto de un Usuario

Los usuarios tienen un campo versión que sirve para filtrar registros. De esta manera, cuando un usuario consulta los Repositorios p.e., sólo se muestran los repositorios de la versión que tiene asignada.

Un usuario puede seleccionar su versión pulsando en su nombre de usuario y luego Preferencias

Comprobaciones

Son un conjunto de comprobaciones que se realizan para alertar al usuario. Pulsando en cada una de las Alertas puedes obtener más información. ver figura 8.1.

Alertas del sistema.

figura 8.1. Alertas del sistema.

Cada Alerta viene programada en un registro de Comprobación. Hay 8 comprobaciones predeterminadas:

  • Errors to check. Cuando en un cliente migasfree se produce algún error, éste es enviado al servidor. Esta comprobación hace que se muestren estos errores. Una vez revisado o solucionado un error en el cliente debes editar el error en el servidor y marcar el campo comprobado. Esto hará que ya no aparezca en la lista de errores a comprobar. Puedes también seleccionar un conjunto de errores en la lista de errores y en el desplegable de acción seleccionar La comprobación es correcta.
  • Faults to check. Cuando en un cliente migasfree se produce una falla, ésta es enviada al servidor. Esta comprobación hace que se muestren las fallas pendientes. La manera de proceder con las fallas es similar a la de los Errors to check.
  • Notifications to check. Son hechos que se han producido en el sistema y que son informados mediante esta comprobación. Un ejemplo de notificación es cuando un equipo da de alta una plataforma o una versión nueva en el sistema.
  • Package/Set orphan. Comprueba si hay paquetes que no están asignados a ningún repositorio.
  • Computer updating now. Cuando un equipo está ejecuando el cliente migasfree, éste va informando al servidor de lo que está haciendo mediante un texto que indica el proceso que está realizando. Cuando el cliente migasfree finaliza, envía al servidor un mensaje de texto vacío. Esta comprobación comprueba cuantos de estos mensajes se han recibido.
  • Computer delayed. Si pasa un determinado tiempo desde que se recibió el último mensaje del cliente, es muy posible que algo ha ido mal en el cliente. Quizás perdió la conexión, o el usuario apagó el equipo en medio de la ejecución del cliente migasfree, o quizás ha habido algún error. Esta comprobación permite detectar estos casos. La cantidad de tiempo viene establecida por defecto en 30 minutos y puede ser modificado mediante el ajuste MIGASFREE_SECONDS_MESSAGE_ALERT de los Ajustes del servidor migasfree.
  • Server Messages. Es similar a Computer updating now pero para los mensajes que se producen en el servidor.
  • Server Messages Delayed. Similar a Computer delayed pero para los mensajes que se producen en el servidor.

Campos de Comprobación

  • Nombre: Denomina la comprobación

  • Descripción: Sirve para describir en detalle la comprobación.

  • Código: Instrucciones escritas en Django para realizar la comprobación. El servidor interpretará las siguientes variables que deben ser asignadas en este campo.

    result. Debe ser un numero. Un valor de 0 indica que no hay nada que mostrar en la alerta.

    alert. Es el tipo de alerta. Puede ser uno de estos tres valores: ‘info’, ‘warning’ ó ‘danger’. Se representan con los colores azul, naranja o rojo. El valor por defecto es ‘info’.

    url. Es el link al que accederá el usuario cuando pulse en la alerta.

    msg. Es el texto a mostrar en la alerta.

    target. Puede ser “computer” o “server” para indicar que la comprobación está relacionada con el equipo cliente o con el servidor. Se representa con el icono de un ordenador o con el de una nube.

    Mira este codigo de ejemplo, el de Errors to check:

    from migasfree.server.models import Error
    result = Error.objects.filter(checked__exact=0).count()
    url = '/admin/server/error/?checked__exact=0'
    icon = 'error.png'
    msg = 'Errors to check'
    target = 'computer'
    

    Lo primero que hacemos en importar el modelo Error. Depués obtenemos el número de registros de errores que que no se han comprobado y lo asignamos a la variable result. A continuación, vamos asignando los valores a cada una de las variables.

  • Habilitado. Activa o desactiva la comprobación.

Las alertas proporcionan al usuario una vista general de la situación actual del sistema, dirigiendo su actuación a lo relevante.

El objetivo en todo momento debería ser mantener el sistema con 0 alertas. Esto indicaría que se han revisado los errores, se han comprobado las fallas, no hay paquetes huérfanos, etc.

Fallas

Una falla es un hecho negativo que se produce en un equipo cliente. Por ejemplo que un equipo se quede con poco espacio en la partición de sistema, es algo a lo que se debe prestar atención y ser solucionado antes de que sea tarde.

Migasfree mediante las fallas permite lanzar código en el cliente con este objetivo. Fíjate que las posibilidades son inmensas y que te permite ser muy proactivo.

En definitiva, una falla es un código que se ejecuta en el cliente. Si el código escribe algo por la salida estándar, ésta será enviada al servidor como Falla. El servidor entonces añadirá un registro de Falla, apareciendo en las Alertas de los usuarios de migasfree.

Campos de Definición de Falla

  • Nombre: Denomina a la falla.
  • Descripción: Para detallar lo que hace la falla.
  • Habilitado: Activa o desactiva la falla.
  • Lenguaje de programación: Especifica en qué lenguaje está escrito el código. Mi recomendación es que programes en la medida de lo posible en python.
  • Código: Instrucciones que detectan alguna falla en los equipos y que debe poner en la salida estándar un texto que indique la falla producida. Puede serte útil en algunos casos poner también el procedimiento a seguir.
  • Attributes: Permite asignar a que equipos cliente será efectiva la falla. Por ejemplo si escribes el código en bash, deberías asignar la falla sólo a los equipos con plataforma Linux PLT-Linux, ya que plataformas Windows no serán capaces de ejecutar bash. También te puede interesar programar una falla sólo para obtener información de un equipo o de un grupo de equipos.
  • Users: Sirve para asignar usuarios de migasfree a los que les aparecerán las fallas de este tipo cuando se accede desde las Alertas (sólo se muestran las que están pendientes de comprobar por el usuario autenticado).

Si una definición de falla no tiene asignado ningún usuario, las fallas que se produzcan aparecerán a cualquier usuario autenticado.

Nota

Poder ejecutar código en los clientes proporciona una gran potencia para realizar cualquier cosa. Usa esta capacidad con responsabilidad y sé meticuloso en las comprobaciones antes de activar cualquier falla.

Consultas

Migasfree incorpora un sistema para crear consultas parametrizables sencillas.

Cada consulta se programa en un registro y podrá ser ejecutada accediendo a Consultas

Hay una pocas consultas ya predefinidas, pero puedes programar nuevas o adaptar las que ya existen.

Campos de consulta

  • Nombre: Denomina la consulta.

  • Descripción: Describe la consulta.

  • Código: Instrucción en Django de la consulta. Mediante la asignación de una variables predeterminadas el servidor podrá crear la consulta.

    Las variables en concreto son:

    • QuerySet: Conjunto de registros de la consulta.
    • fields: Lista de los campos del QuerySet que se quieren mostrar.
    • titles: Lista de los titulos de los campos que se quieren mostrar.
    • version: Sirve para obtener la version del usuario y poder hacer filtros cuando se requiera.
  • Parámetros: Permite la petición de parámetros de consulta. Se debe crear una función que se llame form_params y que devuelva una clase que herede de ParametersForm

En fin, creo que lo mejor es que veas un ejemplo para comprender la programación de consultas: hay una que muestra todas las consultas, se llama QUERIES:

Parametros: Aquí se programa un formulario de parametros que pedirá el paŕametro id.

def form_params():
    from migasfree.server.forms import ParametersForm
    class myForm(ParametersForm):
        id = forms.CharField()
    return myForm

Código: Programamos que si el parámetro id que ha introducido el usuario es una cadena vacía, la variable query sea igual a todos los regitros de la tabla Consulta. En caso de que el usuario introduzca un valor filtramos las Consultas por parameters['id'].

if parameters['id'] == '':
    query = Query.objects.all()
else:
    query = Query.objects.filter(id=parameters['id'])
fields = ('id', 'name', 'description', 'code', 'parameters')

Nota

Para realizar consultas necesitarás conocer un poco los QuerySet de Django y la Documentación del modelo de datos. Esta última la tienes disponible al final de todas las páginas del servidor pulsando sobre el icono de información .

Errores autocomprobables

Por defecto, los errores producidos por el P.M.S., se añaden al sistema como no comprobados. Ahora bien, en ocasiones puede resultar tedioso tener que marcar como comprobados uno a uno ciertos errores que más que errores son “alertas”.

Para automatizar esta tarea puedes crear un error autocomprobable. Simplemente añade un registro con el patrón de búsqueda deseado y los errores que coincidan son ese patrón se marcarán automáticamente como comprobados.

Por ejemplo si quisieras que todos los errores que llegan del tipo:

2014-10-03 10:44:47
Error: Generic error
Info: Curl error: Couldn't resolve host 'myserver'

se autocomprobaran, podrías emplear el siguiente patrón:

.*\sError: Generic error\sInfo: Curl error: Couldn't resolve host 'myserver'

La Liberación

El conocimiento nos hace responsables.

—Ernesto Guevara.

Este es el capítulo que mejor define a migasfree, ya que su principal funcionalidad es la de ofrecer unos determinados repositorios de paquetes que estarán disponibles para los clientes en función de sus atributos.

En los proyectos de software libre, la liberación tiene que ver con poner a disposición de la comunidad un determinado software. Aspectos como la autoría o la licencia son esenciales, tanto o más como el propio software que se libera.

Liberar software en migasfree implica, además, decidir a quién y a partir de qué momento, un cliente tendrá acceso a dicho software.

Subiendo Paquetes al servidor

Antes de poder liberar el software obviamente tienes que subirlo al servidor.

Como viste en los primeros capítulos, la manera de hacerlo es utilizando el comando de cliente:

migasfree-upload -f <mipaquete>

o si quieres subir un conjunto de paquetes (Set) ponlos todos juntos en un directorio y ejecuta:

migasfree-upload -d <midirectorio>

Para subir paquetes al servidor es necesario utilizar un usuario que tenga permisos de lectura/escritura en la tabla de almacenes y paquetes. Por defecto el usuario packager y el usuario admin los tienen.

Para no tener que introducir cada vez que subas un paquete al servidor el usuario, su contaseña y/o la versión con la que trabajas, puedes asignar los ajustes indicados en la sección [Packager] de Ajustes del cliente migasfree.

Almacenes

Un almacén es un ubicación o ruta del servidor donde se colocan los paquetes y/o conjuntos de paquetes subidos al servidor. No es más que un directorio colgando de la ruta /var/migasfree/repo/<VERSION>/STORES, y que se utiliza para tener organizados los paquetes. También es accesible desde un explorador web accediendo a la ruta:

http://tuservidor/repo/<VERSION>/STORES.

Lo anterioriormente expuesto corresponde al lugar donde se almacenan los archivos del paquete, pero además hay una parte lógica que es necesaria llevar en la base de datos de migasfree. Es lo que denominamos registros de “Almacén”.

Cuando se utiliza el comando migasfree-upload y se indica una ubicación inexistente, el servidor automáticamente creará el registro lógico en la base de datos y creará la carpeta en el sistema de archivos.

Campos de Almacén

  • Nombre: Denomina al almacén. Corresponde al nombre de la carpeta en el sistema de archivos.
  • Versión. Indica la versión migasfree a la que pertenece el almacén.

Paquetes

Cuando subes un paquete o un conjunto de paquetes al servidor, además de copiarse en el almacén o ubicación indicada, se crea un registro lógico en la base de datos. Estos registros nos servirán para asignarlos posteriormente en los Repositorios que vayamos creando.

Campos de Paquete

  • Nombre: Es el nombre del fichero del paquete.
  • Versión: Indica la versión migasfree a la que pertenece el paquete.
  • Almacén: Especifica la ubicación donde está situado el paquete.

Acciones de Paquete

A la derecha del nombre del paquete, en la lista de paquetes, hay un desplegable con las siguientes acciones:

  • Información del paquete. Permite ver los metadatos del paquete.
  • Descargar. Permite almacenar el paquete seleccionado en tu equipo.

Si necesitas borrar uno o varios paquetes, selecciónalos y en el desplegable Acción elige Eliminar Paquetes/conjuntos seleccionados y después pulsa en el botón ir.

  • Eliminar Paquetes/conjuntos seleccionados. Permite borrar el registro del Paquete. A medida que vayas haciendo cambios en el software, irás teniendo distintas versiones del mismo paquete. Generalmente te interesará trabajar sólo con la última versión. Si quieres que sólo te aparezca ésta a la hora de asignarlo a los Repositorios, puedes borrar los registros de Paquetes antiguos. Borrar el registro no borrará el archivo del paquete en ningún caso y simplificarás la selección de paquetes.

Paquetes huérfanos

Un paquete huérfano es un paquete que no está asignado a ningún Repositorio. Cuando un paquete es subido al servidor, o cuando lo quitas de un repositorio y no está en ningún otro repositorio se convierte en un paquete huérfano. Existe una comprobación de Alerta que te avisará de cuáles son estos paquetes.

Información de los paquetes

Si accedes a Liberación-Información de paquetes verás que te aparecen dos carpetas:

  • STORES. Muestra ésta carpeta, en donde podrás navegar hasta un determinado paquete que hayas subido previamente.
  • REPOSITORIES Muestra los Repositorios físicos (en el sistema de archivos) que se hayan creado, y que son los que en última instancia verán los clientes. En realidad, los paquetes que veas en REPOSITORIES no son más que enlaces simbólicos a los paquetes ubicados en STORES.

Si quieres ver los metadatos de un determinado paquete simplemente haz click en él.

Repositorios

Me gusta la definición: migasfree es simplemente un gestor de repositorios de paquetes. En realidad es básicamente esto. De hecho, así es como empezó este proyecto, y a partir de aquí ha ido creciendo hasta convertirse en lo que es hoy en día, un gestor de sistemas.

A todos los efectos, y desde el punto de vista del cliente, un repositorio en migasfree es un repositorio de paquetes estándar como los que puedas encontrar en cualquier Distribución. Migasfree permite crear muy fácilmente estos repositorios y asignarlos a los equipos en función de sus atributos a partir de una fecha determinada.

Campos de Repositorio

  • Nombre: Denomina al repositorio.

    Nota

    En AZLinux solemos incorporar en el nombre del repositorio el número de tarea de redmine al que hace referencia el cambio de software que queremos liberar.

  • Versión: Especifica la versión en la que estará disponible el repositorio.

  • Habilitado: Activa o desactiva el repositorio.

  • Comentario: Campo de texto que sirve para registrar aclaraciones sobre el repositorio. Es muy conveniente que registres las modificaciones que vayas haciendo a los repositorios en este campo, indicando quién, cuándo y qué se ha modificado.

    Un ejemplo de como lo hacemos en AZLinux sería:

    [alberto@2013-03-09] Añadido paquete azl-firefox-12.0-3_all.deb
    
    [alberto@2013-04-10] Añadido paquete azl-firefox-12.0-4_all.deb
    
    [eduardo@2013-05-10] Detectado problemas en algunos clientes. Desactivo
        el repositorio hasta diagnosticar y encontrar solución.
    
  • Fecha: A partir de la cual estará disponible el repositorio en los clientes.

  • Calendario: Especifica una programación del repositorio basada en calendario. En el siguiente apartado tienes más información.

  • Packages

    • Paquetes: En este campo se seleccionan los paquetes y/o conjuntos de paquetes que se incluirán en el repositorio.

      Que un paquete esté incluido en un repositorio y el repositorio accesible desde el cliente, no implica que se instale el paquete. Los sistemas de paquetería sólo actualizan aquellos paquetes que ya estuvieran instalados en el sistema.

      Cada vez que hay una modificación de este campo y se pulsa el botón Guardar se generarán los metadatos del repositorio. Dependiendo de la cantidad de paquetes que se tengan que procesar, el tiempo para realizar este proceso puede ser largo. En los casos en los que se asigne un conjunto de paquetes donde se incluyan todos los paquetes de un DVD p.e. puede llegar a ser del orden de decenas de minutos.

      Nota

      Fíjate que aparecen sólo los paquetes (los subidos individualmente) más los conjuntos de paquetes a la hora de seleccionarlos en los repositorios. Los paquetes incluidos dentro de los conjuntos de paquetes no pueden asignarse individualmente. Esto es así para simplificar y hacer más sencilla la asignación de paquetes y no perdernos entre los miles que componen una Distribución.

    • Paquetes a instalar: Campo de texto que especifica una lista de paquetes separados por espacios o por retornos de carro. Estos paquetes serán instalados obligatoriamente a los clientes que tengan acceso al repositorio.

      Se puede espeficar sólo el nombre del paquete, o el nombre de paquete mas una versión.

      Este campo se tiene en cuenta al ejecutar los comandos de cliente migasfree --update y migasfree-tags --set

    • Paquetes a desinstalar: Campo de texto que especifica una lista de paquetes separados por espacios o por retornos de carro que serán desinstalados obligatorimente en los clientes.

      Este campo se tiene en cuenta al ejecutar los comandos de cliente migasfree --update y migasfree-tags --set

  • Default.

    • Default preinclude packages: Campo de texto que especifica una lista de paquetes separados por espacios o por retornos de carro. Este campo sirve para instalar paquetes que configuran repositorios externos a migasfree. Un ejemplo de este tipo de paquetes lo tienes en el paquete vx-repo-openshot.

      La razón de la existencia de este campo, es que después de instalar el repositorio externo, es necesario obtener de nuevo los metadatos de los repositorios (apt-get update), a fin de que el cliente tenga acceso inmediatamente a los paquetes contenidos en el repositorio externo.

      Estos paquetes serán instalados a los clientes que tengan acceso al repositorio al ejecutar el comando migasfree-tags --set.

    • Default include packages: Campo de texto que especifica una lista de paquetes separados por espacios o por retornos de carro. Estos paquetes serán instalados a los clientes que tengan acceso al repositorio al ejecutar el comando migasfree-tags --set.

    • Default exclude packages: Campo de texto que especifica una lista de paquetes separados por espacios o por retornos de carro que serán desinstalados en los clientes que tengan acceso al repositorio al ejecutar el comando migasfree-tags --set.

  • Attributes.

    • Atributos: Aquellos clientes que tengan un atributo que coincida con los asignados en este campo tendrán accesible el repositorio (a menos que otro atributo lo excluya).

    • Excludes: Sirve para excluir Atributos de la lista de Atributos anterior.

      Por ejemplo, si quieres liberar un paquete a toda la subred 192.168.92.0 menos al equipo PC13098, puedes hacerlo asignando:

      • Atributos: NET-192.168.92.0/24
      • Excludes:HST-PC13098

Calendarios

Los calendarios te permiten programar sistemáticamente liberaciones en el tiempo para unos determinados atributos previamente establecidos, partiendo de la fecha del Repositorio.

Por ejemplo, en AZLinux usamos distintos calendarios (LENTO, NORMAL, RAPIDO, MUY RAPIDO) según la criticidad del cambio de software que se va a liberar o de su urgencia. En estos calendarios asignamos días de demora para los distintos servicios de nuestra organización.

CALENDARIO LENTO
    a los 0 días:  GRP-EQUIPOS DE TEST.
    a los 5 días:  CTX-SERVICIO DE PERSONAL
    a los 10 días: CTX-GESTION TRIBUTARIA
    a los 15 días: SET-ALL SYSTEMS

CALENDARIO MUY RAPIDO
    a los 0 días: CTX-SERVICIO DE PERSONAL, CTX-GESTION TRIBUTARIA
    a los 2 dias: SET-ALL SYSTEMS

Es conveniente que en la última demora asignes, si procede, el atributo SET-ALL SYSTEMS.

Cuando asignas un calendario a un repositorio, podrás ver la temporalización resultante en la columna línea temporal de Liberación-Repositorios (pulsa en el desplegable que contiene el nombre del calendario).

Asignar un calendario a un repositorio no es obligatorio.

Esta programación de la liberación se utiliza fundamentalmente para conseguir:

  • No aplicar una liberación de golpe a muchos equipos, lo que puede provocar un consumo de tráfico de red intenso (imagina 1000 equipos actualizando libreoffice a la vez).
  • Liberar poco a poco los paquetes y así poder hacer comprobaciones más tranquilamente. Cualquier error en el empaquetado o bug en los fuentes del paquete, puede ser mas manejable si ha afectado a pocos equipos y no a la totalidad.

Un determinado cliente tendrá acceso al repositorio si:

  • Tiene un atributo que coincide con alguno de los asignados en el repositorio y ya se ha cumplido la fecha del repositorio.
  • O existe un atributo coincidente con el calendario cuya fecha de repositorio más demora se ha cumplido.
  • Siempre y cuando un atributo del cliente no coincida con el campo Excludes del repositorio.

Una manera en que puedes ver una estimación de la cantidad de equipos que un calendario va haciendo efectivos los repositorios a lo largo de los días es acceder a Estadísticas-Ordenadores previstos/demora.

Campos de calendario

  • Nombre: Denomina al calendario.

  • Descripcion: Describe el calendario.

  • Demoras: Es un conjunto de días (demoras) a los que se asignan atributos.

    • Demora: Número de días desde la fecha del repositorio a los que los atributos asignados serán efectivos en el repositorio. No se tienen en cuenta ni sábados ni domingos.
    • Atributos: Lista de atributos para una demora.
    • Duración: Número de días en que se completará el despliegue a los equipos asignados a la demora. O dicho de otra forma, si asignamos el atributo SET-ALL SYSTEMS y una duración de 20 días, obtendríamos un incremento diario aproximado del 5% del total de equipos.

Repositorios internos vs externos

LLamamos repositorio interno al repositorio que controla el servidor migasfree.

Un repositorio externo es un repositorio configurado en los clientes y que no apunta al servidor migasfree, Los repositorios que vienen por defecto configurados en las Distribuiciones son un ejemplo. Otro serían los repositorios tipo ppa.

Si quieres tener un mayor control de tus sistemas, mi recomendación es que te bajes todos los paquetes de los repositorios de tu distribución a una fecha y luego los subas como conjunto de paquetes al servidor y crees un repositorio al efecto. A esto, lo denominamos congelar un repositorio.

De esta manera, tendrás congelados a una fecha los repositorios de tu Distribución, y podrás actualizar sólo el software que te interese. Si te decides por este método, obviamente tendrás que empaquetar un código que deshabilite los repositorios externos en los clientes.

Repositorios Internos Repositorios Externos
Requieren mantenimiento ante las actualizaciones de los paquetes No requieren mantenimiento ya que es mantenido por el dueño del repositorio
Mayor control de los sistemas frente a los cambios, siendo tu quién decide qué actualizaciones deben producirse Menor control frente a los cambios
Si el servidor migasfree está en la red local, no produce tráfico internet Genera tráfico internet

Un pequeño script para obtener los paquetes de los repositorios externos (en este caso para ubuntu-12.04) podría ser:

#!/bin/bash

function download(){
  _SERIE_POCKET=$1
  download_repo "$_SERIE_POCKET" "main"
  download_repo "$_SERIE_POCKET" "multiverse"
  download_repo "$_SERIE_POCKET" "restricted"
  download_repo "$_SERIE_POCKET" "universe"
}

function download_repo(){
  _SERVER=http://en.archive.ubuntu.com/ubuntu
  _PKGS=Packages
  _SERIES=$1
  _REPO=$2
  _PATH=`pwd`
  echo "PATH= $_PATH"
  wget $_SERVER/dists/$_SERIES/$_REPO/binary-i386/$_PKGS.bz2
  bzip2 -d $_PKGS.bz2
  _FILES=`grep "^Filename:" $_PKGS| awk '{print $2}'|sort`
  _TARGET=$_SERIES-$_REPO
  echo "$_FILES" > Packages-$_TARGET
  mkdir -p $_TARGET
  cd "$_TARGET"
  for _f in $_FILES
  do
    _file=${_f:6+${#_REPO}}
    _BASE=`basename $_file`
    mkdir -p `dirname $_file`
    echo "Downloading $_SERIES $_f"
    wget -c -t1  $_SERVER/$_f -O $_file
  done
  cd "$_PATH"
  rm $_PKGS
}

download "precise-security"
download "precise-updates"
download "precise-backports"
download "precise"

El proceso de la liberación

Las tareas que debe realizar un liberador son:

  • Controlar que no haya paquetes huérfanos, borrando los paquetes antiguos y creando los repositorios adecuados para los nuevos paquetes.

  • Decidir qué calendario es conveniente aplicar a cada repositorio.

  • Decidir cuando un repositorio ha terminado de liberarse (se ha cumplido toda la línea temporal) qué debe hacerse con sus paquetes.

    En AZLinux mayoritariamente, y para no tener muchos repositorios activos, estos paquetes los asignamos a otro repositorio (ya existente para este fin) que tiene asignado sólo el atributo SET-ALL SYSTEMS. Los repositorios que nos han servido para liberar poco a poco los paquetes son desactivados (no los borramos) para mantener así la historia de lo que se ha ido haciendo.

La actualización de los sistemas

Al fin y al cabo, somos lo que hacemos para cambiar lo que somos.

—Eduardo Galeano

En el capitulo anterior, has aprendido a liberar paquetes desde un servidor migasfre. Pero, para que se produzca el cambio de software, no basta sólo con liberarlo. Los clientes deben poder acceder a los repositorios, bajarse los paquetes e instalarlos.

En este capítulo vas a centrarte en el cliente migasfree para ir conociendo los comandos que tienes a tu disposición.

El proceso de actualización

Ahora creo que es buen momento de aprender qué hace migasfree --update :

  • Envía mensaje de inicio del proceso de actualización al servidor.
  • Envía errores de anteriores ejecuciones. Si los hay, el servidor creará un registro de Error.
  • Recibe las Propiedades definidas en el servidor.
  • Ejecuta dichas Propiedades y los resultados son enviados como Atributos. El servidor crea entonces un registro de Login donde se almacenarán estos Atributos.
  • Recibe el código de las Fallas y los Repositorios a configurar, basándose en los Atributos y la fecha actual. Recibe las impresoras que deben estar instaladas. Además, la lista de paquetes a desinstalar e instalar obligatoriamente, también se reciben en este momento del proceso.
  • Ejecuta y envía el resultado de las Fallas. Si estas se producen, el servidor creará un registro de Falla por cada una de ellas.
  • Configura los Repositorios que el servidor ha dispuesto en función de los Atributos del cliente y de la fecha actual.
  • Actualiza los metadatos de los repositorios configurados en el sistema. Consiste simplemente en obtener el índice de paquetes actualizado de cada repositorio.
  • Desinstala los paquetes obligatorios. Conjunto de paquetes definidos en el campo Paquetes a desinstalar de los Repositorios efectivos.
  • Instala los paquetes obligatorios. Conjunto de paquetes definidos en el campo Paquetes a instalar de los Repositorios efectivos.
  • Actualiza paquetes disponibles. En caso de que en los Ajustes del cliente migasfree Auto_Update_Packages sea False no se producirá esta actualización.
  • Envía al servidor el historial de cambios en el software. Es la diferencia de paquetes instalados en el sistema antes y despues de desisntalar, instalar y actualizar los paquetes.
  • Envía el inventario de software si es el equipo de referencia. Ver en La configuración del sistema migasfree los campos de las Versiones: Actual line computer y Actual line packages.
  • Envía el inventario de hardware periodicamente según MIGASFREE_HW_PERIOD de los Ajustes del servidor migasfree,
  • Envía los errores de ejecución. Si los hay el servidor creará un registro de Error.
  • Se añaden y/o eliminan las impresoras.
  • Por último, envía un mensaje de proceso finalizado. Cuando el servidor recibe este mensaje añade un registro de Actualización en la base de datos que se emplean para hacer diferentes estadísticas.

Puedes ver una simulación de esta sincronización, accediendo al menú desplegable del identificador del ordenador en la aplicación web. Ver Ordenadores

El comando migasfree

La opción del comando migasfree --update es, sin lugar a dudas, la más importante. Su sintaxis es:

migasfree -u
migasfree --update

migasfree -u puede usarse conjuntamente con opción --force-upgrade para forzar la actualización de paquetes a pesar que en el ajuste Auto_Update_Packages esté asignado a False. Consulta el ajuste Auto_Update_Packages de los Ajustes del cliente migasfree

migasfree -u -a
migasfree --update --force-upgrade

Existen otras opciones que pueden hacer más fácil el mantenimiento a los administradores.

En las organizaciones que usan distintos S.O. con sistemas de paquetería diferentes, tanto para buscar, instalar o desinstalar paquetes, los administradores tienen que utilizar los comandos propios del sistema de paquetería. Utilizar las opciones del comando migasfree para realizar estas tareas te permite abstraerte del P.M.S. (no tendrás que estar pensando si estás en un sistema basado en Debian o en un Redhat p.e.):

  • Para buscar un determinado paquete en los repositorios utiliza:

    migasfree -s <texto>
    migasfree --search <texto>
    
  • Para instalar un determinado paquete, usa:

    migasfree -ip <paquete>
    migasfree --install --package=<paquete>
    
  • Para desinstalar un determinado paquete, usa:

    migasfree -rp <paquete>
    migasfree --remove --package=<paquete>
    

Por último, tienes la opción que permite registrar el equipo cliente en el servidor migasfree en caso de que en el registro Version del servidor el campo Autoregistrado esté desmarcado.

migasfree -g
migasfree --register

El comando migasfree-tags

Puedes ver una explicación de este comando y de su sintaxis en el campo Etiqueta de las Propiedades en el capítulo La configuración del sistema migasfree.

El comando migasfree-label

Consulta el ajuste MIGASFREE_HELP_DESK de los Ajustes del servidor migasfree donde se describe este comando.

La Auditoría

Nuestro conocimiento es necesariamente finito, mientras que nuestra ignorancia es necesariamente infinita.

—Karl Raimund Popper

Una vez que liberas los paquetes y que los equipos se van actualizando, llega el momento de que veas, de manera centralizada, toda la información que se ha ido generando a consecuencia del proceso de actualización.

Esto es lo que te vas a encontrar en este capítulo.

Alertas

Muestra en lo que debe actuar el administrador para tener un sistema lo más íntegro posible. Ya lo viste en apartado Comprobaciones del capítulo La configuración del sistema migasfree.

Ordenadores

Accediendo a Datos-Ordenadores, verás la lista de ordenadores que se han registrado en el servidor.

Puedes acceder al hardware de un equipo desde la última columna Producto de la lista de ordenadores.

También puedes acceder a los datos que están relacionados con un equipo determinado, mediante el desplegable que hay a la derecha del identificador del equipo. Así, fácilmente podrías ver la cantidad de errores que ha habido en un equipo, sus fallas, migraciones, actualizaciones, ... Además, en este menú desplegable del ordenador, te vas a encontrar con otras opciones interesantes:

  • Sucesos: Sobre un calendario, desde la fecha de entrada del equipo en el servidor, se muestra la cantidad diaria de actualizaciones, errores, fallas, migraciones y registros de estado. A más cantidad diaria de sucesos, el color es más oscuro.
  • Simular sincronización: Te permite simular lo que entregaría el servidor al cliente cuando éste último ejecuta migasfree -u. De esta manera, y basándonos en el último login del ordenador, puedes ver qué repositorios se configurarían en el cliente, qué paquetes se instalarían o eliminarían o qué fallas se ejecutarían.
  • Hardware: Nos da acceso al hardware del equipo.
  • Etiqueta: Te muestra una etiqueta que puede ser impresa para pegarla en el ordenador.

Campos de Ordenador

  • Nombre: Es el nombre del equipo o el especificado en el ajuste Computer_Name de los Ajustes del cliente migasfree.

  • Versión: La versíon migasfree del ordenador.

  • Fecha de alta: Fecha de alta del ordenador en migasfree.

  • IP: La dirección IP del equipo en el momento de la actualización.

  • Estado: Un ordenador puede tener uno de estos seis estados: Asignado, Reservado, Desconocido, Disponible, En reparación y finalmente Baja.

    Estos estados los clasificamos de la siguiente manera:

    • ALTA: Son todos los ordenadores que no tienen el estado Baja y los dividimos en productivos e improductivos.

      • PRODUCTIVOS: Conjunto de ordenadores en uso. Los diferentes estados dentro de esta categoría son:

        • Asignado. Es el estado por defecto e indica que el ordenador está siendo usado para el propósito propio de tu organización.
        • Reservado. Indica que el ordenador se utiliza para un uso especial, por ejemplo para pruebas.
        • Desconocido. Cualquier otro uso.
      • IMPRODUCTIVOS: Ordenadores que no están siendo utilizados y que podrán utilizarse en el futuro. Dentro de los improductivos encontramos los siguientes estados:

        • Disponible. El ordenador está libre y listo para pasar a un estado productivo inmediatamente.

          Nota

          Cuando un ordenador pasa a estado Disponible, se elimina la asignación de todas sus etiquetas y además, si el CID del ordenador se ha asignado en algún Repositorio, Conjunto de Atributos, Dispositivo Lógico, Definición de Falla y/o Demora de Calendario también será eliminada dicha asignación automáticamente. Esto evita configuraciones inapropiadas derivadas de cambios de equipos (si no se hiciera de esta manera, el uso antiguo que se le haya dado a un ordenador podría influir en su uso futuro).

        • En reparación. El ordenador está siendo reparado.

    • BAJA: Tienen el estado Baja. Se indica con este estado que el ordenador no se va utilizar nunca más debido a rotura, robo, venta o por cualquier otro motivo.

      Nota

      Cuando un ordenador pasa a estado Baja, se elimina la asignación de todas sus etiquetas y además, si el CID del ordenador se ha asignado en algún Repositorio, Conjunto de Atributos, Dispositivo Lógico, Definición de Falla y/o Demora de Calendario también será eliminada dicha asignación automáticamente.

    Puedes consultar más información sobre los CID en las Propiedades específicas.

    Puedes asignar un estado por defecto a los nuevos ordenadores con el ajuste de servidor: MIGASFREE_DEFAULT_COMPUTER_STATUS

    Iconos de estado: asignado, reservado, desconocido, disponible, en reparación y baja.

    figura 11.1. Iconos de estado: asignado, reservado, desconocido, disponible, en reparación y baja.

  • Login: Información del login del usuario.

  • Usuario: Último usuario.

  • Última actualización: Fecha en la que se finalizó por última vez la actualización del cliente migasfree.

  • Tiempo de la última actualización: Tiempo que ha tardado el cliente migasfree en actualizarse.

  • Errores sin comprobar: Muestra el número de errores pendientes de comprobar del ordenador.

  • Fallas sin comprobar: Muestra el número de fallas pendientes de comprobar del ordenador.

  • Fecha última actualización hardware: Fecha en que se envió por última vez el hardware.

  • Producto: Nombre del ordenador incluido en la placa base. Por ejemplo HP ProDesk 600 G1 SFF (C8T89AV)

  • Uuid: Es el identificador único universal de la placa base del equipo.

    Nota

    El cliente de migasfree es el encargado de proporcionar este UUID. En caso de no poder obtenerlo porque el fabricante de la placa base no lo ha asignado o por cualquier otro motivo, el cliente proporciona un UUID basado en la MAC de la primera tarjeta de red que encuentre.

  • Máquina: Indica si es una máquina física o virtual.

  • Procesador: Nombre del microprocesador. Ejemplo: Intel Core i5-4590 3.30GHz

  • RAM: Cantidad de memoria RAM.

  • Almacenamiento: Cantidad de almacenamiento en disco.

  • Discos: Numero de discos.

  • Dirección MAC: Direcciones MAC del ordenador.

  • Inventario de software: Diferencia actual entre el conjunto de paquetes del ordenador de referencia y el ordenador en cuestión. Ver en Versiones los campos de version: Actual line computer y Actual line packages

  • Historial de software: Registro de los paquetes instalados y desinstalados según se van produciendo en el tiempo.

  • Dispositivos lógicos: Impresoras lógicas configuradas en el ordenador.

  • Dispositivo lógico por defecto: Indica el dispositivo lógico por defecto en el sistema.

  • Etiquetas: Lista de Etiquetas asignadas actualmente al ordenador. Para una explicación del funcionamiento de las etiquetas mira los Tipos de Etiquetas.

Usuarios

A medida que el cliente de migasfree va ejecutándose en los equipos, el servidor va añadiendo los usuarios que se han autenticado en el entorno gráfico.

Puedes ver la lista de usuarios en Datos-Usuarios

Campos de Usuario

  • Nombre: Nombre de la cuenta de usuario para acceder al equipo.
  • Nombre Completo: Nombre y apellidos del usuario.

Logins

Cuando se ejecuta migasfree --update se crea un registro de Login en el servidor.

Nota

Migasfree sólo lleva por cada equipo el último login.

Campos de Login

  • Fecha: Fecha y hora de la ejecución de migasfree --update en el equipo
  • Usuario: Usuario en el entorno gráfico cuando se ejecutó el cliente migasfree.
  • Ordenador: El equipo al que hace referencia el login.
  • Atributos: Lista de Atributos que se han obtenido como resultado de ejecutar la Propiedades en el ordenador cliente en el proceso de actualización.

Errores

Conforme se vayan produciendo errores en los clientes, irán llegando al servidor y serán mostrados en Alertas.

Campos de error

  • Ordenador: Equipo en el que se ha producido el error.
  • Fecha: Fecha y hora en que se produjo el error.
  • Error: Mensaje que describe el error. Generalmente corresponde a la salida de error del front-end del P.M.S.
  • Comprobado: Campo que se marcará manualmente cuando se ha comprobado y solucionado el error.
  • Versión: Es la versión que tenía el equipo cuando se produjo el error.

Fallas

Ya viste el concepto de Fallas y cómo se pueden programar en el capítulo La configuración del sistema migasfree, así que no me repitiré.

Lo mismo que ocurre con los errores, conforme las fallas se vayan detectando en los clientes, irán apareciendo en el Alertas.

Campos de falla

  • Ordenador: Equipo en el que se ha producido.
  • Definición de falla:: Tipo de Falla. Hace referencia al código que ha generado la falla.
  • Fecha: Fecha y hora en que se produjo la falla.
  • Texto: Mensaje que describe la falla. Corresponde a la salida standard del codigo de la Definición de la falla.
  • Comprobado: Campo que se marcará manualmente cuando se ha comprobado y solucionado la falla.
  • Versión: Es la versión que tenía el equipo cuando se produjo la falla.

Atributos

A medida que se vayan actualizando los equipos, el servidor migasfree irá añadiendo los atributos enviados por los clientes con objeto de que puedas liberar paquetes en función de estos atributos.

Campos de Atributo

  • Propiedad de atributo: Propiedad a la que hace referencia el atributo.
  • Valor: Identifica el atributo.
  • Descripción: Describe el atributo.

Una explicación del funcionamiento de los atributos la puedes obtener en el apartado Propiedades de La configuración del sistema migasfree.

Etiquetas

Manualmente podrás añadir etiquetas y asignarlas a ordenadores para liberar software en función de éstas.

El funcionamiento de las etiquetas ya lo hemos visto en los Tipos de Etiquetas.

Campos de Etiqueta

  • Propiedad: Hace referencia al tipo de etiqueta.
  • Valor: Identifica a la etiqueta.
  • Descripción: Describe la etiqueta.
  • Ordenadores: Permite asignar ordenadores a la etiqueta.

Migraciones

Como hemos visto al principio de este capítulo, los Ordenadores se identifican inequívocamente por el UUID de la placa base y, además, mantienen un campo Versión que se corresponde con el ajuste del mismo nombre de los Ajustes del cliente migasfree. Ahora bien, en el momento en que el servidor detecta que no corresponde la versión que tiene el ordenador en la base de datos del servidor con la que recibe del equipo, el servidor actualiza el registro Ordenador y además añade un registro de Migración. De esta manera se consigue llevar un histórico de migraciones.

Campos de Migración

  • Ordenador: Equipo que se ha migrado de versión migasfree.
  • Versión: Version migasfree.
  • Fecha: Fecha y hora en que se ha detectado el cambio de versión.

Notificaciones

Ante hechos relevantes en el sistema, el servidor genera notificaciones para alertar a los administradores.

Campos de Notificación

  • Fecha: Fecha y hora en que se ha generado la notificación.
  • Notificación: Describe el hecho.
  • Comprobado: Campo que se marcará manualmente cuando se ha recibido la notificación.

Consultas

Aquí podrás ejecutar las Consultas disponibles.

Puedes añadir nuevas consultas o modificar las predeterminadas accediendo a Configuración-Consultas. Una pequeña explicación de cómo se programan la puedes encontrar en el apartado Consultas de La configuración del sistema migasfree.

Estadísticas

Es una lista con estadísticas predefinidas.

  • ordenadores actualizados/hora: Gráfica de barras que indica la cantidad (única) de equipos que han completado la actualización de migasfree por hora.
  • ordenadores actualizados/día: Gráfica de barras que indica la cantidad (única) de equipos que han completado la actualización de migasfree por día.
  • ordenadores actualizados/mes: Gráfica de barras que indica la cantidad (única) de equipos que han completado la actualización de migasfree por mes.
  • ordenadores previstos/demora: Gráfica de líneas que representa una previsión, basada en los Atributos del último Login de cada ordenador, de los equipos que accederían a un repositorio hipotético según Calendarios.
  • ordenadores/versión: Gráfica de tarta donde se aprecia la cantidad de ordenadores por versión.

El proceso de las comprobaciones

Al igual que como liberador debes realizar un conjunto de tareas para mantener el sistema en codiciones, continuamente te llegarán errores, fallas, etc. que debes comprobar y atender. Esta es la misión para un usuario checker.

¿Qué tareas tienes que hacer como comprobador del sistema?. Sencillo. Mantén las Alertas a 0. El sistema te irá avisando qué debes atender.

  • Comprueba periódicamente la existencia de Errores. Soluciónalos y márcalos como comprobados.
  • Comprueba periódicamente la existencia de Fallas. Soluciónalas y márcalas como comprobadas.
  • Comprueba periódicamente la existencia de Notificaciones. Una vez leídas, márcalas como comprobadas.

Otros procesos

Reemplazo de ordenadores

Este proceso permite intercambiar el estado, etiquetas, dispositivos y atributos CID asignados en el sistema entre dos ordenadores.

Imagina que un usuario te reporta un fallo de hardware y decides darle un equipo que tienes en estado disponible para que continúe su trabajo. En este caso ve al menú Datos - Reemplazo de ordenadores e introduce los dos ordenadores. Una vez pulses en el botón Reemplazar el ordenador que estaba disponible tendrá ahora el estado, etiquetas e impresoras que tenía el ordenador estropeado. Finalmente puedes editar el ordenador que ha fallado y cambiarle el estado a en reparación o a baja.

Dispositivos

La lógica es clara y sencilla: la propaganda es a la democracia lo que la cachiporra al estado totalitario.

—Noam Chomsky

Migasfree puede ser utizado también para instalar de manera centralizada las impresoras, ahorrándote un tiempo más que considerable respecto a una instalación manual en cada ordenador (aunque inicialmente se requiera introducir en el sistema los distintos modelos de impresoras que vayas a utilizar).

Además, por ser un sistema centralizado, te va a permitir conocer el parque de impresoras de tu organización.

En migasfree las impresoras son asignadas a atributos, por lo que puedes especificar que una determinada impresora sea instalada en todos los ordenadores que tengan, por ejemplo, la etiqueta AUL-AULA_DE_FORMACION aunque, obviamente, lo más común será asignarlas a un ordenador concreto utilizando su CID (Computer ID).

Nota

La instalación de las impresoras se producirá cuando un cliente haga``migasfree -u`` ya que el servidor indica en ese momento al cliente qué impresoras debe tener instaladas. El cliente es el que con esa información instala, desinstala o actualiza las impresoras.

Pasos para la configuración de las impresoras:

  • Añadir los fabricantes.
  • Definir las diferentes prestaciones que vas a utilizar.
  • Añadir los modelos y crear un paquete por cada modelo de impresora.
  • Añadir cada dispositivo físico, especificando cómo está conectado y qué dispositivos lógicos deben instalarse a cada atributo.

Fabricantes

Campos del Fabricante

  • Nombre: Nombre del fabricante de la impresora.

Prestaciones

Representa una determina configuración por defecto del controlador del dispositivo.

Esto sirve para facilitar a los usuarios la impresión, ya que por cada impresora fisica puedes querer instalarle diferentes configuraciones por defecto. Por ejemplo, puedes querer configurar estas 3 impresoras lógicas:

  • Impresión en negro, doble cara y calidad borrador
  • Impresión en color y en 1 cara
  • Impresión usando la bandeja multipropósito

Así que en este caso te interesaría crear las siguiente prestaciones:

  • BORRADOR
  • COLOR
  • MULTIPROPOSITO.

Campos de la Prestación

  • Nombre: Nombre la prestación.

Modelos

Por cada modelo de impresora se especifican las distintas conexiones y los distintos controladores que estarán admitidos.

Campos del modelo de dispositivo

  • Nombre: Nombre del modelo de la impresora.

  • Fabricante: Asigna el Fabricante del modelo de impresora.

  • Tipo: Actualmente sólo se utiliza ‘PRINTER’

  • Conexiones: Especifica las distintas maneras en las que puedes conectar físicamente la impresora.

  • Controladores: Por cada version y prestación tendrás que definir que archivo ppd debe ser utilizado.

    Un archivo PPD (PostScript Printer Description) describe las características disponibles para la impresora. Dicho archivo puede ser obtenido directamente del fabricante o en su defecto de openprinting.org

    • Versión: Version migasfree
    • Prestación: Prestación.
    • Nombre: Ruta completa donde esta ubicado el archivo .ppd en los ordenadores.
    • Paquetes a instalar: En este campo deberás poner el nombre del paquete que contiene el archivo ppd que vas a utilizar. Si es necesario algún otro paquete, puedes añadirlo separándolo con un espacio.

Dispositivos

Representa a cada una de las distintas impresoras físicas.

Campos del dispositivo

  • Nombre: Identificador único de la impresora física (en AZLinux usamos el nº de inventario que lleva impreso la etiqueta que pegamos en cada impresora).

  • Modelo: Modelo de la impresora

  • Conexion: Como se conecta físicamente la impresora.

  • Dispositivos lógicos:

    • Prestación: Prestación.
    • Nombre: Nombre alternativo a la prestación. Es opcional.
    • Atributos: Atributos a los que será instalado el dispositivo lógico.

Nota

La forma más eficaz de añadir los dispositivos es asignar el nombre, modelo y conexión y entonces pulsar en grabar y continuar editando. De esta manera se añadirán automáticamente los dispositivos lógicos asociados a ese modelo de impresora y podrán ser asignados entonces los atributos.

Reemplazo de dispositivos

Imagina p.e. que tienes una impresora de red instalada en 30 ordenadores y que va a ser sustituida por otro modelo de impresora. En este caso, lo único que tendrás que hacer es un Reemplazo de dispositivos indicando el dispositivo antiguo y el nuevo. Solamente eso.

Si has leído y entendido bien este último párrafo, deberías ya comprender cómo migasfree puede ahorrarte mucho tiempo en todo lo relacionado a la instalación de impresoras.

Ejemplo EPSON AL-M300

Para afianzar los conceptos vamos a crear el modelo EPSON AL-M300 y a instalar dos impresoras físicas con estas tres prestaciones:

  • BN: Impresión en negro.
  • MP: Bandeja multipropósito.
  • DUPLEX: Doble cara

Para ello descárgate los ejemplos de este libro donde encontrarás una carpeta llamada acme-epson-al-m300

$ wget https://github.com/migasfree/fun-with-migasfree-examples/archive/4.13.zip
$ unzip 4.13.zip
$ cd fun-with-migasfree-examples-4.13/acme-epson-al-m300

Observa que en el paquete existen tres archivos .ppd que se corresponden con las prestaciones comentadas.

$ ls  usr/share/ppd/acme
Epson_AL_M300-duplex-ps-es.ppd
Epson_AL_M300-MP-ps-es.ppd
Epson_AL_M300-ps-es.ppd

Una manera simple de obtener estos archivos ppd, es la siguiente:

  1. Obtén el ppd del propio fabricante de la impresora o en su defecto de openprinting.org
  2. Instala una impresora en tu sistema con el archivo ppd obtenido.
  3. Modifica las propiedades de la impresora desde el interface gráfico de usuario de acuerdo a la prestación que va a proporcionarte (ejecuta p.e. system-config-printer en un terminal).
  4. En el directorio /etc/cups/ppd/ tendrás el ppd con las opciones que has elegido para tu prestación, cópialo con un nombre relacionado con esa prestación.

Crea ahora el paquete (debes tener el paquete devscripts y debhelper previamente instalados).

$ /usr/bin/debuild --no-tgz-check -us -uc

Súbelo al servidor

# migasfree-upload -f ../acme-epson-al-m300_1.0-1_all.deb

y libéralo creando un nuevo repositorio en el servidor llamado p.e. impresoras. Asígnale el paquete acme-epson-al-m300_1.0-1_all.deb y en atributos asigna ALL-SYSTEMS.

Ve a Dispositivos - Fabricantes y añade EPSON.

En Dispositivos -Pestaciones añade BN MP y DUPLEX

Añade un Dispositivo - Modelos de la siguiente manera:

  • Nombre: AL-M300
  • Fabricante: EPSON
  • Tipo: PRINTER
  • Conexiones: USB y TCP. (Aquí especificamos las distintas conexiones que tiene la impresora)

Pulsa en Grabar y continuar editando.

Ahora añade los controladores:

  • Controlador 1:

    • Version: debian-8.6. (u otra)
    • Prestacion: BN
    • Nombre: /usr/share/ppd/acme/Epson_AL_M300-ps-es.ppd
    • Paquetes a instalar: acme-epson-al-m300
  • Controlador 2:

    • Version: debian-8.6. (u otra)
    • Prestacion: MP
    • Nombre: /usr/share/ppd/acme/Epson_AL_M300-MP-ps-es.ppd
    • Paquetes a instalar: acme-epson-al-m300
  • Controlador 3:

    • Version: debian-8.6. (u otra)
    • Prestacion: DUPLEX
    • Nombre: /usr/share/ppd/acme/Epson_AL_M300-duplex-ps-es.ppd
    • Paquetes a instalar: acme-epson-al-m300

Hasta aquí hemos definido los modelos de impresoras. Ahora ya estamos en disposición de añadir las impresoras a los equipos.

Vamos a añadir 2 impresoras físicas de ejemplo al ordenador CID-1.

Impresora Física 1 conectada por TCP

Ve a Dispositivos - Dispositivos y añade la primera impresora:

  • Nombre: Impresora1
  • Modelo: AL-M300
  • Conexion: Elije TCP
  • IP: 10.0.2.250
  • Pulsa ahora en Grabar y continuar editando y aparecerán los tres dispositivos lógicos correspondientes. Deja el Nombre en blanco. Añade a cada uno de los dispositivos lógicos el atributo CID-1 (o el atributo que quieras).

Impresora Física 2 conectada por USB

Ve a Dispositivos - Dispositivos y añade la segunda impresora:

  • Nombre: Impresora2
  • Modelo: AL-M300
  • Conexion: Elije ahora USB.
  • Pulsa ahora en Grabar y continuar editando y aparecerán los tres dispositivos lógicos correspondientes. Deja el Nombre en blanco. Añade a cada uno de los dispositivos lógicos el atributo CID-1 (o el atributo que quieras).

Y con esto, al hacer migasfree -u en cada ordenador se instalarán las impresoras lógicas según hemos especificado.

Para finalizar, conviene mencionar que cualquier cambio que se realice en el dispositivo (la IP, el tipo de conexión, o el nombre p.e.) será modificado automáticamente en los ordenadores cuando estos se actualicen.

Ejemplos prácticos

La imaginación tiene sobre nosotros mucho más imperio que la realidad.

—Jean de la Fontaine

A continuación, te voy a mostrar una selección representativa de peticiones e incidencias de la Gestión de Configuración Software, junto con una solución, la que creo más acertada a día de hoy, porque es obvio que no existe una única solución a los problemas.

El objetivo de estos ejemplos (basados en casos reales del proyecto AZLinux) es afianzar los conceptos que hemos ido viendo durante los capítulos anteriores. De esta manera, podrás hacerte una mejor idea de toda la potencia de trabajar con la paquetería estándar de tu distibución Linux junto con migasfree, en el proceso de la GCS.

El código fuente de los paquetes utilizados en este capítulo está disponible en http://github.com/migasfree/fun-with-migasfree-examples

Descárgatelo si aún no lo has hecho:

$ wget https://github.com/migasfree/fun-with-migasfree-examples/archive/4.13.zip
$ unzip 4.13.zip
$ cd fun-with-migasfree-examples-4.13

Deshabilitar montaje de unidades USB y CDROM

a) Petición de cambio

Todos los ordenadores de la NET-192.168.100.0/24, excepto el ordenador CID-3245, no deberían montar unidades USB por motivos de seguridad. Tampoco deben montar unidades USB aquellos usuarios que pertenezcan al grupo de LDAP GRP-NO-MEDIA, ni tampoco el ordenador CID-1291.

b) Aceptación de la petición

Realizaremos lo que denominamos una directiva de seguridad basada en un conjunto de atributos, ya que es muy probable que, con el tiempo, esta medida de seguridad puede ir cambiando sus reglas asignándose o excluyéndose otros atributos.

c) Cambio

Después de buscar en Internet la forma de bloquear el montaje de dispositivos USB, y de varias pruebas, llegamos a la conclusión que realizar un cambio de permisos en el directorio /media es suficiente para alcanzar nuestro objetivo.

ECS: acme-media-disable (nuevo)

Decidimos crear el paquete acme-media-disable que bloqueará el montaje en /media cuando esté instalado este paquete.

Observa como en la post-instalación del paquete se restringe los permisos a /media, y como en la post-desintalación dejamos los permisos por defecto.

Crea el paquete acme-media-disable (debes tener previamente instalados el paquete devscripts y debhelper)

$ cd acme-media-disable
$ /usr/bin/debuild --no-tgz-check -us -uc
$ cd ..

y súbelo al servidor.

# migasfree-upload -f acme-media-disable_1.0-1_all.deb

d) Liberación

Creamos el conjunto de atributos SET-NO-MEDIA:

ATRIBUTOS:

NET-192.168.100.0/24

GRP-NO-MEDIA

CID-1291

EXCLUYE:

CID-3245

Creamos un repositorio MEDIA-DISABLE:

Asignamos el paquete: acme-media-disable_1.0-1_all.deb

Ponemos en paquetes a instalar: acme-media-disable

asignamos en atributos: SET-NO-MEDIA

Ahora es necesario crear otro repositorio, MEDIA-ENABLE, para forzar la desinstalación del paquete cuando el ordenador ya no pertenezca al conjunto de atributos SET-NO-MEDIA:

Ponemos en paquetes a desinstalar: acme-media-disable

asignamos en atributos: ALL-SYSTEMS

asignamos en excluidos: SET-NO-MEDIA

Para añadir o exluir atributos en el futuro, simplemente bastará con modificar el conjunto de atributos SET-NO-MEDIA.

Nota

Este es un ejemplo de cómo implementar una “directiva de seguridad””. En versiones futuras de migasfree se incluirá un modelo de “directivas” para no tener que añadir ese segundo repositorio que fuerza la desinstalación de los paquetes.

Cierre de sesión gráfica en ordenadores HP ProDesk 600 G2 SFF

a) Petición de cambio

Aleatoriamente y de repente, se cierra la sesión gráfica de usuario en los equipos HP ProDesk 600 G2 SFF

Frecuencia aproximada del error: de 0 a 3 cierres de sesión por día.

Se han recibido incidencias de este tipo sólo en algunos equipos de este modelo de ordenador.

b) Aceptación

Se comprueba, observando el fichero /var/log/syslog, que el error en estos equipos es provocado por la tarjeta gráfica intel-hd-graphics-530, que se identifica como PCI-8086:1912 incluida en los ordenadores HP ProDesk 600 G2 SFF.

c) Cambio

Después de buscar en Internet información relativa a este error, y de probar distintas soluciones, llegamos a comprobar que modificando el método de aceleración de la tarjeta gráfica, siguiendo un workaround propuesto en Internet, el error ya no se reproduce.

ECS: acme-intel-hd-graphics-530 (nuevo)

Creamos un paquete acme-intel-hd-graphics-530 que, simplemente, modifica el método de acelaración añadiendo en el sistema el fichero /usr/share/X11/xorg.conf.d/20-intel-hd-graphics-530.conf con el siguiente contenido:

Section "Device"
 Identifier "Card0"
 Driver "Intel"
 Option "AccelMethod" "uxa"
EndSection

y lo subimos al servidor.

d) Liberación

Dado que tenemos en producción unos 120 equipos con la tarjeta gráfica PCI-8086:1912 desplegaremos este paquete poco a poco (sólo a los ordenadores que tengan dicho atributo) ya que no sabemos, a priori, qué otros efectos no deseados puede provocar el cambio de acelaración gráfica.

Creamos un calendario únicamente para este despliege:

Calendario intel-hd-graphics-530

Demora: 0

Atributos: PCI-8086:1912

Duración: 20 días

Creamos el repositorio intel-hd-graphics-530

Ponemos en paquetes a instalar: acme-intel-hd-graphics-530

Asignamos en calendario: intel-hd-graphics-530

Nota

De esta manera se actualizarán aproximadamente 120/20 = 6 ordenadores por día, lo que puede ser manejable por el servicio telefónico de Asistencia a Usuarios en caso de producirse efectos no deseados.

Etiqueta MEDIA-DISABLE en migasfree

a) Petición de cambio

Crear una etiqueta en migasfree para desplegar software en los equipos que no deben montar unidades USB y CDROM.

b) Aceptación

Se rechaza la petición, debido a que ya disponemos del conjunto de atributos SET-MEDIA-DISABLE.

Nota

Los conjuntos de atributos son mucho más versátiles que una simple etiqueta asignada a un ordenador. La etiqueta está pensada para que un usuario puede asignarla desde su ordenador mediente el comando migasfree-tags. En cambio, los conjuntos de atributos son definidos en el servidor por un administrador mediante la asignación y exclusión de atributos y/o otros conjuntos de atributos.

Instalación de software en AULA-3

a) Petición de cambio

Se va a proceder a impartir cursos sobre gimp en el AULA-3. Es neceserario que este software esté instalado esta misma tarde, a las 16:00 h, en todos los ordenadores de dicha aula.

b) Aceptación

Existe un repositorio per-aula-3 para añadir software a los equipos de dicha aula. Como atributos asignados, este repositorio tiene el conjunto de atributos SET-AULA-3

Conjunto de atributos SET-AULA-3:

CID-3578

CID-3579

CID-3580

CID-3581

CID-3582

CID-3583

CID-3584

CID-3585

Repositorio per-aula-3:

paquetes a instalar:

atributos: SET-AULA-3

c) Cambio

En este caso no hay implicado ningún ECS que tenga que ser modificado.

d) Liberación

Editamos el repositorio per-aula-3

añadimos a los paquetes a instalar : gimp

Nota

Cuando los equipos del AULA-3 inicien la próxima sesión gráfica, automáticamente se les instalará el software solicitado. Observa que no es necesario desplazarnos al aula, acceder por control remoto, ni tan siquiera encender los equipos. El software se instalará cuando, plácidamente, esté echando mi siesta después de comer.