我正在尝试在 EC2 实例上设置完全限定域名。我已在 Route53 中设置了 CNAME 条目,因此当我转到 sync1.staging1.mycompany.net 时,它会解析到正确的实例。
我到目前为止所做的没有成功,我已经编辑了/etc/主机名(因此重启后保持不变):
sync1.staging1.mycompany.net
然后我使用 hostname 命令来设置主机名:
sudo hostname sync1.staging1.mycompany.net
然后我编辑了/etc/hosts并确保这一行存在:
127.0.0.1 localhost sync1.staging1.mycompany.net sync1
问题是,当我跑步时主机名 -f,我得到:
localhost
当我跑步时主机名 -s,我得到正确的结果:
sync1
当我跑步的时候主机名没有参数,我得到:
sync1.staging1.mycompany.net sync1
问题是我试图运行一个 Puppet 清单,它需要设置完全限定的域名,否则运行时会出现错误puppet 应用清单/site.pp:
Error: Could not find default node or by name with 'sync1.eu-west-1.compute.internal, sync1.eu-west-1.compute, sync1.eu-west-1, sync1' on node sync1.eu-west-1.compute.internal
Error: Could not find default node or by name with 'sync1.eu-west-1.compute.internal, sync1.eu-west-1.compute, sync1.eu-west-1, sync1' on node sync1.eu-west-1.compute.internal
这是在 Ubuntu 12.04 LTS 上运行的 EC2 实例。
有什么想法吗?我是否需要为实例设置弹性 IP 地址,以使其具有完全限定的域名?
答案1
hostname -f 将返回 127.0.0.1 之后的第一个名称
因此,只需切换 localhost 和您的 fqdn 就会为您提供正确的返回地址,而 localhost 别名仍然有效。