如何在 Ubuntu 9.10 上根据 DNS 名称设置主机名?

如何在 Ubuntu 9.10 上根据 DNS 名称设置主机名?

动机

我必须管理通过复制模板(VmWare 映像)创建的许多虚拟机。

问题

现在我遇到的问题是,模板中的文件/etc/hostname包含一个给定名称,我想为模板的每个副本更改该名称。

事实

网络接口由 DHCP 配置。存在 DNS 条目。系统是 Ubuntu 9.10 服务器。

问题

我想知道我是否可以配置模板,以便在启动时它根据其 DNS 名称设置其主机名。

我可以创建一个初始化脚本来解析 IP 地址、进行 DNS 查找并相应地设置主机名。

但有没有更简单的方法呢?

答案1

如果机器已经有 IP 地址,尝试更改主机名是个坏主意。定义主机名应该只在系统/VM 启动期间进行。

好消息是:如果虚拟机是基于 Linux[1] 的,并且具有唯一的 MAC 地址[2],则可以通过 DHCP 设置主机名。dhcpd.conf 中的适用部分应类似于以下内容:

主机 box1 { 硬件以太网 00:AC:08:22:FC:B2;固定地址 192.168.2.5;选项主机名“box1”;}

建议查看您正在运行的 DHCP 服务器的文档。

限制/评论:

  • 您可能还想定义“选项域名”
  • 只能在虚拟机启动期间设置(覆盖系统的现有主机名会导致问题)
  • 您可能需要在 dhclient 配置中定义“请求主机名”
  • DHCP 服务器必须与客户端位于同一网络“段”(即远程计算机的 MAC 地址不“可见”)

[1] 我最后知道的是 Windows 不支持此功能。不过,时间已经过去很久了,所以这可能不再是一个准确的说法。

[2] 假定为真,因为 VMware 不会运行具有相同 MAC 地址的多个虚拟机。

相关内容