如何配置 Google Cloud SSH 浏览器以不更改主机名?

如何配置 Google Cloud SSH 浏览器以不更改主机名?

当您创建像“my-instance-1”这样的新实例时,这意味着您的实例主机名也将是“my-instance-1”!

问题是,当您将主机名(例如)更改为“myhostname.mydomain.net”时,每次使用 Google SSH 浏览器工具或升级实例时,主机名都会自动更改为“my-instance-1”!

为什么 Google SSH 浏览器工具会更改实例主机名?

答案1

/etc/dhcp/dhclient.d/google_hostname.sh在我的 CentOS VM 中,我发现由 RPM 安装的脚本google-compute-engine实际上更改了主机名。当实例在启动期间获取其 IP 地址时,就会发生这种情况。

虽然这不是我真正想要的长期解决方案,但目前我只是删除了这个脚本。我hostnamectl现在设置的主机名在重启后仍然存在。

该脚本很可能位于 Debian/Ubuntu VM 中的完全相同的位置,但我当然不会运行其中任何一个。

答案2

您可以在虚拟机实例中指定自己的主机名。

有两种简单的方法。

  1. 创建自定义元数据条目主机名,值为 my.hostname.com

然后我在我的 centos 服务器上像这样调用它:

hostname $(curl --silent "http://metadata.google.internal/computeMetadata/v1/instance/attributes/hostname" -H "Metadata-Flavor: Google")

结果是根据您的元数据设置的主机名。

  1. 通过 Google DHCP 服务分配您的静态内部 IP

我在“/etc/dhcp/dhclient.d”中创建了一个文件“google_hostname.sh”(使用 CentOS),该文件的内容如下:

#!/bin/bash
google_hostname_config() {
  google_set_hostname
}
google_hostname_restore() {
  :
}

结果是,当 Google 在您重启时分配您的临时内部 IP 时,它也会执行主机名。

更多信息:以下内容文章解释说,“主机名”是默认元数据条目的一部分,无法手动编辑任何默认元数据对。因此,每次系统重新启动时,您都需要使用脚本或其他东西来更改主机名,否则它将在每次重新启动时自动与元数据服务器重新同步。

您可以在以下位置找到有关 GCE 启动脚本的信息本文。 你可以拜访这个有关如何将脚本应用到实例的信息。

相关内容