Das Tool
Laptops sind (meistens) (mehr oder weniger) portabel. Sie müssen sich also viele verschiedene Dinge in ihren Netzwerkanschlüssen gefallen lassen; Andere Konfigurationen, Netze die mit PEAP gesichert sind, Luftnetze, wechselnde Drucker und Windowsshares, etcetc.
Auch zu Hause gibt es unter Umständen Konfigurationen mit und ohne externem Monitor, in verschiedenen Netzwerkzonen (jaa, das gibts wirklich auch zu Hause …) etcetc pipapo.
Natürlich kann man sich das automagisch erledigen lassen. Unter Debian mit ifupdown, etc… Ich mags aber unter meiner Kontrolle auf mein Kommando. Switchconf ist ein kleines, feines Tool, dass die Aufgabe elegant und einfach löst. Es kann für sich angewendet oder von einem, anderen Skript getriggert werden.
Funktionsweise
In einem konfigurierbaren Verzeichnis (normalerweise /etc/switchconf) werden Verzeichnisse für die Konfigurationen angelegt. Beispielsweise home und work. Dort kann nun ein kompletter Verzeichnisbaum mit den Dateien die zu dieser Konfiguration gehören aufgebaut werden; beispielsweise ein /etc/switchconf/home/etc/network/interfaces und ein /etc/switchconf/work/etc/network/interfaces. Das Kommando
grast nun das Ganze /etc/switchconf/home ab und erstellt symbolische Links (konfigurierbar, es kann auch hardlinken und kopieren) vom System auf diese Konfiguration. Also:
/etc/network/interfaces → /etc/switchconf/home/etc/network/interfaces
Auf die Arbeitskonfiguration schaltet es um mittels:
Und der Link sieht so aus:
/etc/network/interfaces → /etc/switchconf/work/etc/network/interfaces
Weiter gibt es noch die Verzeichnisse /etc/switchconf/before.d und /etc/switchconf/after.d. Alle Skripts in before.d werden vor, alle in after.d nach der Umstellung ausgeführt, damit können Daemons (Cups, PCMCIA, XSupplicant, …) neu gestartet werden damit sie die neue Konfiguration einlesen.
Mögliche Lösungen
- Netzwerk
- Die Datei /etc/network/interfaces für jede Konfiguration anpassen. Bei statischem DNS eventuell noch /etc/resolv.conf.
- Windows Shares
- Die Datei /etc/fstab und eventuell die Credentials für jede Konfiguration anpassen.
- Zweitmonitor, X-Auflösung, etc…
- Die Datei /etc/X11/xorg.conf für jede Konfiguration anpassen.
- Drucker
- Die Datei /etc/cups/printers.conf für jede Konfiguration anpassen.
- XSupplicant, WPA_Supplicant
- Die Datei /etc/default/xsupplicant für jede Konfiguration anpassen. ENABLED auf 0 oder 1 setzen, je nachdem ob man ihn will oder nicht…
Es wäre noch mehr denkbar wie SMTP-Host, Hintergrundbild, …
Switchconf kann auch von Netzwerkdetektoren wie laptop-netconf oder Guessnet angestossen werden. Ich finde sein Konzept etwas transparenter wie die eingebauten Monster dieser Produkte… Und vorallem kann man immernoch von Hand umschalten…