我更改了 Amazon Elastic Compute Cloud(Amazon EC2)实例的主机名。但是,当我重启或停止然后启动实例时,主机名又恢复为原来的主机名。
简短描述
要使主机名在重启或停止并启动 EC2 实例时持续存在,请将主机名添加到实例上的适当配置文件中。
**注意:**以下步骤适用于 RHEL 7 或 CentOS 7。有关适用于其他发行版的说明,请参阅以下内容之一:
更改系统主机名
如何为运行 RHEL 5 或 6、CentOS 5 或 6 或者 Amazon Linux 的 Amazon EC2 实例分配静态主机名?
如何为运行 SLES 的 Amazon EC2 实例分配静态主机名?
如何为运行 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. 使用 vi 文本编辑器更新 RHEL 7 或 CentOS 7 Linux 实例上的 /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 文件、hostname 文件或 hostname 实用程序(参阅 Ubuntu 网站)的任何系统更新,请再次运行这些步骤。