Anexo:Comparación de software libre para la gestión de configuración

De Wikipedia, la enciclopedia libre

Esta es una comparación de productos tanto de software libre como de código abierto orientado a facilitar a los administradores de sistemas (DevOps) en la administración y configuración de las infraestructuras de las T.I.

Por sus propiedades básicas[editar]

Comparación de sus características elementales, considerando un esquema cliente-servidor:

Lenguaje Licencia Autenticación mutua Encriptación Modo de verificación Agente de
software
Primera
y última
versión
estable
Ansible[1] Python GPL No 2012-03-08
2014-09-24
1.7.2
Bcfg2 Python BSD 2004-08-11
2014-02-25
1.3.4
cdist Python GPL No 2010
2012-06-05
2.0.13
Chef[2] Ruby Apache 2009-01-15 0.5.0
2014-02-20
11.10.4
CFEngine C GPL, COSL 1993
2014-07-28
3.6.1
ISconf Python GPL No 1998
2006-08-13
4.2.8.233
Juju Python,
GO
Affero GPL 2010-09-17
2013-04-03
0.7
Local ConFiGuration system (LCFG) Perl GPL Parc. Parc. 1994
versiones
semanales
OCS Inventory NG con GLPI Perl,
PHP,
C++
GPL No 2003
2011-09-13
2.3
Open pc server integration (Opsi) Python,
Java
GPL No 2004
2013-03-01
4.0.3
PIKT C GPL 1998
2007-09-10
1.19.0
Puppet[3] Ruby Apache desde 2.7.0, antes GPL 2005-08-30
2014-06-10
3.6.2
Quattor Perl,
Python
Apache 2.0 2005-04-01
2014-09-08
14.8.0
Radmind C BSD 2002-03-26
2008-10-08
1.13.0
Rex Perl Apache No 2010-11-05
2014-07-14
0.50.0
Rudder C,
Scala
GPL y Affero GPL 2011
2014-08-28
2.10.5
Rundeck Java Apache 2010-05-01
2017-03-10
2.7.3
SmartFrog Java LGPL 2004-02-11
2009-01-26
3.16.004
Salt Python Apache [4] 2011-03-17
2014-10-15
2014.1.13
Spacewalk Java
(C,
Perl,
Python,
PL/SQL)
GPLv2 2008-06
2013-07-19
2.0
STAF C++ CPL No Parc. 1998-02-16
2012-12-16
3.4.16
Synctool Python GPLv2 2003
2014-06-15
6.1
Vagrant[5] Ruby Licencia MIT 2010-01-21
2014-05-06
1.6.1

Plataformas soportadas[editar]

Plataforma soportada en el sitio web del proyecto con una versión reciente de la herramienta y que haya sido utilizado con éxito en la práctica; no incluye plataformas donde debería funcionar teóricamente.

AIX BSD HP-UX Linux Mac OS X Solaris Microsoft Windows Others
Ansible Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 
Bcfg2 Parcial Parcial Sí  No No Sí  Parcial Parcial Sí  No No No No
CFEngine Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 
cdist Sí  Sí  Sí  No No
Chef Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 
ISconf Sí  Sí  Sí  Sí  Sí  Sí  No No No No
Juju Sí 
Local ConFiGuration system (LCFG) No No No No No No Parcial Parcial Parcial Parcial Parcial Parcial No No No No
OCS Inventory NG Sí  Sí  Sí  Sí  Sí  Sí  Sí  No No
Open pc server integration (Opsi) No No No No No No Sí  No No No No Sí  No No
PIKT Sí  Sí  Sí  Sí  Sí  Sí  No No Sí 
Puppet Sí  Sí  Sí  Sí  Parcial Parcial Sí  Sí  Sí 
Quattor No No No No No No Sí  Parcial Parcial Sí  No No No No
Radmind Sí  Sí  No No Sí  Sí  Sí  Sí  No No
Rex Sí  Sí  Sí  Sí  Sí  No No
Rudder Sí  Parcial Parcial No No Sí  Parcial Parcial Parcial Parcial Sí  Sí 
Rundeck Sí  Sí  Sí  Sí  Sí  Sí  Sí  No No
SmartFrog No No No No Sí  Sí  Sí  Sí  Sí  No No
Salt Sí  Sí  Parcial Parcial Sí  Sí  Sí  Sí  Parcial Parcial
Spacewalk No No No No No No Sí  No No Sí  No No No No
STAF Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 
Synctool Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 
Vagrant Sí  Sí  Sí 

