Изменение имени хоста без перезапуска через cloud-init работает неправильно
Я следовал этой теме во время написания своего скрипта cloud-init.
Я проверил, и у меня есть это в одной части моего скрипта boothook:
echo "HOSTNAME=$HOSTNAME" >> /etc/environment
echo "127.0.1.1 $HOSTNAME" >> /etc/hosts
echo "$HOSTNAME" > /etc/hostname
echo "$HOSTNAME" > /proc/sys/kernel/hostname
hostnamectl set-hostname $HOSTNAME
При первом входе в систему:
$ echo $HOSTNAME
aaa.bbbb.domain.org
$ cat /etc/hosts
127.0.1.1 aaa.bbbb.domain.org
$ cat /etc/environment
HOSTNAME=aaa.bbbb.domain.org
Но по какой-то причине я не могу понять:
$ cat /etc/hostname
aaa
$ cat /proc/sys/kernel/hostname
aaa
$ hostname
aaa
Не уверен почему! Есть какие-нибудь подсказки?
2 ответа
Я на самом деле обнаружил, после долгих экспериментов и исследований, что то, что я вижу, - это предполагаемое поведение, хотя оно отличается от того, к чему я привык в системах CentOS/RHEL.
В руководстве по развертыванию CentOS & RHEL говорится, что имя хоста должно быть полным доменным именем; Debian указывает, что имя хоста НЕ должно быть полным доменным именем.
Ядро поддерживает имя хоста системы. Этот файл должен содержать только системное имя хоста, а не полное доменное имя.
У меня все в порядке с этим (конечно, делает подсказки короче!) Я просто хотел убедиться, что я не делал что-то не так.
Вы должны отредактировать /etc/hosts
и добавьте имя хоста вот так:
127.0.0.1 aaa.bbbb.domain.org aaa.bbbb