Primeros pasos

Probando migasfree

La unidad es la variedad, y la variedad en la unidad es la ley suprema del universo.

—Isaac Newton.

Si bien puedes instalar el servidor migasfree en distintas distribuciones, en este capítulo voy a explicarte como instalarlo sobre Debian 8 Jessie.

El objetivo es que dispongas rápidamente de un servidor y un cliente migasfree totalmente funcional, por eso no me voy a extender en explicaciones.

Si decides usar otra Distribución GNU/linux de la recomendada, tendrás que conseguir los paquetes apropiados. Puedes generar los paquetes como se indica en Empaquetando migasfree. Ten en cuenta que las instrucciones de este capítulo pueden variar según la distribución que elijas.

Nota

Usa una máquina virtual de virtualbox realizando la instalación mínima por red de Debian 8 para ver el funcionamiento de migasfree y familiarizarte con él antes de poner a Migasfree en producción

Instalando el servidor

Como root, ejecuta en un terminal:

# wget -O - http://migasfree.org/pub/install-server | bash

Nota

Al instalar el paquete del servidor migasfree se añade al sistema el fichero /etc/apache2/conf.d/migasfree.conf. Este fichero contiene la configuración del servidor web.

Nota

Al instalar el paquete del servidor migasfree se crea el usuario migasfree en Postgresql con password migasfree y se añade al fichero /etc/postgresql/9.1/main/pg_hba.conf la línea 'local all migasfree password' para permitir al usuario migasfree autenticarse mediante password. Recuerda que para poner en producción el servidor deberás cambiar la contraseña de este usuario tal y como se indica en Migasfree en producción.

Nota

Otra forma alternativa de instalar un servidor migasfree, y que te recomiendo encarecidamente que pruebes, es utilizando contenedores docker. Accede a https://github.com/migasfree/migasfree-docker y sigue las instrucciones. En AZLinux llevamos tiempo utilizando estos contenedores y estamos muy satisfechos.

Comprobando el servidor

En un navegador web accede a la dirección del servidor. Si todo ha ido bien, verás la figura 5.1.

Acceso al servidor migasfree.

figura 5.1. Acceso al servidor migasfree.

Pulsa en iniciar sesión y haz login con el nombre de usuario “admin” y password “admin”. Verás algo parecido a la figura 5.2. Observa como arriba a la derecha pone alertas 0. Esto nos indica que todo está bien.

Estado del servidor con 0 alertas.

figura 5.2. Estado del servidor con 0 alertas.

Instalando el cliente

Instalando el paquete migasfree-client

Ahora instala el cliente migasfree sobre la misma máquina donde has instalado el servidor. Para ello, actualiza la lista de paquetes e instala el paquete migasfree-client:

# wget -O - http://migasfree.org/pub/install-client | bash

Registrando el cliente

Ejecuta el comando:

# migasfree -u

te devolverá una salida parecida a esta:

root@debian:/home/tux# migasfree -u
Sesión gráfica no detectada
Versión de migasfree client: 4.13

Opciones de ejecución: /etc/migasfree.conf
    Versión: debian-8.7
    Servidor: localhost
    Actualizar paquetes automáticamente: True
    Proxy: None
    Certificado SSL: None
    Proxy caché de paquetes: None
    Depuración: False
    Nombre del ordenador: debian
    GUI detallado: True
    PMS: apt-get

    Usuario gráfico: root

Autoregistrando ordenador...
¡Clave /var/migasfree-client/keys/localhost/debian-8.7.pri creada!
¡Clave /var/migasfree-client/keys/localhost/server.pub creada!
¡Clave /var/migasfree-client/keys/localhost/repositories.pub creada!

******************* Conectando al servidor migasfree... ********************
***************************** Correcto

************************ Obteniendo propiedades... *************************
***************************** Correcto

************************** Evaluando atributos... **************************
SET: ALL SYSTEMS

PCI: 8086:1237~Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) ,8086:7000~ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] ,8086:7111~IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) ,80ee:beef~VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter ,8086:100e~Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) ,80ee:cafe~System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service ,106b:003f~USB controller: Apple Inc. KeyLargo/Intrepid USB ,8086:7113~Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08) ,8086:265c~USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller ,8086:2829~SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 02) ,

IP: 10.0.2.15

HST: debian

NET: 10.0.2.0/24

PLT: Linux

USR: root~root

VER: debian-8.7


