最近,我在DigitalOcean上创build了一个CoreOS液滴。 一切运作良好,除了我无法改变我的VPS的主机名。 当我将主机名更改为使用sudo hostnamectl set-hostname myhostname.org (这样做的logging方式)时,它确实更改了系统范围内的主机名(例如/etc/hostname反映了新的主机名)。 但是,当我重新启动VPS时,主机名将恢复到原来的状态。
这可能不是巧合,但主机名总是回复到液滴的原始名称。 大约一个星期前我已经把这个名字改成了正确的主机名。 我已经阅读了有关DHCP在重新启动时影响主机名的故事,但我无法find解决scheme来避免在CoreOS上。
如何更改CoreOS的主机名,使其在重新启动后保持不变?
提前致谢!
在DigitalOcean(以及其他云提供商;例如Openstack)上,他们在机器的每次启动时提供元数据(通过cloud-config或通过DigitalOcean Web界面提供的选项提供)。 当您向您指定的元数据服务的虚拟机/虚拟机上添加名称时,您希望主机名被称为该值。 cloud-config正在履行DigitalOcean元数据服务提出的要求。 这实际上是一个devise模式,在这个模式之外进行操作就像我试图避免在Rails中configuration约定。 你可以做到这一点,但是你只能让事情变得更加困难。
在DigitalOceannetworking界面中,您可以重命名液滴select液滴 – >“设置” – >“重命名”
至于为什么以前的答案中不存在的选项,CoreOS并没有发布Python cloud-init必须用编译语言重新编写(因此它被写入Go 。)要查看DigitalOceanlogin到主机的元数据并运行命令:
$ curl http://169.254.169.254/metadata/v1/user-data