当我启动我的 AWS 机器时,我做的第一件事就是运行hostnamectl set-hostname myhost.test.com
,但是当我安装并运行 puppet 时,它会standard-1-ami.test.com
作为证书名称拉取。standard-1-ami
是我的 AMI 的名称。
它是从操作系统上从哪里获得这个名称的?
当我启动我的 AWS 机器时,我做的第一件事就是运行hostnamectl set-hostname myhost.test.com
,但是当我安装并运行 puppet 时,它会standard-1-ami.test.com
作为证书名称拉取。standard-1-ami
是我的 AMI 的名称。
它是从操作系统上从哪里获得这个名称的?
我也有这个问题。每次我制造一台新机器时,没有在用户数据脚本中设置主机名,我都会遇到这个问题。我注意到初始主机名缓存在内存中的某处。
这是我修复它的方法:
Hostname: new_host ; IP:192.168.10.50;域名:inside.myhouse.com
hostnamectl set-hostname new_host
echo "192.168.10.50 new_host.inside.myhouse.com new_host" >> /etc/hosts
echo "new_host" > /etc/hostname
service network restart
这三个地方是主机名“存在”或“可以检索”的地方。
为了验证我的配置,我运行以下 3 个命令:
$ hostname
new_host
$ hostname -f
new_host.inside.myhouse.com
hostname -i
192.168.10.50
请注意,如果您的提示设置为显示您的主机名,您的提示在您重新登录之前可能不会更改。如果主机名和主机名 -f 命令有效,您可以运行 puppet,它应该使用正确的主机名。
顺便说一句:我使用 Red Hat。YMMV。