************************** Subiendo atributos... ***************************
***************************** Correcto

*************************** Ejecutando fallas... ***************************
LOW_HOME_PARTITION_SPACE:
LOW_SYSTEM_PARTITION_SPACE:

**************************** Subiendo fallas... ****************************
***************************** Correcto

************************* Creando repositorios... **************************
***************************** Correcto

************* Obteniendo los metadatos de los repositorios... **************
Ign http://ftp.es.debian.org jessie InRelease
Obj http://ftp.es.debian.org jessie-updates InRelease
Obj http://security.debian.org jessie/updates InRelease
Obj http://ftp.es.debian.org jessie Release.gpg
Obj http://ftp.es.debian.org jessie-updates/main Sources
Obj http://security.debian.org jessie/updates/main Sources
Des:1 http://ftp.es.debian.org jessie-updates/main amd64 Packages/DiffIndex [6.916 B]
Obj http://ftp.es.debian.org jessie Release
Obj http://security.debian.org jessie/updates/main amd64 Packages
Obj http://ftp.es.debian.org jessie/main Sources
Obj http://ftp.es.debian.org jessie/main amd64 Packages
Descargados 6.916 B en 1s (5.169 B/s)
Leyendo lista de paquetes... Hecho
***************************** Correcto

************************ Desinstalando paquetes... *************************
***************************** Correcto

******************* Instalando paquetes obligatorios... ********************
***************************** Correcto

************************* Actualizando paquetes... *************************
DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get -o APT::Get::Purge=true -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -o Debug::pkgProblemResolver=1 --assume-yes --force-yes --auto-remove dist-upgrade
Leyendo lista de paquetes...
Creando árbol de dependencias...
Leyendo la información de estado...
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados.

***************************** Correcto

****************** Subiendo el inventario del software... ******************
***************************** Correcto

*************** Capturando información sobre el hardware... ***************
***************************** Correcto

**************** Enviando información sobre el hardware... ****************
***************************** Correcto

************************* Operaciones completadas **************************

Comprobando el estado del servidor

Comprueba los datos que se han recogido accediendo al servidor con tu navegador web.

  • Fíjate ahora que tienes 2 Alertas (figura 5.3). Pulsa sobre ellas y luego

sobre 2 alertas por comprobar:

  • La primera te notifica que el ordenador CID-1 ha dado de alta la plataforma Linux
  • La segunda notificación te dice que el ordenador CID-1 ha añadido la version debian-x.x
Notificaciones.

figura 5.3. Notificaciones.

  • Accede a Datos - Ordenadores y observa: (figura 5.4)

    • Los datos del ordenador CID-1 (pulsando sobre CID-1)
    • Su login, para ver los atributos que ha enviado el cliente.
    • Su hardware.
    Ordenadores

    figura 5.4. Ordenadores.

    Nota

    CID es un acrónimo de Computer IDentificator. Es un número que el servidor asigna a cada ordenador para identificarlo. Es imposible tener dos ordenadores con el mismo CID.

    Nota

    El símbolo que aparece a la izquierda del CID (el corazón) indica el estado en el que encuentra el ordenador.

¡Enhorabuena! Has instalado un servidor migasfree y has registrado en él tu primer ordenador.

En el siguiente capítulo vas a aprender a hacer el cambio de configuración software al estilo migasfree.

Configurando software al estilo migasfree

No esperes hasta que las condiciones sean perfectas para comenzar, el empezar hace las condiciones perfectas.

—Alan Cohen.

En este capítulo vas a aprender a configurar el servidor migasfree al estilo migasfree.

Quizás no sea el ejemplo más acertado porque vas a configurar sólo un servidor migasfree, pero imagina un escenario donde tienes X centros de trabajo y te interesa tener un servidor migasfree, con la misma configuración en cada centro, para dar servicio a sus clientes. Uno de estos servidores, bien podría ser el que admistrara al resto de servidores.

El objetivo de este capítulo es que veas todo el proceso de la Gestión de la Configuración Software en conjunto.

Al estilo tradicional

Imagina que te llega una petición de cambio para modificar, en todos los centros, el nombre de la organización de los servidores migasfree con el nombre de tu empresa.

Miras la documentación de migasfree y concluyes que tienes que crear el fichero /etc/migasfree-server/settings.py y añadir la siguiente variable:

MIGASFREE_ORGANIZATION = "ACME"

