重启时 CoreOS 主机名

重启时 CoreOS 主机名

最近,我在 DigitalOcean 上创建了一个 CoreOS droplet。一切都运行良好,除了我无法更改 VPS 的主机名。当我将主机名更改为它应该使用的名称sudo hostnamectl set-hostname myhostname.org(记录的更改方式)时,它确实会在整个系统范围内更改主机名(例如/etc/hostname反映新的主机名)。但是,当我重新启动 VPS 时,主机名会恢复到以前的状态。

这可能不是巧合,但主机名总是会恢复为 droplet 的原始名称。大约一周前,我已经将该名称更改为正确的主机名。我读过有关 DHCP 在重启时影响主机名的故事,但我无法找到在 CoreOS 上避免这种情况的解决方案。

如何更改 CoreOS 的主机名,使其在重启后保持不变?

提前致谢!

答案1

在 DigitalOcean(以及其他一些云提供商;例如 Openstack)上,它们在机器每次启动时提供元数据(通过 cloud-config 或通过您在 DigitalOcean Web 界面中提供的选项提供)。当您为 droplet/VM 赋予名称时,您向元数据服务表示您希望主机名被称为该值。cloud-config 正在遵守 DigitalOcean 元数据服务提出的请求。这实际上是一种设计模式,在它之外操作对我来说就像试图避免在 Rails 中使用约定优于配置。您可以这样做,但这只会让事情变得更加困难。

在 DigitalOcean 网络界面中,你可以重命名 Droplet,选择 Droplet->“设置”->“重命名”

至于为什么上一个答案中的选项不存在,CoreOS 没有提供 Python云初始化必须用编译语言重写(因此它被写成。要查看 DigitalOcean 上的元数据,请登录主机并运行以下命令:

$ curl http://169.254.169.254/metadata/v1/user-data

相关内容