启动时设置 HOSTNAME

启动时设置 HOSTNAME

我们的实验室小组刚刚购买了十几个新工作站。它们是戴尔的,所以也许它们会方便地用 报告其服务标签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/hostshostnamenetwork/interfaces文件。但是,修改这些文件就足够了吗?如何在 Ubuntu 开始设置之前,在启动的早期阶段执行“个性化”脚本?

我的计划是否因为其他无法预见的原因而变得糟糕?可能存在哪些隐藏的陷阱?

答案1

是的,更改这些文件就足够了。您可以使用命令hostnamectl轻松更改主机名。这些更改只需进行一次。因此,您可以通过rc.local或类似方式进行更改,运行一次,将其从导致其在启动时运行的任何东西中删除,然后重新启动一次,然后再继续执行其他操作。

如果重新启动需要做太多额外的工作,您可以尝试安排 Upstart 作业。具有条件的 Upstart 作业start on startup将尽早运行此作业。更好的是,具有条件的作业start on local-filesystems将尽早运行,以确保安装必要的文件系统。

相关内容