Decides acceder a cada uno de los equipos por ssh, crear el fichero, reiniciar el servidor Apache y olvidarte del tema.

Ahora bien, si estás de vacaciones, ¿podría responder fácilmente a las cuestiones siguientes tu compañero de trabajo?

  • ¿Qué cambios se han realizado en un determinado equipo desde el 1 de enero? ¿Quién los hizo? ¿Y cúando se realizaron todos esos cambios?
  • ¿Qué equipos tienen el cambio propuesto?

Este método es sencillo y rápido, pero difícilmente tu compañero va a poder reponder estas cuestiones de manera eficaz, aunque hayas registrado muy bien tu trabajo. La integridad frente al cambio no está garantizada con este método.

A continuación, te propongo otra forma de realizar los cambios de configuración. Se basa en utilizar el empaquetado para trasladar los cambios a los equipos, conservando la integridad del sistema.

Asumo que tienes un gestor de proyectos, como Redmine, donde vas a registrar las peticiones de cambio (o al menos que hagas como que lo tienes) y que has completado con éxito el capítulo anterior. Todos los comandos de este capítulo los vas a ejecutar como root en el equipo que hayas utilizado en el capítulo anterior.

Tu primer cambio de configuración

El primer cambio sobre un Elemento de Configuración Software (ECS) es el que te llevará más trabajo, porque exige la creación de un paquete.

Petición

Imagina que te llega la siguiente la petición de cambio, que registras y aceptas en el gestor de proyectos:

Gestor de proyectos:

Registro: Sustituir el nombre de la organización My organization de los servidores migasfree por el de ACME

Nombre de la organización.

figura 6.1. Nombre de la organización.

Lo primero que haces es identificar al ECS que afecta, es decir, cuál es el paquete que debe ser modificado. Como no existe todavía un paquete sobre el que actuar, asigna la petición de cambio a un desarrollador (¡qué suerte, siempre te toca a ti!) y registra en la petición de cambio:

Gestor de proyectos:

Registro: Crear el paquete acme-migasfree-server

Asignado a: desarrollador.

Cambio

Empaquetado

Como desarrollador, tienes que crear el paquete de configuración acme-migasfree-server. Si nunca has creado un paquete, no te preocupes, para facilitarte las cosas y que puedas avanzar, centrándote en el proceso GCS, descárgate el proyecto fun-with-migasfree-examples donde se incluyen los ejemplos utilizados es este libro.

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

Observa cómo modificamos el nombre de la organización:

$ less acme-migasfree-server/etc/migasfree-server/settings.py

Nota

En los Ajustes del servidor migasfree puedes ver el conjunto de ajustes que se pueden emplear para adaptar el servidor a tus necesidades.

Y observa también que, en la postinstalación del paquete, se ejecutará el comando service apache2 reload cuando se produzca la configuración del paquete:

$ less acme-migasfree-server/debian/postinst

Ya tienes el fuente del paquete. Ahora genera el paquete. Para ello, antes debes tener instalados algunos paquetes:

# apt-get install devscripts gcc build-essential:native

Y, ahora sí, genera el paquete:

$ cd acme-migasfree-server
$ /usr/bin/debuild --no-tgz-check -us -uc
$ cd ..

¡Felicidades, el cambio está empaquetado en acme-migasfree-server_1.0-1_all.deb!

Subiendo el cambio al servidor

Usa este comando para subir el paquete generado al servidor.

# migasfree-upload -f acme-migasfree-server_1.0-1_all.deb
  • Introduce usuario: admin
  • Contraseña: admin
  • Version: debian-x.x (En mi caso la versión es debian-8.7)
  • Ubicacion: acme

Finalmente, asigna la petición de cambio a un liberador (sí, otra vez vas a ser tú) y registra en la petición:

Gestor de proyectos:

Registro: Creado paquete acme-migasfree-server_1.0-1_all.deb

Asignado a: liberador

¡Felicidades! Has realizado un cambio de configuración y lo has almacenado en el servidor migasfree.

Liberación

Ahora vas a ver el punto de vista del encargado de liberar los cambios:

Accede mediante un navegador web a tu servidor. Observa que en Alertas tienes 1 paquete huérfano (Figura 6.2).

Paquetes huérfanos.

figura 6.2. Paquetes huérfanos.

Liberando el cambio de configuración

Ahora, vas a liberar el cambio creando un nuevo Repositorio.

