如何为运行 RHEL 7 或 Centos 7 的私有 Amazon EC2 实例分配静态主机名?

上次更新时间:2019 年 10 月 15 日

我更改了我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的主机名。然而,当我重启或者停止后再重启实例时,主机名恢复到它以前的名称。如何使新主机名保持不变?

简短描述

为确保主机名在 EC2 实例重启或停止时保持不变,您必须将主机名添加到您的 EC2 实例上的适当配置文件中。

注意:以下步骤适用于 RHEL 7 或 CentOS 7。关于适用于 Ubuntu Linux 的说明,请参阅如何为运行 Ubuntu Linux 的私有 Amazon EC2 实例分配静态主机名?

解决方法

1.    从 shell 运行 hostnamectl 命令,更新您的 RHEL 7 或 CentOS 7 Linux 实例的主机名。将 persistent-hostname 替换为您希望实例使用的名称:

sudo hostnamectl set-hostname --static persistent-hostname

注意:通过使用 hostnamectl 命令来更改主机名不会更新 /etc/hosts 文件。然而,如果需要,您可以手动编辑此文件以添加新的主机名。

2.    在 RHEL 7 或 CentOS 7 Linux 实例上,使用 vi 文本编辑器更新 /etc/cloud/cloud.cfg 文件。有关使用 vi 编辑器的一般信息,从命令 shell 运行命令 info vi

注意:如果您使用 RHEL 7.4 及以上版本,则不需要此步骤。

sudo vi /etc/cloud/cloud.cfg

3.    在 /etc/cloud/cloud.cfg 文件底部添加以下字符串,确保在重启间保留新主机名:

preserve_hostname: true

保存并退出 vi 编辑器。

4.    运行 reboot 命令重启 EC2 实例并将新主机名与实例关联:

sudo reboot

5.    不使用任何参数运行 Linux hostname 命令可验证该主机名更改是否已保留:

hostname

该命令应该返回您在步骤 1 中指定的新主机名。

注意:如果您安装影响 /etc/hosts 文件、主机名文件或主机名实用工具的任何系统更新,您必须再次运行上述步骤。