В более старых версиях Ubuntu (с помощью классического установщика) я мог указать имя хоста с моего DHCP-сервера. Затем я передал его, используя netcfg/get_hostname=
опция параметров ядра.
По состоянию на 20.04 классического установщика больше не существует. Как я могу изменить имя хоста, используя свой DHCP-сервер вместо фиксированного имени хоста в файле данных пользователя?
Я пробовал использовать late-command для использования сценария оболочки для изменения имени хоста с помощью sed, но это не сработало.
Вы можете сделать это, используя скрипт для перехвата DHCP.
sudoedit /etc/dhcp/dhclient-exit-hooks.d/hostname
#!/bin/sh
# Filename: /etc/dhcp/dhclient-exit-hooks.d/hostname
# Purpose: Used by dhclient-script to set the hostname of the system
# to match the DNS information for the host as provided by
# DHCP.
#
# Do not update hostname for virtual machine IP assignments
if [ "$interface" != "eth0" ] && [ "$interface" != "wlan0" ]
then
return
fi
if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
&& [ "$reason" != REBIND ] && [ "$reason" != REBOOT ]
then
return
fi
echo dhclient-exit-hooks.d/hostname: Dynamic IP address = $new_ip_address
hostname=$(host $new_ip_address | cut -d ' ' -f 5 | sed -r 's/((.*)[^\.])\.?/\1/g' )
echo $hostname > /etc/hostname
hostname $hostname
echo dhclient-exit-hooks.d/hostname: Dynamic Hostname = $hostname
chmod a+r /etc/dhcp/dhclient-exit-hooks.d/hostname
sudo dhclient -r
sudo dhclient
Используя часть ответа от Вот, если вы установите имя хоста на localhost
в разделе идентификаторов автоматической установки YAML при следующей загрузке компьютера будет настроено имя хоста, выданное DHCP.
Для установки имени хоста из DHCP во время установки вам, вероятно, потребуется использовать Ответ Кристофера Х в разделе ранних команд.