Antes de nada debes asegurarte que el usuario con el que te has autenticado tiene asignada una versión con la que trabajar por defecto. Esto es importante y sólo se requiere comprobar en nuevas instalaciones. Para ello pulsa sobre admin y Preferencias. Pulsa Grabar.

Ahora sí, ya estás listo para crear tu primer Repositorio migasfree. Para ello, ve a Liberación (pulsando sobre el icono del camión) y accede a Repositorios. Luego pulsa en el botón + para añadir un nuevo repositorio e introduce estos datos:

  • Nombre = PRINCIPAL

  • Version = debian-x.x

  • Ahora despliega la sección Paquetes

  • Paquetes/Conjuntos = acme-migasfree-server_1.0-1_all.deb

    En este campo se asignan los paquetes que contendrá este repositorio.

  • Paquetes a instalar = acme-migasfree-server

    En este campo se escriben los nombres de los paquetes que se instalarán obligatoriamente en los clientes.

  • Despliega la sección Atributos

  • Atributos = SET-ALL SYSTEMS

    De esta manera indicamos que todos los clientes tendrán acceso a este repositorio.

Guarda el repositorio.

Observa que, en Alertas, ya no tienes ningún paquete huérfano.

Registra y cierra la petición de cambio:

Gestor de proyectos:

Registro: Liberado en Repositorio PRINCIPAL.

Petición: cerrada.

Aplicando el cambio

Para aplicar el cambio, ejecuta el siguiente comando:

# migasfree -u

Observa en la salida del comando:

****************** Subiendo el historial del software... *******************
Diferencia en el software: # 2017-02-03 18:21:17
+acme-migasfree-server-1.0-1
***************************** Correcto

Abre el navegador y fíjate que el nombre de la organización ha cambiado (Figura 6.3).

Cambio nombre organización a ACME.

figura 6.3. Cambio nombre organización a ACME.

Tu segundo cambio de configuración

Petición

Te llega la segunda petición de cambio:

Gestor de proyectos:

Registro: Sustituir de nuevo el nombre de la organización en los servidores migasfree ya que el nombre correcto es Acme Corporation.

Como siemrpre, identificas primero el ECS al que afecta el cambio: En este caso es a acme-migasfree-server. En la petición de cambio asignas al desarrollador y registras:

Gestor de proyectos:

Registro: Modificar el paquete acme-migasfree-server-1-0.1

Asignado a : desarrollador.

Cambio

Los cambios que se realizan sobre un paquete ya creado suelen ser más sencillos de realizar porque, simplemente, se modifica el paquete.

Empaquetado

Edita el fichero del paquete acme-migasfree-server/etc/migasfree-server/settings.py y modifica la variable MIGASFREE_ORGANIZATION:

MIGASFREE_ORGANIZATION = "Acme Corporation"

Edita el fichero del paquete``acme-migasfree-server/debian/changelog`` para registrar el cambio realizado. Tendrás que añadir estas líneas al principio del fichero:

acme-migasfree-server (1.0-2) unstable; urgency=low

  * Change organitation to Acme Corporation

 -- Alberto Gacías <alberto@migasfree.org>  Fri, 3 Feb 2017 18:25:00 +0200

Presta atención a:

  • La versión del paquete (1.0-2).

  • Sustituir tu nombre y dirección de correo.

  • Modificar la fecha y hora.

    Nota

    El formato que se utiliza en el changelog en paquetes debian es muy estricto. Ten cuidado con los espacios, retornos de carro y fechas.

Ahora, generamos el paquete:

$ cd acme-migasfree-server
$ /usr/bin/debuild --no-tgz-check -us -uc
$ cd ..

Observa que se ha generado el mismo paquete, pero con la versión 1.0-2:

# root@debian8:~# ls -la *.deb
-rw-r--r-- 1 root root 2338 feb  3 17:49 acme-migasfree-server_1.0-1_all.deb
-rw-r--r-- 1 root root 2398 feb  3 18:27 acme-migasfree-server_1.0-2_all.deb
Subiendo al servidor el cambio
# migasfree-upload -f acme-migasfree-server_1.0-2_all.deb
  • Introduce usuario: admin

  • Contraseña: admin

  • Version: debian-x.x

  • Ubicacion: acme

    Gestor de proyectos:

    Registro: Creado paquete acme-migasfree-server_1.0-2_all.deb

    Asignado a: liberador

Liberación

Liberando el cambio de configuracion

