Mehrere Anwendungs-„Basis“-Konfigurationsdefinitionen gespeichert in … Enterprise Arch/CMDB/etc?

Ich versuche, Software zu finden, um ~ 10 verschiedene Softwareinformationen zu speichern. Die Informationen umfassen Folgendes für die „Basis“-Installation:

  • vorgesehenes getestetes Betriebssystem
  • andere erforderliche Software (Java, Tomcat, .net4.0, IIS, ImageMagick usw.)
  • Anbindung an eine getestete Datenbank (mysql, sqlserver, evtl. absichtlich wie OLTP- oder OLAP-Version)
  • Verbindung zu anderen Webdiensten (wie sie beispielsweise von anderen „Basis“-Anwendungen innerhalb desselben Tools bereitgestellt werden)
  • alle anderen Elemente, die möglicherweise konfiguriert werden müssen.

Beispiel

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

Beachten Sie, dass die Absicht nicht darin besteht , Konfigurationsdateien zu speichern, sondern all diese zugehörigen Informationen, um idealerweise die Konfigurationsdatei zu generieren , Diagramme zu generieren usw., da dieses „Tool“ bereits alle Basisinformationen enthalten sollte.

Im Grunde alles, was man zum Einrichten und Bereitstellen einer laufenden Version der Software in einer Pro-Kunde/Pro-Umgebung (Dev/QA/Staging/prod/etc) benötigt. Die Idee/Absicht wäre, nach dem Sammeln der Informationen Diagramme zur Überprüfung zu erstellen (Verteilungsdiagramme, Datenflussdiagramme usw.).

Open Source bevorzugt zum Hinzufügen/Erweitern nach Bedarf (z. B. können Sicherheitsauthentifizierungsanforderungen und Protokolltyp zur „Verbindungs“-Definition hinzugefügt werden); aber ich nehme nichts über Excel-Tabellen.... :-)

(ps Ich hatte bereits Fragen, die von ServerFault und StackOverflow zu ähnlichen Softwarefragen/Empfehlungen abgelehnt wurden, also verweise weiter auf hier).

Antworten (1)

Nicht ganz das, wonach Sie suchen, aber Sie können vielleicht einen sehr guten Anfang machen, indem Sie sich Vagrant & Packer ansehen. Hier können Sie die Umgebung(en) angeben, die zum Ausführen, Konfigurieren und Testen Ihrer Software erforderlich sind, einschließlich Ihres Betriebssystems, der Betriebssystemeinstellungen, Datenbank, andere Tools usw. und generieren sie.

Aus „einfachen“ Text-/json-Dateien, die Sie versionieren können , können Sie also sowohl Ihre Entwicklungsumgebung als auch die Bereitstellungs-/Testumgebung definieren. Entwickler können eine VM mit VirtualBox, VMWare, Docker usw. sehr schnell hochfahren , und Ihre Tester und Installer können bei Bedarf identische Umgebungen generieren.

Für eine bereits vorhandene Lösung können Sie die erforderlichen Informationen iterativ generieren, indem Sie eine Vagrant-Box mit dem Basisbetriebssystem starten, das müssen Sie leider selbst wissen . Testen, um zu sehen, welche Abhängigkeiten nicht erfüllt sind. Schließen Sie die Box, fügen Sie die Abhängigkeit hinzu und starten Sie erneut.

Da dies die Informationen erfasst, die Sie benötigen, können Sie auch die Vagrant/Packer-Dateien für Ihre Diagramme usw. parsen.

Packer ist eines meiner Ziele, um eine JSON-Eigenschaftsdatei auszufüllen, wenn ich ein Image für einen neuen Kunden/eine neue Umgebung erstelle, aber möchte, dass die Informationen von „irgendwo“ kommen … dieses Tool, nach dem ich suche, ist der Ursprungspunkt . Ich habe mich nicht mit Templating-/Konventionsformeln beschäftigt, aber ich kann das trotzdem nachbearbeiten, sobald es eine "einzige Quelle" für alle Basisinformationen gibt.
Ich denke, Sie versuchen zu dokumentieren, was die Leute getan haben, anstatt iterativ zu konstruieren, was sie tun sollen! Der Prozess sollte Architekt/Analytiker sein, der festlegt, woraus das System bestehen soll, der Entwickler versucht es damit und weist auf die Mängel hin, damit sie dem Design hinzugefügt werden können.
„Der Prozess sollte Architekt/Analytiker sein, der festlegt, woraus das System bestehen sollte“, wenn dieser die oben identifizierten Informationen enthält, großartig! Wo speichern sie diese Informationen (außer Word/Excel)?
@dhartford - im Packer/Vagabund-System würde der Architekt/Analyst die Konfigurationsinformationen in der Packer-Spezifikationsdatei speichern, die dann in git/svn/hg unter die Versionskontrolle gestellt und zur Bereitstellung der Box(en), Image(s) verwendet werden würde ), etc. es Verarbeitung, die jedes Wort/Excel erzeugen könnte. Word ist zum Schreiben von Buchstaben, Excel zum Berechnen von Zahlen - sie sollten Endpunkte sein, keine Startpunkte.