主机名类 本节介绍了弹性云主机主机名类相关问题。 怎样使修改的静态主机名永久生效? 问题描述 Linux弹性云主机的静态主机名来源于创建弹性云主机时,通过Cloudinit注入的用户自定义名称。虽然可以使用hostname命令更改Linux弹性云主机的主机名,但如果重新启动弹性云主机,它将自动还原为使用Cloudinit注入的用户自定义名称。 在云主机内部修改主机名 虽然hostname命令可以修改Linux弹性云主机的主机名,但是,如果您希望修改后的主机名在弹性云主机关机、重启后仍然生效,需要将其写入相应的配置文件中,使之永久生效。 假设修改后的主机名为“newhostname”。 步骤 1 修改配置文件“/etc/hostname”。 1. 执行以下命令,编辑配置文件“/etc/hostname”。 sudo vim /etc/hostname 2. 修改配置文件,将文件中的主机名替换为修改后的主机名(newhostname)。 3. 执行以下命令,保存并退出文件。 :wq 步骤 2 修改配置文件“/etc/sysconfig/network”。 1. 执行以下命令,编辑配置文件“/etc/sysconfig/network”。 sudo vim /etc/sysconfig/network 2. 修改涉及“HOSTNAME”的参数值,将其设置为修改后的主机名(newhostname)。 HOSTNAME修改后的主机名 说明: 如果配置文件中没有HOSTNAME,请手动补充并将参数值设置为修改后的主机名。 示例: HOSTNAMEnewhostname 3. 执行以下命令,保存并退出文件。 :wq 步骤 3 修改配置文件“/etc/cloud/cloud.cfg”。 1. 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。 sudo vim /etc/cloud/cloud.cfg 2. 选择如下方法,修改配置文件。 − 方法一:修改或添加“preservehostname”参数项。 如果文件“/etc/cloud/cloud.cfg”中已有参数项“preservehostname: false”,将其修改为“preservehostname: true”即可。如果文件“/etc/cloud/cloud.cfg”中没有该参数项,需在“cloudinitmodules”模块前,添加语句preservehostname: true。 选择方法一,弹性云主机关机、重启后,修改后的主机名(newhostname)仍然生效。但是,如果使用该弹性云主机制作私有镜像,并使用生成的镜像重新创建弹性云主机,则新创建的弹性云主机的主机名即为私有镜像使用的主机名(newhostname),不能通过Cloudinit重新注入用户自定义名称。 − 方法二(推荐):删除或者注释语句 updatehostname。 选择方法二,弹性云主机关机、重启后,修改后的主机名(newhostname)仍然生效。但是,如果使用该弹性云主机制作私有镜像,并使用生成的镜像重新创建弹性云主机,用户可以通过Cloudinit注入用户自定义名称(如newnewhostname),并通过本节内容长久有效地修改静态主机名。 步骤 4 执行以下命令,重启弹性云主机。 sudo reboot 步骤 5 执行以下命令,验证主机名的修改是否永久生效。 sudo hostname 如果回显的内容是修改后的主机名(newhostname),则表示主机名修改成功,永久生效。