Descripciones Breves[editar]

No todas las herramientas tienen el mismo objetivo y el mismo conjunto de características. Para ayudar a distinguir entre todos estos paquetes de software, aquí hay una breve descripción de cada uno.

Ansible
Combina el despliegue de múltiples nodos, la ejecución de tareas ad-hoc, y la gestión de la configuración en un solo paquete. Gestiona los nodos a través de SSH y requiere Python (2.4 o posterior). Trabaja sobre JSON y salida estándar. Utiliza YAML para expresar descripciones de sistemas reutilizables.
Bcfg2
Software para gestionar la configuración de un gran número de equipos que utilizan un modelo de configuración central y el paradigma cliente-servidor. Los informes detallados proporcionan una manera de identificar la configuración no administrada en los hosts. Los generadores permiten la creación de código basado en plantillas o de archivos de configuración desde un repositorio de datos central.
CFEngine
Es un sistema de agente ligero. Administra la configuración de un gran número de ordenadores tanto cliente-servidor como aislados. Cualquier estado de cliente diferente de la descripción de la política se revierte al estado deseado. El estado de configuración se describe a través de un lenguaje declarativo.
Cdist
Cdist es un sistema de gestión de la configuración sin dependencias: Solo es necesario ssh en el host de destino, habilitado por defecto en todas las máquinas *nix. Únicamente el host de administración necesita tener instalado Python (Mínimo 3.2)
Chef
Chef es una herramienta de gestión de la configuración escrito en Ruby. Para la escritura de configuración usa "recipes" (Recetas). Estas "recipes" contienen recursos que deben ser configurados en el estado declarado por ellas. Chef se puede utilizar como una herramienta de cliente-servidor o utilizarse en modo aislado.
ISconf
Herramienta para ejecutar comandos y reproducir archivos en todos los nodos. Los nodos no necesitan estar encendidos; los comandos se ejecutarán cuando arranque el sistema. El sistema no dispone de servidor central, de modo que los comandos pueden ser lanzados desde cualquier nodo y que se replicarán a todos los nodos.
Juju
Juju focaliza en la noción de servicio, logrando abstraer la noción de máquina o servidor, y define las relaciones entre los servicios que se actualizan automáticamente cuando dos servicios vinculados observan una modificación relevante.
Local ConFiGuration system (LCFG)
LCFG gestiona la especificación de los recursos, aspectos y perfiles mediante un lenguaje de descripción en XML. La configuración se implementa utilizando el modelo cliente-servidor. Mediante scripts apropiados en los clientes (llamados componentes) se transcriben los recursos en los archivos de configuración y se reinician los servicios en caso de ser necesario.
Open pc server integration (Opsi)
Opsi es un software de administración de escritorio para los clientes de Windows basadas en servidores Linux. Proporciona distribución automática del software, instalación desatendida de sistema operativo, administración de parches, inventario de hardware y software, gestión de licencias y de activos de software, y las tareas administrativas para la gestión de la configuración.
PIKT
PIKT es un sistema de monitorización que también realiza gestión de configuración. "Consiste en un sofisticado, preprocesador de archivos con muchas características. Un innovador lenguaje de scripting con características que ayudan al ahorro de trabajo. Una solución flexible, planificador de procesos dirigido centralmente. Un instalador de archivos de personalizable. Una colección de potentes extensiones para la línea de comando, y otras herramientas útiles."
Puppet
Puppet consiste en un idioma personalizado declarativo para describir la configuración del sistema y una biblioteca para realizar la configuración, que se distribuye usando el modelo cliente-servidor. La capa de abstracción de recursos permite a los administradores describir la configuración en términos de alto nivel, tales como usuarios, servicios y paquetes. Puppet garantiza que el estado del servidor coincide con la descripción.
Quattor
El modelo de información Quattor se basa en la diferencia entre el estado deseado y el estado real. El estado deseado se registra en una base de datos de configuración, utilizando un lenguaje de configuración especialmente diseñado llamado Pan, que permite expresar y validar configuraciones, compuestas de bloques de construcción jerárquicos reutilizables llamado plantillas. Las configuraciones se propagan y almacenan en caché en los nodos administrados.
Radmind
Radmind gestiona la configuraciónd e hosts a nivel del sistema de archivos. De una manera similar a Tripwire (otras herramientas de gestión de configuración), puede detectar cambios externos para administrar la configuración, y opcionalmente puede revertir los cambios. Radmind no tiene elementos de configuración de nivel superior (servicios, paquetes). La interfaz gráfica sólo está disponible para Mac OSX.
Rex
Rex es un sistema de ejecución remota con gestor de configuración integrado y capacidad de despliegue de software. El administrador proporciona instrucciones de configuración a través de los llamados Rexfiles. Están escritas en un pequeño DSL, pero también pueden contener Perl. Se integra bien con un sistema de construcción automatizado utilizado en entornos de integración continua.
Rudder
Rudder es una herramienta fácil de usar basada en roles para la infraestructura de TI. Un agente ligero se instala en todos los hosts administrados, se aplica la configuración y verifica con regularidad. Los datos de informes se centralizan en un servidor entrall. Los módulos predefinidos permiten una configuración rápida y sencilla para muchos escenarios. Es posible construir módulos adicionales.a través de una interfaz web.
Rundeck
Rundeck es un planificador de software de trabajo de código abierto que utiliza un sistema Runbook para la automatización de los procesos de rutina a través de entornos de desarrollo y producción. Combina planificación de tareas, ejecución de comandos en múltiples nodos, orquestación de flujo de trabajo y el registro de eventos. La política de control de acceso gobierna quién ejecuta acciones a través de los nodos mediante la configuración del " nodo ejecutor" (para *NIX utiliza SSH de forma predeterminada) y no requiere ningún software remoto adicional. Los plugins pueden ser escritos en lenguajes de scripting o Java. El sistema de flujo de trabajo se puede ampliar mediante la creación de plugins personalizados para interactuar con herramientas y servicios externos.
Salt
Salt comenzó como una herramienta para la gestión de servidores remotos. Como su utilización ha crecido, se ha adquirido una serie de características extendidas, incluyendo un mecanismo más amplio para la configuración de hosts.
SmartFrog
Herramienta para desplegar y configurar aplicaciones distribuidas a través de múltiples máquinas basada en Java. No necesita servidor central, pudindo implementar un archivo de configuración .SF a cualquier nodo y hacer que se distribuya al resto de nodos de acuerdo con la información de distribución de contenida en el descriptor de despliegue.
Spacewalk
Spacewalk es una solución de administración para sistemas de código abierto Linux y Solaris y utilizado en el código de Red Hat Network Satellite. Spacewalk trabaja con RHEL, Fedora, y otras distribuciones derivadas de RHEL como CentOS, Scientific Linux, etc. Hay esfuerzos encaminados a empaquetarlo e incluirlo en Fedora. Spacewalk provee un inventario del sistema (Información de hardware y software, instalación y actualización de software, recoleccción y distribución de paquetes de software, gestión por grupos, sistemas de provisionamiento, monitorización de sistemas, provisionamiento y gestión de huéspedes virtuales, y delegación de todas estas acciones a los usuarios locales o LDAP.
Software Testing Automation Framework (STAF)
Software Testing Automation Framework (STAF) permite a los usuarios crear entornos de prueba de software distribuidos multiplataforma. STAF elimina la tediosa tarea que es la construcción de una infraestructura automatizada, permitiendo a los usuarios centrarse en la construcción de su solución de automatización. El framework STAF proporciona la base sobre la cual construir soluciones de más alto nivel y ofrece un enfoque conectable soportado a través de una gran variedad de plataformas y lenguajes.
Synctool
SyncTool pretende ser fácil de entender, aprender y utilizar. Está desarrollado en Python y hace uso de SSH (sin contraseña, con autenticación basada en el host o en clave) y rsync. No es necesario un lenguaje específico para configurar esta herramienta.
Vagrant
Vagrant es un software libre de código abierto para la creación y configuración de entornos de desarrollo virtuales. Se puede considerar como una envoltura alrededor del software de virtualización como VirtualBox y del software de gestión de la configuración, como Chef, Salt y Puppet.

Enlaces externos[editar]

  1. Ansible plataforma de software libre para configurar y administrar computadoras.
  2. Chef herramienta de gestión de configuración desarrollada en Ruby y Erlang.
  3. Puppet sirve para administrar la configuración de sistemas, de forma más simple, automatizando las tareas repetibles.
  4. salt-minion
  5. Vagrant software gratis y open-source para creación y configuración de entornos virtuales de desarrollo.