gpt4 book ai didi

amazon-ec2 - 我们能否为 EC2 实例设置易于内存的主机名?

转载 作者:行者123 更新时间:2023-12-03 06:04:07 26 4
gpt4 key购买 nike

我正在 EC2 上运行几个标准 Fedora 实例。我觉得亚马逊分配的实例的公共(public)主机名太奇怪而且很难记住。我想将它们更改为较短的内容(例如红色/蓝色/绿色/等)。

这样做有什么缺点吗?如何设置它以使其在重新启动后仍然存在?

谢谢。

最佳答案

开始之前,请尝试运行 hostnamehostname --fqdn 并记下响应内容。

您可以编辑/etc/hostname并设置主机名,该主机名在重新启动后将保留。您可以通过使用 hostname -F/etc/hostname 将该值读入主机名来强制“重新加载”主机名。注销并登录后,bash 提示符将发生变化。

警告/注意:
是的,很高兴将 bash 提示符中的主机名设置为比 ip-123-123-123-123 更有用的内容,但我决定保留我的主机名(至少现在是这样),因为看起来很多事情确实依赖于以标准方式设置 ec2 实例上的主机名。编辑 /etc/hostname 并将主机名更改为 webserver 后,许多服务似乎失败,因为主机名无法解析,并且 apache 无法启动。接下来我编辑了 /etc/hosts 并添加了

127.0.0.1 webserver

作为第二行。 Apache 然后会启动,但提示它找不到 FQDN。我确认运行 hostname --fqdn 不再有效。

接下来,我查阅了 man hostname 并了解到,虽然您可以设置 hostname,但 FQDN 似乎是通过 DNS 返回的内容查找。

THE FQDN

You can't change the FQDN (as returned by hostname --fqdn) or the DNS domain name (as returned by dnsdomainname) with this command. The FQDN of the system is the name that the resolver(3) returns for the host name.

Technically: The FQDN is the name getaddrinfo(3) returns for the host name returned by gethostname(2). The DNS domain name is the part after the first dot.

Therefore it depends on the configuration (usually in /etc/host.conf) how you can change it. Usually (if the hosts file is parsed before DNS or NIS) you can change it in /etc/hosts.

我认为可能可以设置系统/欺骗系统返回 FQDN,例如 ip-123-123-123-123.ec2.internal 即使主机名是 webserver 但此时它开始看起来比它值得的麻烦更多,对我来说,有一个更好的 bash 提示符可能会导致很多软件和配置问题,所以我决定给向上。

我还了解到很多亚马逊 ec2 实例都使用名为 cloud-init 的东西。 :

cloud-init is the Ubuntu package that handles early initialization of a cloud instance. It is installed in the Ubuntu Cloud Images and also in the official Ubuntu images available on EC2.

Some of the things it configures are:

  • setting a default locale
  • setting hostname
  • generate ssh private keys
  • adding ssh keys to user's .ssh/authorized_keys so they can log in
  • setting up ephemeral mount points

cloud-init's behavior can be configured via user-data. User-data can be given by the user at instance launch time. This is done via the --user-data or --user-data-file argument to ec2-run-instances

I also found this其中讨论了如何使用 cloud-init 配置主机名:

On EBS instances, a shutdown and later start would end up with a different IP address.

In the case where the user has not modified /etc/hostname from its original value (seeded by metadata's 'local-hostname'), then cloud-init will again set the hostname and update /etc/hostname.

In the case where the user has modified /etc/hostname, it will remain user managed.

Additionally, if /etc/cloud/cloud.cfg contains 'preserve_hostname' value set to a True value, then /etc/hostname will not ever be touched.

有趣的是,如果您不更改主机名,cloud-init 软件包将为您保持最新状态。

如果其他人有解决方法或可以解决提到的一些问题,并帮助确保 ec2 实例不会因为更改主机名而出现任何问题,我会很高兴听到。

关于amazon-ec2 - 我们能否为 EC2 实例设置易于内存的主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com