Die kurze Antwort lautet "OS Deployment Management", "Configuration Management" und "Software Packaging". Es folgt eine lange Antwort.
Ich möchte Daniel Pittmans Antwort mit einer Aufschlüsselung dessen ergänzen, was ein "System" in der Systemadministration ausmacht.
Ein System oder eine Umgebung besteht aus:
- Server
- Betriebssystem
- Aufbau
- Vendor-Pakete; und
- Lokale Pakete
Umhüllende diese werden Prozesse wie:
- Betriebssystembereitstellung oder Imaging
- Konfigurationsmanagement
- Softwarepaketverwaltung
- Auditing / Protokollierung
- Überwachung
- Backups
Und Sie möchten diese kombinieren, um nicht-funktionale Ziele zu erreichen, wie zum Beispiel:
- Wiederholbarkeit
- Wartbarkeit
- Messbarkeit
- Performance
- Verfolgbarkeit
- Testbarkeit
- Veränderlichkeit
Dies ist eine schnelle Gehirnerschütterung. Ich bin sicher, dass allen Listen mehr hinzugefügt werden könnte.
Ihre Frage berührt einige davon, ohne die spezifischen Wörter zu verwenden. Zum Beispiel möchten Sie in der Lage sein, einfach bereitzustellen und zurückzugelangen, dh Wartbarkeit wünschen; Sie möchten es in einer Testumgebung durchführen und testen, bis es bestanden ist, dh Wiederholbarkeit, Testbarkeit und Messbarkeit. Sie möchten VM-Images in die Versionskontrolle aufnehmen, weil Sie die Wiederholbarkeit von Betriebssystem- und Konfigurationsbereitstellungen wünschen.
Es gibt viele Tools, die Sie dabei unterstützen, von denen einige von Daniel erwähnt wurden. Einige andere sind:
- Kickstarts (RedHat-basiert), Preseed (Debian-basiert), WDS (MS Windows) für die Bereitstellung bekannter Betriebssystemumgebungen
- Spacewalk / Satellite (RedHat-basiert), Gruppenrichtlinien (MS Windows) für Konfiguration und Paketverwaltung
- YUM- und APT-Paketsysteme zum Generieren, Bereitstellen, Aktualisieren und Entfernen von Paketen (Sätze von Binärdateien, Daten und Konfigurationen, die eine Software umfassen)
- Nagios, OpenNMS und SCOM zur Überwachung
- Amanda, Bacula und Windows Backup Server für Backups
- Munin, PCP und Hyperic zur Leistungsüberwachung
- CVS, SVN, GIT oder Bazaar für die Versionskontrolle
- Hudson und Jenkins für das Build Management
- Selen und Roboter zum Testen
- Bugzilla, Request Tracker und Jira für Aufnahme, Kommunikation und Tracking
Auch dies ist keine umfassende Liste, aber etwas, das ich im Kopf habe, um mich anzuleiten, und hoffentlich hilft es Ihnen auch.