Modellgetriebene Serverkonfiguration

 MDSD, Systemmanagement  Kommentare deaktiviert für Modellgetriebene Serverkonfiguration
Feb 292008
 

In der Regel sind die Anwendungsfälle für modellgetriebene Architekturen ist der Software-Entwicklung zu finden. Es gibt aber auch die Möglichkeit, die Konfiguration für eine ganze Server-Landschaft zu generieren. Zu diesem Zweck wird die Server-Landschaft als UML2-Modell modelliert. Dieses Modell entspricht dem Sollzustand. Um diesen in den Istzustand zu überführen, werden mittels openArchitectureWare aus dem Modell Konfigurationsdatien erzeugt. Für jeden Server entsteht so ein Verzeichnisbaum. Dieser Verzeichnisbaum wird mit scp -r auf die Zielmaschine kopiert. Danach wird ein Deploy-Script aufgerufen, das die betroffenen Dienste über die neue Konfiguration informiert.

Das Modell erfasst dabei sowohl Hardware, als auch Dienste. Die Hardware muss erfasst werden, wenn die Funktionstüchtigkeit überprüft werden soll. Dazu gehören Temperaturstände, Fehlerzustände von Festplatten, die über S.M.A.R.T. abgefragt werden können und auch Füllstände von Partitionen. Dabei kann eine langfristige Erfassung mit MRTG erfolgen, mit der auch Trends erfasst werden können. Eine schnelle Erfassung kann mit Nagios erfolgen. Das nützt besonders dann, wenn tatsächlich etwas schlagartig ausfällt.

An Software-Diensten werden folgende Dienste mitkonfiguriert:

  • Nagios/MRTG/SNMP
  • DHCP
  • LDAP
  • Apache/Webalizer
  • PAM über LDAP, passwd oder NIS
  • smartmontools
  • 3ware RAID-Controller
  • NTP
  • SSL
  • APC UPS Daemon

Alle diese Dienste sind mehr oder weniger miteinander verwoben. So liefert DHCP auch Informationen über NTP oder DNS aus. Auch der Apache kann sich unter Umständen an andere Dienste (z.B. LDAP) hängen. Auch Master-Slave-Konfigurationen sind möglich. Insbesondere bei OpenLDAP kann dieses Feature genutzt werden.

Es stellt sich die Frage, welche Vorteile die modellgetriebene Serverkonfiguration hat. Sicherlich ist dieser Weg sehr individuell und in ihrer ersten Form an die Gegebenheiten unserer eigenen Infrastruktur angepasst. Es hat sich gezeigt, dass ein großer Vorteil dann besteht, wenn Abhängigkeiten zwischen mehreren Servern bestehen. Dazu ist vor Allem Nagios, MRTG und SNMP zu nennen. Aber auch die Master-Slave-Konfiguration von LDAP, die auch als Load Balancing für die LDAP-Apache-Authentifizierung genutzt werden kann. Gegenüber dem klassischen Systemmanagement hat dieser Ansatz den Vorteil, dass ein Sollzustand definiert wird und nicht ein Istzustand ergründet wird, auf dem weitergearbeitet wird. Denn dieser Zustand kann auch schon fehlerhaft sein. Desweiteren lassen sich Unterlassungsfehler und Copy/Paste-Fehler vermeiden, was insgesamt die Qualität der Konfiguration steigert.

Unsere IT hat mit diesem Ansatz gute Erfahrungen gemacht, sodass die modellgetriebene Serverkonfiguration seit fast einem Jahr produktiv genutzt wird.