通过 cloud-init 更改主机名而不重启无法正常工作

通过 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

不知道为什么!有什么线索吗?

答案1

事实上,经过大量的修改和研究后我发现,我所看到的是预期的行为,尽管它与我在 CentOS/RHEL 系统上习惯的不同。

总结这里

CentOS 和 RHEL 部署指南 说主机名应该是 FQDN;Debian 指定 主机名不应该是 FQDN。

内核维护系统主机名。 该文件应该只包含系统主机名, 不是完全合格的域名。

我对这种方式很满意(确实可以使 shell 提示更短!)我只是想确保我没有做错什么。

答案2

您必须/etc/hosts像这样编辑并添加主机名:

127.0.0.1    aaa.bbbb.domain.org aaa.bbbb

相关内容