Unsere Laborgruppe hat gerade etwa ein Dutzend neue Workstations gekauft. Es sind Dells, also melden sie ihren Service-Tag vielleicht ganz praktischerweise mit dmidecode -s system-serial-number
. Wir denken darüber nach, Clonezilla zu verwenden, um Images einfach auf allen zu verteilen, aber sie müssen alle mit einem bestimmten Hostnamen und einer statischen IP-Adresse versehen werden. Die Kombination der beiden scheint also unkompliziert zu sein, indem man eine Suche wie diese verwendet:
declare -A tags
tags=(["HKX321K"]="ws1name 10.32.54.10"
["HBZ321G"]="ws2name 10.32.54.11"
)
tag=$(sudo dmidecode -s system-serial-number)
read -a nameip <<< "${tags[$tag]}"
wsname=${nameip[0]}
wsip=${nameip[1]}
sed
oder ähnliches könnte dann aus einigen Vorlagen /etc/hosts
, hostname
, und network/interfaces
Dateien erstellen. Ist es jedoch ausreichend, diese Dateien zu ändern, und wie führe ich das Skript „Personalisierung“ sehr früh beim Booten aus, bevor Ubuntu mit der Einrichtung beginnt?
Ist mein Plan aus einem anderen, unvorhergesehenen Grund schlecht? Welche versteckten Fallstricke könnten lauern?
Antwort1
Ja, das Ändern dieser Dateien ist ausreichend. Sie können den hostnamectl
Befehl verwenden, um den Hostnamen einfach zu ändern. Diese Änderungen müssen nur einmal vorgenommen werden. Sie können die Änderungen also über rc.local
oder etwas Ähnliches vornehmen, das einmal ausgeführt wird, sich von dem entfernt, was die Ausführung beim Booten verursacht hat, und dann neu startet, bevor Sie mit anderen Dingen fortfahren.
Wenn ein Neustart zu viel zusätzliche Arbeit bedeutet, können Sie versuchen, einen Upstart-Job zu planen. Ein Upstart-Job mit einer start on startup
Bedingung führt diesen so früh wie möglich aus. Noch besser wäre ein Job, der start on local-filesystems
früh genug ausgeführt wird, um sicherzustellen, dass die erforderlichen Dateisysteme gemountet sind.