Назад | Перейти на главную страницу

Автоматическая установка сервера Ubuntu 20.04: как получить имя хоста с DHCP-сервера?

В более старых версиях Ubuntu (с помощью классического установщика) я мог указать имя хоста с моего DHCP-сервера. Затем я передал его, используя netcfg/get_hostname= опция параметров ядра.

По состоянию на 20.04 классического установщика больше не существует. Как я могу изменить имя хоста, используя свой DHCP-сервер вместо фиксированного имени хоста в файле данных пользователя?

Я пробовал использовать late-command для использования сценария оболочки для изменения имени хоста с помощью sed, но это не сработало.

Вы можете сделать это, используя скрипт для перехвата DHCP.

  1. Создайте новый файл:
sudoedit /etc/dhcp/dhclient-exit-hooks.d/hostname
  1. Вставьте следующий код в файл, сохраните и закройте:
#!/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
  1. Сделайте файл доступным для чтения ...
chmod a+r /etc/dhcp/dhclient-exit-hooks.d/hostname
  1. Освободить существующую аренду DHCP ...
sudo dhclient -r
  1. И получить новый.
sudo dhclient

Используя часть ответа от Вот, если вы установите имя хоста на localhost в разделе идентификаторов автоматической установки YAML при следующей загрузке компьютера будет настроено имя хоста, выданное DHCP.

Для установки имени хоста из DHCP во время установки вам, вероятно, потребуется использовать Ответ Кристофера Х в разделе ранних команд.