Mit E-Mail-Diensten muss sich jeder Administrator früher oder später einmal beschäftigen. Das zur CeBIT erscheinende ADMIN 02/2012 gibt dazu Praxis-Tipps und ... (mehr)

Updates vom Gast

Soll nun stattdessen das Gastsystem das DNS-Update initiieren, hängt man den Aufruf dazu am besten ebenfalls in ein Startup-Skript ein, der Einfachheit halber zum Beispiel in »/etc/rc.local« . Im Gastsystem den gesetzten Hostnamen zu ermitteln, ist mit dem Befehl »hostname« trivial. Die IP-Adresse lässt sich zwar mit »ip addr show dev eth0« oder »ifconfig eth0« leicht ausgeben, sie aus dem Datenwust herauszufiltern, erfordert jedoch noch ein wenig Textverarbeitung.

In eine Falle kann man hier übrigens leicht dank der mittlerweile auch auf der Konsole eingezogenen Lokalisierung tappen, die auf Deutsch statt »inet addr« lieber »inet Adresse« ausgibt. Um sicherzugehen, sollte man dem Aufruf also die Standard-Locale voranstellen. Der Aufruf des Update-Skripts vom Gastsystem aus, sieht damit so aus wie in Listing 2 .

Listing 2

rc.local

 

Bleibt auf Host-Seite noch eben dieses Skript zu schreiben, das der Gast aufruft und das die PowerDNS-Datenbank aktualisiert. Natürlich muss man dazu die Struktur der Tabelle kennen und überprüfen, ob der entsprechende Eintrag schon existiert. Der Rest ist jedoch, zum Beispiel in Perl, schnell geschrieben, wie Listing 3 zeigt. Der Domain-Name »my.org« ist hierbei fest einkodiert, alternativ könnte man ihn auch übergeben, müsste dazu aber die Datenbankaufrufe anpassen. Das Ergebnis der dynamischen Updates kann man, wenn alles gut gegangen ist, im Poweradmin-Frontend bewundern ( Abbildung 2 ).

Listing 3

update-dns

 

Abbildung 2: Quick-and-Dirty-Updates mit PowerDNS: Das grafische Frontend Poweradmin zeigt das Ergebnis.

Um sich per Hostnamen einloggen zu können, müssen alle beteiligten Systeme, der Host wie auch die Gäste, den selbst konfigurierten Nameserver verwenden. Die dazu nötige Datei »/etc/resolv.conf« lässt sich mit den oben beschriebenen Methoden in den Gast-Systemen installieren. Hierbei erweist es sich als Schwierigkeit, dass beim Booten per DHCP die Datei automatisch überschrieben wird. Das zu verhindern, ist schwieriger als man denkt, denn die vorgeschlagene Einstellung »PEERDNS=no« in »/etc/sysconfig/network-scripts/ifcfg-eth0« funktioniert nicht in allen Fällen. Alternativ soll es laut verschiedenen Blogs funktionieren, in »/etc/dhcp/dhclient-enter-hooks« die beiden zuständigen Funktionen zu überschreiben:

make_resolv_conf(){
 exit 0
}
change_resolv_conf(){
 exit 0
}

Versagt auch diese Methode, bleibt als letzter Ausweg wohl nur noch übrig, das DHCP-Client-Skript »/sbin/dhclient-script« direkt zu editieren.

Zu verbessern gibt es bei der hier vorgestellten Lösung noch vieles, angefangen von der Namensverwaltung für virtuelle Maschinen über das Storage-Management bis hin zur Namensauflösung. Dennoch zeigt dieser Artikel, wie man dank der Libvirt-Tools mit wenig Aufwand virtuelle Maschinen klonen und konfigurieren kann und dabei so manche Hürde überwindet.

Auch die Entwickler von Libvirt, Guestfish und Co. arbeiten weiter fleißig an ihrer Software und haben eine Menge guter Ideen, deren Implementierung nur der Mangel an Zeit verhindert.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Zugriff auf virtuelle Disk-Images mit Libguestfs

Die Libvirt vereinheitlicht den Zugriff auf virtuelle Maschinen unterschiedlicher Couleur zur Laufzeit. Mit der Libguestfs können Administratoren und Programmierer die dazu gehörigen Disk-Images bearbeiten.
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023