Observa como aparece de nuevo un paquete huérfano en alertas y que corresponde a acme-migasfree-server_1.0-2_all.deb.

Accede a Liberación - Repositorios y edita el repositorio PRINCIPAL. Añade a Paquetes/Conjuntos el paquete acme-migasfree-server_1.0-2_all.deb.

Guarda el repositorio.

Registra y cierra la petición de cambio:

Gestor de proyectos:

Registro: Liberado en Repositorio PRINCIPAL.

Petición: cerrada.

Aplicando el cambio

Ejecuta de nuevo:

# migasfree -u

Observa en la salida de este comando el cambio de software:

****************** Subiendo el historial del software... *******************
Diferencia en el software: # 2017-02-03 18:30:21
+acme-migasfree-server-1.0-2
-acme-migasfree-server-1.0-1
***************************** Correcto

Comprueba si el cambio se ha aplicado.

Nombre de la organización.

figura 6.4. Cambio nombre organización a Acme Corporation.

Auditoría

Ahora sí que vas a responder las siguientes cuestiones de manera centralizada desde el servidor migasfree:

¿Qué cambios se han producido en el ordenador 1 y cuándo?

Accede a Datos - Ordenadores, accede al equipo CID-1 (CID=Computer ID) y mira el final del campo historial de software de la sección Software:

# 2017-02-03 18:21:17
+acme-migasfree-server-1.0-1

# 2017-02-03 18:30:21
+acme-migasfree-server-1.0-2
-acme-migasfree-server-1.0-1

El signo (-) indica paquete desinstalado y el signo (+) paquete instalado.

¿Qué se cambió, quién y cuándo lo hizo?

Esta información está en el paquete como metainformación. Para acceder a ella, accede a Liberación - Paquetes. Despliega el menú de la derecha del paquete acme-migasfree-server_1.0-2_all.deb y pulsa en Información del paquete.

Aquí podrás ver el registro de los cambios (entre otra información):

acme-migasfree-server (1.0-2) unstable; urgency=low

  * Change organitation to Acme Corporation

 -- Alberto Gacías <alberto@migasfree.org>  Fri, 3 Feb 2017 18:25:00 +0200


acme-migasfree-server (1.0-1) unstable; urgency=low

  * Change organitation to ACME

 -- Alberto Gacías <alberto@migasfree.org>  Sat, 18 May 2013 08:32:00 +0200

¿Qué equipos tienen el cambio acme-migasfree-server-1.0-2?

Ve a Consultas - Ordenadores en producción con el paquete.... Escribe en el campo Paquete acme-migasfree-server-1.0-2 y obtendrás el resultado.

Conclusión

Aunque requiera de un esfuerzo inicial empaquetar la configuración de las aplicaciones, los beneficios que obtendrás justifican sobradamente el uso de este método, ya que dispondrás de sistemas más estables, te permitirá hacer el seguimento y control de los cambios y mejorarás la resolución de incidencias.

Beneficios de crear paquetes de configuración

  • La configuración permacece encapsulada.
  • Las configuraciones puede revertirse fácilmente.
  • Facilita las pruebas antes del despliegue.
  • Facilita la distribución de las configuraciones de forma segura.
  • Proporciona integridad frente a los cambios de la configuración.

Desventajas del empaqueteado de la configuración.

  • Cuesta más tiempo que otras alternativas ya que hay que crear los paquetes.

Beneficios de usar migasfree

Utilizar migasfree para la realizar la Liberación te permitirá:

  • Controlar a quién y a partir de qué momento se deben aplicar los cambios.
  • Tener una auditoría centralizada:
    • Inventario de Ordenadores.
      • Hardware.
      • Software (actual e histórico).
    • Inventario de los cambios.
    • y algunas cosas más, que te serán desveladas en los siguientes capítulos.

Configurando migasfree-client

La libertad no es poder elegir entre unas pocas opciones impuestas, sino tener el control de tu propia vida. La libertad no es elegir quien será tu amo, es no tener amo.

—Richard Stallman.

En el capítulo anterior nos hemos centrado en cómo se realiza el proceso de la GCS.

En este capítulo vas a configurar el cliente de migasfree (mediante empaquetado) para que se conecte a la máquina virtual Debian 8 en el que ya tienes un servidor migasfree instalado.

Todos los comandos de este capítulo los vas a ejecutar en otra máquina virtual, con Ubuntu instalado, y que debes tener en la misma red en la que esté la máquina virtual del servidor.

