我在 EC2 上使用 Amazon Linux,在设置时将以下云初始化指令作为用户数据传递:
#cloud-config
hostname: example.com
locale: en_US.utf8
manage_etc_hosts: true
manage_resolv_conf: false
package_update: true
package_upgrade: true
timezone: Europe/Berlin
一切正常,除了主机名。不知何故它没有改变,即使重新启动后它仍然是 IP 地址。如果我对 Red Hat Enterprise Linux AMI 进行完全相同的尝试,一切都正常 - 包括主机名。有人知道我如何在 Amazon Linux 上也做到这一点吗?
答案1
我遇到过同样的问题,好几次了。我发现唯一的解决方法是使用 crontab 强制在重启时设置它;
类型:
crontab -e -u root
输入:
@reboot /usr/bin/hostname web1.whatever.com
您可能需要确认的位置hostname
(使用which hostname
并输入完整路径,crontab 很少有 $PATH 并且/bin
在大多数情况下无法在外部找到二进制文件)。保存并退出。如果愿意,请重新启动。
当它重新启动时,主机名应该与您设置的那样。