主机名不断被恢复

主机名不断被恢复

我在 Azure 上运行的 Ubuntu 14.04.1 LTS VM 上遇到了一个奇怪的问题。我的主机名不断恢复为与我的 Azure 部署相关的名称。简而言之:系统主机名不相等,cat /etc/hostname并且/etc/hostname保持/etc/hosts不变。

这是我的/etc/hostname

dbc1mdb

这是我的 /etc/hosts

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

10.0.1.6 dbc1mdb
10.0.1.7 dbc1sdb1

我真的抓狂了。有什么建议吗?

更新:我现在怀疑 DHCP 客户端或Azure Linux 代理正在弄乱主机名。

答案1

我想我有点迟了,但在 Ubuntu 中,Ubuntu Cloud 软件包似乎是造成这种情况的原因。这个答案应该仍然有意义,因为它适用于 18.04 LTS。

这些包的配置数据似乎位于中/var/lib/cloud/data/var/lib/cloud/data/set-hostname具体来说是以下文件:

{
 "fqdn": "<your fqdn>",
 "hostname": "<your hostname>"
}

据我所知,主机名是在启动时由这些包中的配置脚本设置的。

答案2

它可能是一个在后台运行的脚本。

您有 2 个选择:

1)删除所有更改主机名的内容。

2)更改您的主机名/etc/hostname并运行sudo chattr +i /etc/hostname以防止它被更改。

答案3

我在从云映像安装的 Ubuntu 22.04 服务器中遇到了同样的问题。对我来说,这是因为 cloud-init 不断重置主机名,因为我在创建用于安装 VM 的 cloud-init 配置文件时设置了主机名。

最后,我要做的就是通过在特定位置创建一个空文件来禁用 cloud-init 运行:

sudo touch /etc/cloud/cloud-init.disabled

我可以这样做,因为我在自己的 KVM 主机中设置了自己的客户端。如果使用云提供商,则可能对你来说不是一个可行的解决方案,因为可能需要 cloud-init 来继续运行这些启动步骤。

直到我读到另一个 Ask Ubuntu 帖子,但之后会执行一组不同的步骤。有关详细信息,以下是 cloud-init 启动阶段文档

答案4

经历了相同的场景和问题。删除 cloud-init、cloud-init-utils 和 walinuxagent 包可解决问题。

sudo apt-get remove cloud-init
sudo apt-get remove cloud-init-utils
sudo apt-get remove walinuxagent

上述软件包名称可能不准确,也可能需要删除相关软件包和/或配置。YMMV。

相关内容