Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 重新启动后在Google计算引擎实例中永久更改主机名_Google Cloud Platform_Google Compute Engine_Hostname_Fqdn - Fatal编程技术网

Google cloud platform 重新启动后在Google计算引擎实例中永久更改主机名

Google cloud platform 重新启动后在Google计算引擎实例中永久更改主机名,google-cloud-platform,google-compute-engine,hostname,fqdn,Google Cloud Platform,Google Compute Engine,Hostname,Fqdn,我用CentOS操作系统在Google Compute Engine中创建了一个Google实例,然后安装了Cpanel。我的问题是WHM/Cpanel,它需要主机名为FQDN hostname,专门用于更新Cpanel,否则会失败 我的问题是,在更改主机名后,实例在重新启动操作系统或重置/停止/启动实例后会恢复为旧主机名 我以前检查过大多数问题,并且尝试过大多数解决方案,但都没有成功。它在重新启动后不断变化,我尝试了以下所有方法和更多方法: 在以下位置创建sh脚本: /etc/dhcp/dhc

我用CentOS操作系统在Google Compute Engine中创建了一个Google实例,然后安装了Cpanel。我的问题是WHM/Cpanel,它需要主机名为FQDN hostname,专门用于更新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"
但在重新启动后,主机名将更改回实例名。 是否有任何其他解决方法可以在重新启动后永久更改我的主机名


谢谢

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

我已经用谷歌的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似乎并不能在启动时启动更改

在不重新启动的情况下自动更改主机名的问题通过在“/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,在重新启动时延迟启动
(感谢他的帮助):

然后添加以下行:

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

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

1:更改
/etc/hosts文件
添加:

127.0.0.1       localhost.localdomain   localhost
192.168.1.100   server1.example.com     server1
supersede host-name "server1.example.com";
2:更改
etc/hostname
文件(如果不存在,则创建该文件): 只添加子域部分,即:
server1

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

127.0.0.1       localhost.localdomain   localhost
192.168.1.100   server1.example.com     server1
supersede host-name "server1.example.com";
4:创建
cron作业
运行sudo crontab-e
然后添加:

@reboot hostnamectl set-hostname server1.example.com

5:
sudo重新启动

这在运行Ubuntu 16.04的GCE实例中对我有效:

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

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

127.0.0.1 localhost
将您的新主机名添加到该行的末尾,因此应如下所示:

127.0.0.1 localhost <new_hostname>

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

我会及时检查的。。因为它毫不迟疑地不起作用。谢谢,我测试一下,即使不重新启动操作系统,它现在也会自动更改。好的,我想澄清一下,它会更改为您想要的主机名吗?您的问题解决了吗?没有,它会在一段时间后自动更改为旧的非FQDN主机名[google instance]。也许可以在此处尝试接受的答案,但如果一开始不起作用,请使用Centos在crontab中尝试延迟