重启后,在Google Compute Engine实例中永久更改主机名

问题描述 投票:0回答:4

我使用CentOS操作系统在Google Compute Engine中创建了一个Google实例,然后我安装了Cpanel。我的问题是WHM / Cpanel,它需要一个主机名是FQDN主机名,专门用于更新Cpanel,否则它将失败。

我的问题是,在更改主机名后,实例会在重新引导操作系统或重置/停止/启动实例后恢复为旧主机名。

我之前检查了大多数问题,并且我尝试了大多数解决方案而没有运气。它在重新启动后不断变化,我尝试了下面的所有方法以及更多:

创建sh脚本:

/etc/dhcp/dhclient-exit-hooks.d/

更改主机名

/etc/hostname

编辑文件

/etc/dhclient.conf

在其中添加,为我的网络接口:

supersede host-name "host.domain.com"

crontab添加到最后:

@reboot hostname="host.domain.com"; sed -i "s/.*Google.*//" /etc/hosts; hostname "$hostname"

但重启后,主机名会更改回实例名称。是否有任何其他解决方法甚至在重新启动后永久更改我的主机名。?

谢谢

google-cloud-platform google-compute-engine hostname fqdn
4个回答
0
投票

您可以创建一个类似的crontab条目,但不是在帖子中使用该行,而是可以使用hostnamectl在启动时设置主机名。

我用Google的Centos7和Debian9图像对它进行了测试,它适用于两者。但是,我发现使用Centos时,我必须在执行命令之前添加一个延迟(见下文)。

例如,打开crontab:

sudo crontab -e

然后为Centos输入以下行:

@reboot sleep 15 && hostnamectl set-hostname YOUR_HOSTNAME

对于Debian,这工作:

@reboot hostnamectl set-hostname YOUR_HOSTNAME

我没有对crontab Centos时序进行太多实验(你可能能够使用低于15秒的数字),但根据我的经验,单独使用@reboot似乎并未启动启动时的更改。


0
投票

没有重启的自动更改主机名的问题通过在“/etc/dhcp/dhclient-exit-hooks.d/”中创建“.sh”可执行文件来解决它,例如:下面我们创建文件“set_my_hostname.sh”,你可以创建一个带有任何名字的sh文件:

cd /etc/dhcp/dhclient-exit-hooks.d/
nano set_my_hostname.sh

然后在文件里面放:

hostname hosting.domain.com

保存文件并使其可执行:

chmod +x set_my_hostname.sh

并修复,重新启动后主机名自动更改,创建一个cronjob以重启启动延迟 (感谢neilH的帮助):

sudo env EDITOR=nano crontab -e

然后添加这一行:

@reboot sleep 20 && hostnamectl set-hostname "hosting.domain.com"

0
投票

这对我有用,我希望我的主机名是子域名,即:server1.example.com:

1:更改/etc/hosts file添加:

127.0.0.1       localhost.localdomain   localhost
192.168.1.100   server1.example.com     server1

2:更改etc/hostname文件(如果不存在则创建它):只添加子域部分即:server1

3:更改/etc/dhcp/dhclient.conf添加:

supersede host-name "server1.example.com";

4:创建一个cron jobrun sudo crontab -e然后添加:

@reboot hostnamectl set-hostname server1.example.com

5:sudo reboot


0
投票

这对我来说在运行Ubuntu 16.04的GCE实例中起作用:

1:打开/etc/hostnamesudo nano /etc/hostname)并将主机名更改为新主机名。

2:打开/etc/hostssudo nano /etc/hosts)。第一行可能是:

127.0.0.1 localhost

将新主机名添加到行尾,因此它应如下所示:

127.0.0.1 localhost <new_hostname>

3:打开/etc/rc.localsudo nano /etc/rc.local)。在行exit 0之前,添加另一行:

hostname <new_hostname>

4:就是这样!主机名已永久更改。您可以通过运行bash或重新启动实例来打开新的bash shell。

© www.soinside.com 2019 - 2024. All rights reserved.