重啟時的 CoreOS 主機名
最近,我在 DigitalOcean 上創建了一個 CoreOS droplet。一切正常,除了我無法更改我的 VPS 的主機名。當我將主機名更改為它應該使用
sudo hostnamectl set-hostname myhostname.org
的(記錄的這樣做的方式)時,它確實會更改主機名系統範圍(例如/etc/hostname
反映新的主機名)。但是,當我重新啟動 VPS 時,主機名會恢復到以前的狀態。這可能不是巧合,但主機名總是恢復為 droplet 的原始名稱。大約一周前,我已經將該名稱更改為正確的主機名。我已經閱讀了有關 DHCP 在重新啟動時影響主機名的故事,但我無法在 CoreOS 上找到避免這種情況的解決方案。
如何更改 CoreOS 的主機名,使其在重啟後保持不變?
提前致謝!
在 DigitalOcean(和其他一些雲提供商;例如 Openstack)上,他們在機器的每次啟動時提供元數據(通過 cloud-config 或通過您在 DigitalOcean Web 界面中提供的選項提供)。當您在 droplet/VM 上賦予名稱時,您向元數據服務表明您希望將主機名稱為該值。cloud-config 尊重 DigitalOcean 元數據服務提出的請求。這實際上是一種設計模式,並且在它之外執行我很想避免在 Rails 中使用約定而不是配置。你可以做到,但你只會讓自己變得更難。
在 DigitalOcean Web 界面中,您可以重命名液滴選擇液滴->“設置”->“重命名”
至於為什麼上一個答案中的選項不存在,CoreOS 沒有提供 Python cloud-init必須用編譯語言重新編寫(因此它是用Go編寫的。要查看 DigitalOcean 上的元數據,登錄主機並執行命令:
$ curl http://169.254.169.254/metadata/v1/user-data