Настройка HOSTNAME при запуске

Настройка HOSTNAME при запуске

Наша лабораторная группа только что приобрела около дюжины новых рабочих станций. Это Dell, поэтому, возможно, для удобства они сообщают свой сервисный тег с помощью dmidecode -s system-serial-number. Мы думаем использовать Clonezilla для простого развертывания образов на всех них, но для каждого из них нужно задать определенное имя хоста и статический IP-адрес. Поэтому объединение этих двух кажется простым с помощью поиска, например:

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или что-то подобное может затем создать файлы /etc/hosts, hostname, и network/interfacesиз некоторых шаблонов. Однако достаточно ли изменить эти файлы, и как мне выполнить скрипт "персонализации" на самом раннем этапе загрузки, прежде чем Ubuntu начнет настраивать что-то?

Может ли мой план оказаться плохим по какой-то непредвиденной причине? Какие скрытые подводные камни могут меня поджидать?

решение1

Да, достаточно изменить эти файлы. Вы можете использовать hostnamectlкоманду, чтобы легко изменить имя хоста. Эти изменения нужно сделать только один раз. Поэтому вы можете сделать изменения через rc.localили что-то подобное, чтобы запустить один раз, удалить себя от того, что вызвало его запуск при загрузке, а затем перезагрузить его, прежде чем продолжать делать другие вещи.

Если перезагрузка — слишком много лишней работы, можно попробовать запланировать задание Upstart. Задание Upstart, у которого есть start on startupусловие, запустит его как можно раньше. А еще лучше, задание с start on local-filesystemsзапустится достаточно рано, чтобы убедиться, что необходимые файловые системы смонтированы.

Связанный контент