怎样使修改的静态主机名永久生效?
- 问题描述
Linux弹性云主机的静态主机名来源于创建弹性云主机时,通过Cloud-init注入的用户自定义名称。虽然可以使用hostname命令更改Linux弹性云主机的主机名,但如果重新启动弹性云主机,它将自动还原为使用Cloud-init注入的用户自定义名称。
- 在云主机内部修改主机名
虽然hostname命令可以修改Linux弹性云主机的主机名,但是,如果您希望修改后的主机名在弹性云主机关机、重启后仍然生效,需要将其写入相应的配置文件中,使之永久生效。
假设修改后的主机名为“new_hostname”。
步骤 1 修改配置文件“/etc/hostname”。
- 执行以下命令,编辑配置文件“/etc/hostname”。
sudo vim /etc/hostname
- 修改配置文件,将文件中的主机名替换为修改后的主机名(new_hostname)。
- 执行以下命令,保存并退出文件。
:wq
步骤 2 修改配置文件“/etc/sysconfig/network”。
- 执行以下命令,编辑配置文件“/etc/sysconfig/network”。
sudo vim /etc/sysconfig/network
- 修改涉及“HOSTNAME”的参数值,将其设置为修改后的主机名(new_hostname)。
HOSTNAME=修改后的主机名
说明:
如果配置文件中没有HOSTNAME,请手动补充并将参数值设置为修改后的主机名。
示例:
HOSTNAME=new_hostname
- 执行以下命令,保存并退出文件。
:wq
步骤 3 修改配置文件“/etc/cloud/cloud.cfg”。
- 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。
sudo vim /etc/cloud/cloud.cfg
- 选择如下方法,修改配置文件。
− 方法一:修改或添加“preserve_hostname”参数项。
如果文件“/etc/cloud/cloud.cfg”中已有参数项“preserve_hostname: false”,将其修改为“preserve_hostname: true”即可。如果文件“/etc/cloud/cloud.cfg”中没有该参数项,需在“cloud_init_modules”模块前,添加语句preserve_hostname: true。
选择方法一,弹性云主机关机、重启后,修改后的主机名(new_hostname)仍然生效。但是,如果使用该弹性云主机制作私有镜像,并使用生成的镜像重新创建弹性云主机,则新创建的弹性云主机的主机名即为私有镜像使用的主机名(new_hostname),不能通过Cloud-init重新注入用户自定义名称。
− 方法二(推荐):删除或者注释语句- update_hostname。
选择方法二,弹性云主机关机、重启后,修改后的主机名(new_hostname)仍然生效。但是,如果使用该弹性云主机制作私有镜像,并使用生成的镜像重新创建弹性云主机,用户可以通过Cloud-init注入用户自定义名称(如new_new_hostname),并通过本节内容长久有效地修改静态主机名。
步骤 4 执行以下命令,重启弹性云主机。
sudo reboot
步骤 5 执行以下命令,验证主机名的修改是否永久生效。
sudo hostname
如果回显的内容是修改后的主机名(new_hostname),则表示主机名修改成功,永久生效。
弹性云主机的主机名带后缀novalocal,这正常吗?
- 问题描述
用户使用hostname命令查看不同镜像的弹性云主机主机名,发现部分镜像的弹性云主机主机名带后缀“.novalocal”,如示例所示:
假设创建弹性云主机时,用户自定义的主机名是“abc”,使用hostname命令查看不同镜像下,弹性云主机的主机名以及重启弹性云主机后的主机名,显示结果如下表所示。
表 不同镜像查询的主机名
镜像 | 重启前查询的主机名 | 重启后再次查询的主机名 |
---|---|---|
CentOS 6.8 | abc | abc.novalocal |
CentOS 7.3 | abc.novalocal | abc.novalocal |
Ubuntu 16 | abc | abc |
不同镜像的弹性云主机,查询的主机名有的带后缀“.novalocal”,有的不带后缀“.novalocal”,这正常吗?
- 问题处理
正常现象。
Linux弹性云主机的静态主机名来源于创建弹性云主机时,通过Cloud-init注入的用户自定义名称。经测试验证发现,Cloud-init和不同发行版本的操作系统在配合实现上,存在差异,具体表现为:查询的主机名有的带后缀“.novalocal”,有的不带后缀“.novalocal”。
如果您希望查询到的主机名不带后缀“.novalocal”,可以通过更改主机名进行规避,修改主机名的方法请参见怎样使修改的静态主机名永久生效?。
弹性云主机重启后,主机名被还原为安装时的主机名?
以CentOS 7操作系统的弹性云主机为例:
- 登录Linux弹性云主机,查看“cloud-init”的配置文件。
- 检查“/etc/cloud/cloud.cfg”文件中“update_hostname”是否被注释或者删除。如果没有被注释或者删除,则需要注释或删除 “-update_hostname”语句。
说明“update_hostname”表示每次重启时,“cloud-init”都会更新主机名。