Festlegen des Hostnamens beim Start

Festlegen des Hostnamens beim Start

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]}

sedoder ähnliches könnte dann aus einigen Vorlagen /etc/hosts, hostname, und network/interfacesDateien 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 hostnamectlBefehl verwenden, um den Hostnamen einfach zu ändern. Diese Änderungen müssen nur einmal vorgenommen werden. Sie können die Änderungen also über rc.localoder 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 startupBedingung führt diesen so früh wie möglich aus. Noch besser wäre ein Job, der start on local-filesystemsfrüh genug ausgeführt wird, um sicherzustellen, dass die erforderlichen Dateisysteme gemountet sind.

verwandte Informationen