pkgsync 1.25-2: Añadidas nuevas mejoras y funcionalidades | Algo de Linux

martes, 24 de noviembre de 2015

pkgsync 1.25-2: Añadidas nuevas mejoras y funcionalidades

He visto que el sistema que nos han proporcionado en el nuevo servidor HP es un Debian Jessie de 32 bits sin LVM. Como desconozco el motivo, y ya tenía en mente otros cambios, lo primero que pensé fue transformarlo en un sistema de 64 bits con volúmenes LVM.

Así que, aprovechando que la plataforma de virtualización Proxmox VE 4.0 está basada en Debian Jessie y quería disponer una plataforma de virtualización,  decidí matar dos pájaros de un tiro.

El problema estaba en que, examinando el sistema que nos han proporcionado, ví que la lista de paquetes de pkgsync incluía expresamente paquetes de 32 bits. Un verdadero problema, sobre todo, teniendo en cuenta que necesitamos seguir manteniendo la "compatibilidad". Y con compatibilidad me refiero a que el servidor siga respondiendo al puppetmaster de Mérida y nuestros compañeros de la sección de administración de sistemas puedan seguir gestionándolo mediante puppet como cualquier otro servidor. Pero sobre todo, cumplir mi objetivo de aprovechar mejor los recursos del servidor, y ya que dispongo de una máquina de 64 bits, lo más óptimo es que el sistema operativo también lo sea.

En diciembre de 2013, ya hice una mejora en pkgsync, modificándolo para compartir la gestión de paquetes. Así que pensé que lo más conveniente sería volver a revisar pkgsync, añadiéndole una serie de mejoras y funcionalidades, entre ellas, una que me permitiera ignorar el fichero musthave que mi servidor reciba vía puppet, manteniendo sólo los paquetes que yo indique en mis ficheros musthave locales.

Éstos son los cambios que he realizado en pkgsync:

Primero.- Además de permitir fusionar los archivos musthave, maynothave y mayhave gestionados por la sección de administración de sistemas con los archivos musthave.ies, maynothave.ies y mayhave.ies gestionados por el administrador informático del centro, es posible crear ficheros en los siguientes directorios:
  • /etc/pkgsync/musthave.d
  • /etc/pkgsync/mayhave.d
  • /etc/pkgsync/maynothave.d
Ésto permite al administrador mantener organizadas sus listas de paquetes.

De este modo pkgsync fusionará por un lado todos los musthave, por otro los mayhave y por otro los maynothave, eliminando repeticiones y limpiando los ficheros de espacios en blanco y tabulaciones.

Segundo.- A veces, por circunstancias, resulta imposible realizar una gestión compartida, como en este caso: Estoy tratando de instalar un sistema de 64 bits y en los ficheros musthave figuran expresamente paquetes de 32 bits que me rompen el sistema. Esta modificación es la que me llevó a introducir las diferentes mejoras que he introducido en pkgsync. 
De este modo, podemos ignorar los ficheros musthave, mayhave y maynothave, con tan sólo cambiar el valor de las siguientes variables en el fichero /etc/default/pkgsync:

IGNORE_MUSTHAVE="no"
IGNORE_MAYHAVE="no"
IGNORE_MAYNOTHAVE="no"


por:

IGNORE_MUSTHAVE="yes"
IGNORE_MAYHAVE="no"
IGNORE_MAYNOTHAVE="no"

Para ello he introducido un fichero de configuración: /etc/default/pkgsync.

En el ejemplo anterior, como podéis comprobar estoy ignorando el fichero /etc/pkgsync/musthave, de tal manera que pkgsync para crear la lista de paquetes sólo utilizará el fichero /etc/pkgsync/musthave.ies junto con los ficheros ubicados en /etc/pkgsync/musthave.d/ y todos los ficheros mayhave y maynothave.

Tercero.- Como el script pkgsync nos lo colocan vía puppet en el directorio /usr/sbin y necesito que se ejecute mi versión de pkgsync, el paquete lo instala en /usr/local/sbin que tiene prioridad sobre /usr/sbin.

Cuarto.- En esta versión de pkgsync he añadido una funcionalidad interesante que permite comprobar si alguno de los ficheros de pkgsync contiene paquetes que no se encuentran disponibles en los repositorios utilizando el parámetro -t,--test-files.
Al ejecutar pkgsync -t o pkgsync --test-files se muestra por pantalla la lista de paquetes especificados en los ficheros de pkgsync que no se encuentran en los repositorios y, además, lo almacena en el siguiente fichero de log:
/var/log/pkgsync/removefromlist.log

Quinto.- Por último, también he añadido una mejora que considero muy importante: En esta versión de pksync se da prioridad a los ficheros maynothave, de tal manera que, cuando el administrador especifique un nombre de paquete en un fichero maynothave, si el nombre del fichero se encuentra añadido a cualquiera de los ficheros musthave, pkgsync lo ignorará para que aptitude no trate de instalarlo. Ésto me resuelve el problema de instalar un paquete que es incompatible con los que se han instalado por defecto en el sistema y el que se ha instalado por defecto en el sistema no se usa y me estorba.

Por si alguien quiere echarle un vistazo, he subido el proyecto a mi github:
https://github.com/algodelinux/pkgsync

Aquí podéis ver el código completo de pkgsync:
Y si queréis descargar el paquete que instala esta versión de pkgsync, aquí lo tenéis:
https://copy.com/d2n3dZ2izAlvj6fH
Publicado por primera vez en http://enavas.blogspot.com.es

3 comentarios:

Oscar Vaquero Montecino dijo...

Madre...¡que todavía no hemos acabado de poner módulos para gestionar los ficheros .ies! :D

Gran trabajo, Esteban

Esteban M. Navas Martín dijo...

Todo tiene explicación... Trataba de montar Debian Jessie de 64 bits en el nuevo servidor y necesitaba evitar que el musthave me rompiera el sistema. Así que mientras lo pensaba, se me ocurrieron más cambios. Lo mejor de todo es que se puede seguir trabajando del mismo modo que antes.

Esteban M. Navas Martín dijo...

En esta versión he modificado hasta el man.