Múltiples definiciones de configuración 'base' de aplicaciones almacenadas en... Enterprise Arch/CMDB/etc?

Estoy tratando de encontrar software para poner ~ 10 piezas de información de software diferentes. La información incluye lo siguiente para la instalación 'base':

  • sistema operativo probado previsto
  • otro software de requisito previo (java, tomcat, .net4.0, IIS, ImageMagick, etc.)
  • conexión a una base de datos probada (mysql, sqlserver, posiblemente por intención como versión OLTP u OLAP)
  • conexión a otros servicios web (como los proporcionados por otras aplicaciones 'base' dentro de la misma herramienta)
  • cualquier otro elemento que pueda necesitar ser configurado.

Ejemplo

BASE INFO  (intended tool to store)
Name: MyApp
SupportedOS: Windows 2012, RHEL 6
SupportedDB: Mysql 5.6, MS SQL 2012
Pre-requisite: jre8, tomcat8
Service Dependency:  MyOtherApp/service/REST.WADL?version=v1
Service Dependency (optional):  MyYetAnotherApp/service/SOAP.WSDL?version=v2

CUSTOMER_DEPLOYMENT1 (generated from this information, possibly outside of the tool, possibly into other format such as vagrant or ansible JSON variable files)
Name:Customer1_Myapp
TargetOS: Windows 2012
Database: Customer1_mysqlserver.aws.com
Service Hooks:   http://serverXYZ/MyOtherApp/service/REST.WADL?version=v1

INTERNAL_CERT_SYSTEM(generated from this information, possibly outside of the tool, possibly into other format such as vagrant or ansible JSON variable files)
Name:INTCERT_Myapp
TargetOS: RHEL 6
Database: cert_mysqlserver.mycompany.com
Service Hooks:   http://serverZZYY/MyOtherApp/service/REST.WADL?version=v1

Tenga en cuenta que la intención no es almacenar archivos de configuración, sino toda esta información relacionada para, idealmente, generar el archivo de configuración, generar diagramas, etc. ya que esta 'herramienta' ya debería tener toda la información base.

Básicamente, todo lo que uno necesitaría para configurar e implementar una versión en ejecución del software por cliente/por entorno (Dev/QA/Staging/prod/etc). La idea/intención sería, después de recopilar esa información, generar diagramas para su revisión (diagramas de implementación, diagramas de flujo de datos, etc.).

Se prefiere el código abierto para agregar/ampliar según sea necesario (por ejemplo, puede agregar requisitos de autenticación de seguridad y tipo de protocolo a la definición de 'conexión'); pero tomaré cualquier cosa sobre las hojas de Excel.... :-)

(ps, ya he tenido preguntas rechazadas por ServerFault y StackOverflow sobre preguntas/recomendaciones de software similares, así que siga señalando aquí).

Respuestas (1)

No es exactamente lo que está buscando, pero es posible que pueda obtener un muy buen comienzo mirando a Vagrant & Packer . Estos le permiten especificar los entornos necesarios para ejecutar, configurar y probar su software, incluido su sistema operativo, la configuración del sistema operativo, Base de Datos, Otras Herramientas, etc. y generarlos.

Entonces, a partir de archivos de texto/json "simples", que puede controlar la versión , puede definir tanto su entorno de desarrollo como el entorno de implementación/prueba. Los desarrolladores pueden iniciar una máquina virtual utilizando VirtualBox, VMWare, Docker, etc. muy rápidamente y sus probadores e instaladores pueden generar entornos idénticos a pedido.

Para una solución preexistente, puede generar iterativamente la información necesaria activando una caja de Vagrant con el sistema operativo base, lo siento, necesita saber eso por sí mismo . Pruebas para ver qué dependencias no se cumplen. Cierre el cuadro, agregue la dependencia y vuelva a iniciar.

Dado que esto capturará la información que necesita, también puede analizar los archivos de Vagrant/Packer para sus diagramas, etc.

packer es uno de mis objetivos para completar un archivo de propiedades json al crear una imagen para un nuevo cliente/nuevo entorno, pero quiero que la información provenga de 'algún lugar'... esta herramienta que estoy buscando es el punto de origen . No entré en las fórmulas de plantillas/convenciones, pero puedo posprocesar eso de todos modos una vez que haya una 'fuente única' para toda la información base.
¡Creo que está tratando de documentar lo que la gente ha hecho en lugar de diseñar, iterativamente, lo que se supone que deben estar haciendo! El proceso debe ser Arquitecto/Analista especifica en qué debe consistir el sistema, el desarrollador prueba con eso y señala las deficiencias para que puedan agregarse al diseño.
"El proceso debe ser Arquitecto/Analista especifica en qué debe consistir el sistema" si contiene la información identificada anteriormente, ¡excelente! ¿Dónde almacenan esa información (aparte de Word/Excel)?
@dhartford: en el sistema packer/vagrant, el arquitecto/analista almacenaría la información de configuración en el archivo de especificación del packer que luego pasaría al control de versión en git/svn/hg y se usaría para aprovisionar la(s) caja(s), la(s) imagen(es) ), etc. Procesamiento que podría producir cualquier Word/Excel. Word es para escribir letras, Excel para calcular números; deben ser puntos finales, no puntos de inicio.