La característica principal de esta versión menor es la capacidad de inspeccionar Ubuntu 14.04 y Docker Containers. No se requiere una configuración especial, solo necesita ejecutar el comando inspect o inspect-container señalado en el host de Ubuntu.

Para agregar esta funcionalidad, tuvimos que enseñarle a Machinery algunos trucos nuevos para manejar el sistema de inicio y el administrador de paquetes dpkg.

Upstart

Machinery ya puede encontrar los servicios de SysVinit y systemd en un sistema. A pesar de que Upstart está bastante avanzado, fue el tercer gran jugador en la liga del sistema de inicio y poder analizar sus servicios es una gran adición para la base de código de Machinery.

En el caso de Ubuntu 14.04, pudimos encontrar la lista completa de servicios fusionando los servicios SysV y Upstart con los siguientes comandos:

# upstart services
/sbin/initctl show-config -e
# sysv services
/usr/sbin/service --status-all

La conclusión principal para mí sobre este tema fue que no hay una forma genérica de determinar el sistema de inicio predeterminado en una distribución de Linux y que, en algunos casos, como en Ubuntu 14.04 y RHEL 6, pueden ser una combinación de dos.

Dpkg

Ubuntu es también la primera distribución que Machinery puede inspeccionar que usa el administrador de paquetes dpkg y tuvimos que expandir los ambitos packages, repositories, patterns, config-files, changed-managed-files y unmanaged-files scopes.

Para el ambito de packages obtenemos toda la información al ejecutar dpkg -l. Para diferenciar los paquetes rpm de los deb, agregamos el atributo package_system que puede ser “rpm” o “deb” respectivamente

Al trabajar en el ámbito repositories, originalmente íbamos a hacer lo mismo, pero al final la diferenciación por la herramienta utilizada para instalar esos paquetes resultó ser un mejor enfoque. Hay suficientes diferencias entre zypper, yum y apt, por lo que agregamos el atributo repository_system que puede tener un valor de “zypp”, “yum” y “apt” en consecuencia.

En el ambito de los patterns, introdujimos una dependencia al comando “taskel”. Cuando están presentes en un sistema y si hay alguna tarea instalada, se enumeran usando el comando taskel --list-task`.

Los ámbitos de config-files y changed-managed-files dependen en gran medida de la información proporcionada por el paquete. Para determinar qué ha cambiado, confiamos en las sumas de verificación proporcionadas por el mantenedor del paquete. Lamentablemente, muchos paquetes no proporcionan las sumas de verificación para cada uno de sus archivos. Esto significa que si una configuración o un archivo administrado que no tiene su suma de verificación se cambió después de la instalación, Machinery no podrá detectar este cambio.

Actualizando

Si instaló Machinery como un paquete usando zypper, todo lo que necesita hacer es actualizarlo. (Las compilaciones en openSUSE Leap y SLE tardan más en estar disponibles)

sudo zypper up machinery

Si has instalado Machinery como gema

gem update machinery-tool

Finalmente actualice todas las descripciones de su sistema ejecutando

 machinery upgrade-format --all

¡Aprenda más sobre sus sistemas con Machinery!