Hostname via DHCP setzen
Hostname via DHCP setzen
Hi,
ich habe hier eine ganze Reihen an Maschinen die das gleiche Image laufen haben und alle samt via DHCP konfiguriert werden. Nun hätte ich gern den Hostnamen von jeder Maschine gerne richtig gesetzt. Gibt es da einen Debian-Weg?
Gruß
ich habe hier eine ganze Reihen an Maschinen die das gleiche Image laufen haben und alle samt via DHCP konfiguriert werden. Nun hätte ich gern den Hostnamen von jeder Maschine gerne richtig gesetzt. Gibt es da einen Debian-Weg?
Gruß
Re: Hostname via DHCP setzen
Bei qemu/kvm gibt es die Option '-net hostname=name' für den internen dhcp-Server.
Andernfalls '-net macaddr=mac' und den externen dhcp-Server darauf konfigurieren, zBsp. dnsmasq.conf:
Das dhcp-Clientprogramm des Gastes sollte diese Option dann aber auch abfragen,
bei isc-dhcp-client so per default, dhclient.conf:
Gilt so auch für andere Virtualisierer, dhcp-Server und dhcp-Klienten.
Andernfalls '-net macaddr=mac' und den externen dhcp-Server darauf konfigurieren, zBsp. dnsmasq.conf:
Code: Alles auswählen
dhcp-host=mac,hostname,ip-addr
bei isc-dhcp-client so per default, dhclient.conf:
Und auch umsetzen, wofür eventuell noch ein *-hooks.d/-Skript nötig ist.Code: Alles auswählen
... request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers; ...
Gilt so auch für andere Virtualisierer, dhcp-Server und dhcp-Klienten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Hostname via DHCP setzen
Ich verwalte den DHCP Server leider nicht selber. Wie kann ich vom Client aus herausbekommen, ob der Name gesendet wird? request host-name ist in der dhclient.conf scheinbar standardmäßig aktiv.
Für den Fall das ich den Hostname nicht via DHCP bekommen sollte habe ich mal ein kleines Script geschrieben, welches den Hostname über ifconfig und hosts rausbekommt und wollte das ganze beim Bootprozess mit aktualisieren lassen. Leider scheint Aufgrund der nun parallelen Abarbeitung der init-Skripte dhcp die IP zu spät zu beziehen. Ich habe zwar "Required-Start: networking" definiert, aber wenn das Skript ausgeführt wurde ist die IP noch nicht da. Kann ich da irgendwas machen außer einem Sleep ?
Für den Fall das ich den Hostname nicht via DHCP bekommen sollte habe ich mal ein kleines Script geschrieben, welches den Hostname über ifconfig und hosts rausbekommt und wollte das ganze beim Bootprozess mit aktualisieren lassen. Leider scheint Aufgrund der nun parallelen Abarbeitung der init-Skripte dhcp die IP zu spät zu beziehen. Ich habe zwar "Required-Start: networking" definiert, aber wenn das Skript ausgeführt wurde ist die IP noch nicht da. Kann ich da irgendwas machen außer einem Sleep ?
Re: Hostname via DHCP setzen
Wenn Du keinen Einfluß auf das vom DHCP-Server gesendete hast,
dann ändere halt die /etc/hostname der VMs.
Falls der dann durch Anweisung vom DHCP-Server geändert wird,
entferne die request-Anweisung für den hostname aus der dhclient.conf.
Wenn der DHCP-Server-Admin, wohl auch der Netz-Admin, das nicht so will, wird er sich schon melden.
Erweiterte/Angepaßte Versionen dieser Skripte können auch dort eingepflegt werden.
dann ändere halt die /etc/hostname der VMs.
Falls der dann durch Anweisung vom DHCP-Server geändert wird,
entferne die request-Anweisung für den hostname aus der dhclient.conf.
Wenn der DHCP-Server-Admin, wohl auch der Netz-Admin, das nicht so will, wird er sich schon melden.
Es gibt /etc/dhcp/*hooks.d/debug, die ermittelte Werte ausgeben.Wie kann ich vom Client aus herausbekommen, ob der Name gesendet wird? request host-name ist in der dhclient.conf scheinbar standardmäßig aktiv.
Erweiterte/Angepaßte Versionen dieser Skripte können auch dort eingepflegt werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Hostname via DHCP setzen
Genau das wollte ich nicht. Ich wollte verhindern in jede VM jedes mal rein zu müssen. Sind aktuell über 30 Stück und werden noch mehr. Und nach einem neuen Clonen müsste ich es dann wieder anpassen.rendegast hat geschrieben:Wenn Du keinen Einfluß auf das vom DHCP-Server gesendete hast,
dann ändere halt die /etc/hostname der VMs.
Danke. Nun weiß ich definitiv, dass der hostname nicht gesendet wird. Also doch mein eigenes Script. Oder gibt es doch noch was besseres?rendegast hat geschrieben: Es gibt /etc/dhcp/*hooks.d/debug, die ermittelte Werte ausgeben.
Re: Hostname via DHCP setzen
Das hat nix mit der Verteilung über DHCP zu tun, aber mit clusterssh kannst du über eine SSH-Sitzung simultan mehrere Server steuern. Zum Beispiel, um Configs umzustellen. Es könnte für die Einrichtung ganz nützlich werden.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Hostname via DHCP setzen
Hi,Cae hat geschrieben:Das hat nix mit der Verteilung über DHCP zu tun, aber mit clusterssh kannst du über eine SSH-Sitzung simultan mehrere Server steuern. Zum Beispiel, um Configs umzustellen. Es könnte für die Einrichtung ganz nützlich werden.
Gruß Cae
ich kenne clusterssh. Ist ein nettes Tool. Aber: ich muss damit 1x in jedes Maschine rein. Und das jedes mal, wenn ich die Maschinen neu clone. Genau das wollte ich ja verhindern. Ich habe nun ein kleines Script geschrieben:
Code: Alles auswählen
IP=`/sbin/ifconfig | grep xxx.xxx. | awk '{print $2}' | awk -F: '{print $2}'`
HOSTNAME=`/usr/bin/host $IP | awk '{ print $NF }' | awk -F. '{print $1}'`
echo $HOSTNAME > /etc/hostname
hostname $HOSTNAME
Gruß
Re: Hostname via DHCP setzen
Einfach die /etc/hostname leer machen und den Rechner mal neu starten, dann wird der Name vom DHCP gesetzt
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: Hostname via DHCP setzen
Hallo!
Der "host"-Befehl macht ein Reverse-Lookup:
Hat das denn wirklich so bei dir funktioniert?
Gruß, habakug
Der "host"-Befehl macht ein Reverse-Lookup:
Da ist also ein häßlicher Punkt am Ende des Hostnamens. Der sollte weg:man host hat geschrieben:[...]host will by default perform a reverse lookup for that address.
Code: Alles auswählen
# host `/sbin/ifconfig | grep 192 | awk '{print $2}'` | awk '{print $5}'| sed 's/\(.*\)./\1/' > /etc/hostname
Gruß, habakug
Re: Hostname via DHCP setzen
Ich habe gelernt, dass Debian in dem Fall "(none)" als hostnamen setzt. Da ich den Hostnamen nicht via DHCP bekomme bleibt hostname leer.TBT hat geschrieben:Einfach die /etc/hostname leer machen und den Rechner mal neu starten, dann wird der Name vom DHCP gesetzt
Gruß
Re: Hostname via DHCP setzen
Also obiges Skript funzt gut. Bis auf den Fakt, dass ich noch ein Sleep davor bauen musste, da die IP während des Bootprozesses nicht schnell genug da ist. Und dank "awk -F. '{print $1}'`" ist da auch kein Punkt. Zumindest nicht bei mirhabakug hat geschrieben:Hallo!
Der "host"-Befehl macht ein Reverse-Lookup:Da ist also ein häßlicher Punkt am Ende des Hostnamens. Der sollte weg:man host hat geschrieben:[...]host will by default perform a reverse lookup for that address.Hat das denn wirklich so bei dir funktioniert?Code: Alles auswählen
# host `/sbin/ifconfig | grep 192 | awk '{print $2}'` | awk '{print $5}'| sed 's/\(.*\)./\1/' > /etc/hostname
Gruß, habakug
Gruß
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: Hostname via DHCP setzen
Hallo!
Ich hatte den Feldtrenner heute morgen wohl gar nicht gesehen.
So passt es besser.
Gruß, habakug
Ich hatte den Feldtrenner heute morgen wohl gar nicht gesehen.
Code: Alles auswählen
# /usr/bin/host `/sbin/ifconfig | grep 192 | awk '{print $2}'` | awk '{print $5}'| awk -F. '{print $1}' > /etc/hostname
Gruß, habakug
Re: Hostname via DHCP setzen
ok, in unserem Netz wird der hostname vom DHCP mitgeschickt, da ist zwar /etc/hostname leer, aber es wird nicht "none" angezeigt sondern schön Client01 ... Clientxydank hat geschrieben:Ich habe gelernt, dass Debian in dem Fall "(none)" als hostnamen setzt. Da ich den Hostnamen nicht via DHCP bekomme bleibt hostname leer.TBT hat geschrieben:Einfach die /etc/hostname leer machen und den Rechner mal neu starten, dann wird der Name vom DHCP gesetzt
Gruß