Hosts Datei unter MacOS umschalten

Ich freue mich immer wieder, dass ich zumindest in Teilen immer wieder etwas mit Webentwicklung bei uns an der Uni zu tun habe. In unserer schönen Plone-Welt muss ich dafür gerade beim Testen von neuen Funktionen und Plugins immer wieder zwischen Test- und Livesystemen hin- und herschalten. Unser Setup ist so ausgelegt, dass wir dazu auf dem jeweiligen Client, mit dem wir Testen die Einträge in der Hosts-Datei umstellen.
Zur Erklärung: Im Prinzip betreiben wir unseren Live-Park noch einmal in abgespeckter Form als identisches Test-Sytem, das nur unter einer anderen IP-Adresse fährt. Normalerweise fragt ein Rechner beim Aufruf einer URL den DNS-Server nach der zugehörigen IP-Adresse, bekomme eine Antwort und fragt dann den Webserver an. In der Hosts-Datei habe ich die Möglichkeit eigene Einträge anzulegen – für diese Einträge fragt mein Rechner dann nicht mehr den DNS-Server an, sondern nimmt direkt die Zuordnung aus der Hosts-Datei.

Beispiel:

  • Die URL unserer Support-Seite ist www.plone.uni-bonn.de -> der DNS-Server löst das mit folgender IP auf: 131.220.14.100
  • In der Hosts-Datei mache in einen Eintrag in der Form:
    131.220.xxx.xxx www.plone.uni-bonn.de
    Die „x“ stehen symbolisch für eine IP, dahinter kommt dann die URL. Mehrere URLs werden dabei dann einfach mit Leerzeichen aufgezählt (unser schöner Cluster hat derzeit knapp 600 URLs)

Im Prinzip kann man die Datei simpel mit einem Texteditor bearbeiten und sich darin Einträge für die unterschiedlichsten Anlässe eintragen (auskommentieren, damit es nicht berücksichtigt wird geht wie üblich mit vorangestellter Raute, also:

  • #131.220.xxx.xxx www.plone.uni-bonn.de

Für einzelne Einträge ist das noch ok, hat man jedoch viele unterschiedliche Einträge ist das doch schnell unübersichtlich. Unter MacOS gibt es eine nette Anwendung „gmask“, mit der man schlicht separate Hosts-Dateien fahren kann und mit einem Klick umschaltet, welche gerade aktiv sein soll. Damit endet dann die Zeit der vielen auskommentierten Zeilen und es gibt für die größeren Anlässe eigene Hosts-Dateien. Ich finde das zum Arbeiten ganz praktisch.
Ein großer Vorteil ist, dass ich damit nicht nur das Backend testen kann, sondern den kompletten Weg, da ich ja unter der „Original-URL“ arbeite und damit auch Apache-Rewrites etc. mit der finalen URL auf mögliches Fehlverhalten testen kann.

Unter MacOS war es nach einer Änderung der Hosts-Datei früher meist notwendig, den DNS-Cache zu löschen. Das geht in der Shell via:

  • dscacheutil -flushcache

Seit MacOS Lion muss ich das meist nicht mehr machen – warum auch immer. Ein Browser-Neustart kommt ab und an auch dazu, je nach Browser cacht der auch noch DNS-Einträge.