El objetivo de este capítulo es que conozcas un poco más el empaquetado.

Instalando migasfree-client en Ubuntu

Instala el cliente migasfree:

# wget -O - http://migasfree.org/pub/install-client | bash

Observa como en el fichero /etc/migasfree.conf que ha instalado el paquete migasfree-client no hay, lógicamente, ningún ajuste configurado.

less /etc/migasfree.conf

A continuación, vamos a configurar este fichero haciendo uso del empaquetado, así que no lo hagas manualmente.

Obteniendo acme-migasfree-client

Al igual que hiciste con la configuración del servidor, puedes bajarte el fuente del paquete que vamos a utilizar de plantilla para configurar el cliente de migasfree.

En la nueva máquina virtual con Ubuntu, ejecuta el siguiente código si aún no te has descargado fun-with-migasfree-examples:

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

Adaptando acme-migasfree-client

Accede al directorio acme-migasfree-client y observa su contenido:

$ cd  acme-migasfree-client
$ ls -la
total 20
drwxrwxr-x 5 alberto alberto 4096 jun 18 20:54 .
drwxrwxr-x 4 alberto alberto 4096 jun 18 21:04 ..
drwxrwxr-x 3 alberto alberto 4096 jun 18 20:54 debian
drwxrwxr-x 3 alberto alberto 4096 jun 18 20:54 usr

Metadatos

Observa el directorio debian. Este directorio es el que contiene los metadatos del paquete. Los ficheros más importantes en este directorio son:

  • El fichero control consiste en un conjunto de campos, representados en un formato común, que permiten al sistema de gestión de paquetes conocer los metadatos del paquete y así poder gestionarlo adecuadamente. Puedes consultar la debian-policy para explorar el conjunto de datos de control
  • El fichero changelog contiene información, en un formato especial, con las modificaciones que se han realizado en cada versión del paquete. Cada vez que se modifica el paquete, hay que añadir una entrada en este fichero, incrementando la versión y registrando lo que se ha modificado.
  • El fichero copyright contiene la información sobre los recursos, licencia y derechos de autoría de las fuentes originales del paquete.
  • El fichero rules contiene las reglas que se utilizan para generar los paquetes a partir de sus fuentes.
  • El fichero install contiene una lista de ficheros que serán instalados con el paquete.

Ahora que conoces el significado de estos ficheros, modifícalos cambiando el nombre del paquete acme-migasfree-client por tuempresa-migasfree-client y pon tu nombre y la fecha actual allí donde se requiera.

Modifica también el nombre del directorio raiz acme-migasfree-client por tuempresa-migasfree-client.

Scripts

Observa ahora los scripts postinst y prerm. Sus nombres nos indican cuando serán ejecutados por el sistema de gestión de paquetes.

  • postinst inmediatamente después de que se produzca la instalación del paquete.
  • prerm justo antes de que se produzca la eliminación del paquete.

Observa ahora el contenido de postinst y verás que aquí se hace una llamada al comando dpkg-divert. Mediante este comando hacemos lo que se conoce como una desviación de fichero (divert). Mediante la desviación, indicamos al sistema de gestión de paquetes que un fichero ya no pertenece a un determinado paquete sino al que nosotros establezcamos.

Así, el fichero de configuración /etc/migasfree.conf, que pertenece en principio al paquete migasfree-client, hacemos que pertenezca al paquete tuempresa-migasfree-client de tal manera que, una posible actualización de migasfree-client ya no nos afectará. Cada vez que queramos modificar un ajuste del cliente migasfree en /etc/migasfree.conf, lo haremos a través del fichero usr/share/divert/etc/migasfree.conf del paquete tuempresa-migasfree-client.

Fíjate también que en prerm deshacemos esta desviación, para que si desinstalamos el paquete, quede todo como estaba.

Modifica ahora el fichero usr/share/divert/etc/migasfree.conf. Tendŕas que poner el ajuste Server con el nombre, o la IP, del servidor migasfree que hemos utilizado anteriormente, y el ajuste Version con el nombre de tu distribución, por ejemplo ACME-1. El resto de ajustes, modifícalos según tus intereses. Una vez hecho esto, y situado en el directorio tuempresa-migasfree-client, genera el paquete (debes tener el paquete devscripts y debhelper previamente instalados).

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

Con esto tendrás un paquete que configura el cliente migasfree para tu organización. Ahora es momento de instalarlo:

# dpkg -i tuempresa-migasfree-client_1.0-1_all.deb

Observa que al instalar el paquete, dpkg te informa que se añade la desviación de /etc/migasfree.conf. Comprueba ahora que el ajuste Server y Version son los correctos.

# less /etc/migasfree.conf

Ahora ya estás preparado para registrar este ordenador en el servidor migasfree.

# migasfree -u

Comprueba que en el servidor se ha creado la version ACME-1 y que existe un nuevo ordenador accediendo a la página web del servidor.

Finalmente, subimos el paquete a nuestro servidor migasfree con el fin de tenerlo disponible para su liberación a otros escritorios ACME-1.

# migasfree-upload -f tuempresa-migasfree-client_1.0-1_all.deb
  • Introduce usuario: admin
  • Contraseña: admin
  • Version: ACME-1
  • Ubicacion: acme

Ejecución del cliente migasfree

Hasta ahora, siempre hemos ejecutado el cliente migasfree desde consola mediante el comando migasfree -u como root. Ahora vamos a hacer que se ejecute automáticamente cada vez que el usuario abra una sesión gráfica. Para este propósito, existe el paquete migasfree-launcher.

$ wget https://github.com/migasfree/migasfree-launcher/archive/latest.zip
$ unzip latest.zip
$ rm latest.zip
$ cd migasfree-launcher-latest
$ python setup.py --command-packages=stdeb.command bdist_deb
$ cd ..

Sube el fichero migasfree-launcher al servidor:

# migasfree-upload -f migasfree-launcher_1.0-1_all.deb

Ahora observa los ficheros que contiene este paquete:

  • etc/sudoers.d/migasfree-launcher establece los comandos que no requieren password de root para que pueden ser ejecutados desde un usuario cualquiera. Puedes obtener más información sobre la configuración de sudoers ejecutando man sudoers en un terminal.

  • etc/xdg/autostart/migasfree-indicator.desktop ejecutará el comando /usr/bin/migasfree-indicator cuando el usuario inicia sesión gráfica. migasfree-indicator llamará a /usr/bin/migasfree-launcher y éste a su vez a migasfree --update.

    Puedes aprender más sobre la especificación de los ficheros .desktop en freedesktop.org.

Ahora que ya tienes los paquetes tuempesa-migasfree-client y migasfree-launcher en el servidor migasfree, crea un repositorio en el servidor y pon estos paquetes en paquetes a instalar y asígnale el atributo SET-ALL SYSTEMS.

Nota

Para aprender más sobre el empaquetado, consulta la Guía del nuevo desarrollador de Debian

Nota

Para paquetería rpm, los metadatos del paquete se especifican en un único fichero llamado SPEC. Para aprender más sobre la creación de paquetes rpm, puedes consultar rpm.org y la wiki del proyecto fedora.

Despliegue

A partir de este momento, vas a poder administrar fácilmente los escritorios Ubuntu de tu organización, de forma generalizada, instalando simplemente estos dos paquetes.

Hay varias formas de realizar esta instalación:

  • Bajando los dos paquetes a cada uno de los escritorios e instalándolos mediante el comando dpkg -i

  • Creando un fichero /etc/apt/sources.list.d/migasfree.list con el siguiente contenido:

    deb http://<myserver>/repo/<version>/REPOSITORIES <store> PKGS
    

    donde sustituirás:

    • <myserver> por tu servidor.
    • <version> por la versión que pusiste en /etc/migasfree.conf
    • y <store> por la ubicación que pusiste al subir el paquete al servidor migasfree con migasfree-upload.

    Una vez creado este fichero ejecuta:

    # apt-get update
    # migasfree -u
    

    y los paquetes se instalarán automáticamente

  • Puedes hacer un clon de un equipo donde ya estén instalados estos paquetes, utilizando un sistema de clonado como clonezilla. Este es el método que usamos en AZLinux, y nos resulta muy cómodo y rápido ya que en una memoria USB llevamos un clonezilla, junto con la imagen clonada de nuestro escritorio, consiguiendo instalar un AZLinux en menos de 10 minutos.

  • Puedes crear un DVD de tu escritorio tal y como se realiza en el proyecto vitalinux. En concreto, tendrías que adaptar el paquete vx-create-iso a tus necesidades. En este método son los usuarios quienes se bajan la iso del DVD y se instalan ellos mismos el sistema.