怎样使修改的静态主机名永久生效?-九游平台
问题描述
linux弹性云服务器的静态主机名来源于创建弹性云服务器时,通过cloud-init注入的用户自定义名称。虽然可以使用hostname命令更改linux弹性云服务器的主机名,但如果重新启动弹性云服务器,它将自动还原为使用cloud-init注入的用户自定义名称。
修改弹性云服务器实例的主机名(修改hostname)
如果您希望修改后的主机名在弹性云服务器关机、重启后仍然生效,需要将其写入相应的cloud-init配置文件中,使之永久生效。
假设修改后的主机名为“new_hostname”。
- 修改配置文件“/etc/hostname”。
- 执行以下命令,编辑配置文件“/etc/hostname”。
sudo vim /etc/hostname
- 修改配置文件,将文件中的主机名替换为修改后的主机名(new_hostname)。
- 执行以下命令,保存并退出文件。
:wq
- 执行以下命令,编辑配置文件“/etc/hostname”。
- 修改配置文件“/etc/sysconfig/network”。
- 执行以下命令,编辑配置文件“/etc/sysconfig/network”。
sudo vim /etc/sysconfig/network
- 修改涉及“hostname”的参数值,将其设置为修改后的主机名(new_hostname)。
hostname=修改后的主机名
如果配置文件中没有hostname,请手动补充并将参数值设置为修改后的主机名。
示例:
hostname=new_hostname
- 执行以下命令,保存并退出文件。
:wq
- 执行以下命令,编辑配置文件“/etc/sysconfig/network”。
- 修改配置文件“/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),并通过本节内容长久有效地修改静态主机名。
部分操作系统版本的弹性云服务器在通过cloud-init注入用户自定义名称后,可能出现使用hostname命令获取的主机名带“.novalocal”后缀的情况,详细内容,请参见弹性云服务器的主机名带后缀novalocal,这正常吗?。
针对这种情况,您可以参考配置cloud-init工具,修改配置使得通过私有镜像创建的弹性云服务器的主机名不带“.novalocal”后缀。
- 方法一:修改或添加“preserve_hostname”参数项。
- 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。
- 执行以下命令,重启弹性云服务器。
sudo reboot
- 执行以下命令,验证主机名的修改是否永久生效。
sudo hostname
如果回显的内容是修改后的主机名(new_hostname),则表示主机名修改成功,永久生效。
修改弹性云服务器实例的主机名与ip地址的映射(修改hosts)
如果您希望将修改后的主机名作为首选的主机名、本地域和本地主机,在修改完主机名后,还需要更新主机名与ip地址的映射并将配置写入相应的cloud-init配置文件中,使之永久生效。
假设修改后的主机名为“new_hostname”。
- 修改配置文件“/etc/hostname”。
- 执行以下命令,编辑配置文件“/etc/hostname”。
sudo vim /etc/hostname
- 修改配置文件,将文件中的主机名替换为修改后的主机名(new_hostname)。
- 执行以下命令,保存并退出文件。
:wq
- 执行以下命令,编辑配置文件“/etc/hostname”。
- 修改配置文件“/etc/sysconfig/network”。
- 执行以下命令,编辑配置文件“/etc/sysconfig/network”。
sudo vim /etc/sysconfig/network
- 修改涉及“hostname”的参数值,将其设置为修改后的主机名(new_hostname)。
hostname=修改后的主机名
如果配置文件中没有hostname,请手动补充并将参数值设置为修改后的主机名。
示例:
hostname=new_hostname
- 执行以下命令,保存并退出文件。
:wq
- 执行以下命令,编辑配置文件“/etc/sysconfig/network”。
- 修改配置文件“/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),并通过本节内容长久有效地修改静态主机名。
- 方法一:修改或添加“preserve_hostname”参数项。
- 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。
- 将“/etc/hosts”文件中hostname和ip的映射更新为以 127.0.0.1开头的条目,将“new_hostname”作为您首选的主机名、本地域和本地主机。
- 执行以下命令,编辑“/etc/hosts”文件。
sudo vim /etc/hosts
- 修改127.0.0.1开头的条目,将localhost、localhost.localdomain替换为“new_hostname”。
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 new_hostname new_hostname
- 执行以下命令,保存并退出文件。
:wq
- 执行以下命令,编辑“/etc/hosts”文件。
- 修改配置文件“/etc/cloud/cloud.cfg”。
- 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。
sudo vim /etc/cloud/cloud.cfg
- 将“manage_etc_hosts”参数项配置为“manage_etc_hosts: false”。
manage_etc_hosts: false
- 执行以下命令,保存并退出文件。
:wq
- 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。
- 执行以下命令,重启弹性云服务器。
sudo reboot
- 执行以下命令,验证主机名和hosts的修改是否永久生效。
sudo hostname
sudo cat /etc/hosts
如果回显的内容是修改后的主机名(new_hostname)以及hosts,则表示修改成功,永久生效。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