4

我正在尝试使用预配置的 FQDN 启动 google 计算引擎 (GCE) 实例。我们打算运行一个基于 /etc/hosts 内容许可的应用程序。

我正在使用 Google Cloud SDK 实用程序 - gcloud 启动实例。

我尝试使用元数据选项设置“主机名”键,如下所示:

gcloud compute instances create mynode (standard opts) --metadata hostname=mynode.example.com

每当我登录开发人员控制台时,在计算机、实例下,我都可以在“自定义元数据”下看到主机名。这似乎是一个新的客户密钥 - 它对以下内容没有影响:

http://metadata.google.internal/computeMetadata/v1/instance/hostname

返回。

我也尝试过像下面这样设置“实例/主机名”,这在使用 gcloud 时会导致解析错误。

--metadata instance/hostname=mynode.example.com

我已经成功地使用元数据服务器的启动脚本功能来运行一个启动脚本,该脚本解析新创建的实例的新内部 IP 地址,更新的 /etc/hosts。这似乎有效,但感觉不像“谷歌方式”。

我可以在实例创建期间使用元服务器功能配置实例的FQDN(特别是域名,因为实例名称始终是主机名)吗?

4

6 回答 6

6

尝试这个:

  1. 转到您的 GCE >> VM 实例面板。
  2. 停止你的 gce 实例。
  3. 单击实例名称。
  4. 编辑您的实例,在自定义元数据字段中添加此值:

    • 关键字段:主机名/值字段:your.server.hostname

    • 关键字段:启动脚本/值字段:sudo -s hostnamectl set-hostname your.server.hostname

    设置示例图像.png

最后,启动您的实例并使用 hostnamectl 命令进行测试。

问候!

于 2018-12-04T07:08:51.560 回答
3

根据这篇文章,“主机名”是提供有关您的实例的信息的默认元数据条目的一部分,并且不可能手动编辑任何默认元数据对。您还可以观看 Google 团队提供的此视频。在最初的几分钟内,有人提到您无法修改默认元数据对。因此,您似乎无法在创建实例时指定主机名,除非像您已经完成的那样使用启动脚本。还值得一提的是,您指定的主机名将在重新启动时被元数据服务器删除并自动同步,除非您使用启动脚本或每次都会修改它的东西。

如果您当前正在做的事情适用于您想要完成的事情,那么它可能是您的方案的唯一解决方法。

于 2014-08-14T20:32:04.933 回答
2

这是一个/usr/share/google/set-hostname将 FQDN 设置为 GCE 实例的补丁。

https://gist.github.com/yuki-takeichi/3080521322f0f1d159ea6a343e2323e6

在使用此补丁之前,您必须通过指定hostname键在实例的元数据中设置所需的 FQDN。

每次实例的 IP 地址更新时都会设置主机名dhclientset-hostname只是一个钩子脚本,它dhclient执行和提供新的 IP 地址和内部主机名,并修改/etc/hosts. 此补丁通过从元数据服务器查询实例的元数据来更改主机名的来源。

原始set-hostname脚本在这里: https ://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google_config/bin/set_hostname 。

使用此补丁需要您自担风险。

于 2016-07-13T07:00:08.550 回答
1

创建 VM 时,您可以将自定义 FQDN 主机名指定为可选参数。此功能目前处于测试阶段。

$ gcloud beta compute instances create INSTANCE_NAME --hostname example.hostname

这应该可以跨操作系统工作,并且不需要变通方法脚本。文档中的更多信息。

——思锐(谷歌计算引擎产品经理)

于 2018-11-09T18:56:09.637 回答
0

我浏览了整个站点以查找已回答的问题,并发现了一些可行的方法,但结合了几种解决方案。这个线程似乎是回答的地方。

1) 回显 example.com > /etc/hostname

2) 在 /etc/hosts 中添加 -- 127.0.1.1 example.com

3) 在 /etc/rc.local 脚本中添加 --hostnamectl set-hostname example.com -- 命令

4) 取消注释 /etc/dhcp/dhclient.conf 行:

取代域名“example.com”;

5)利润....每次重启后似乎都会坚持下去

(注意 example.com 是您的域名:fqdndomain.com - yourfqdndomain.org) 另请注意,这是针对 Ubuntu 或 Debian 的。其他 Unix 可能略有不同。我已经在 Ubuntu 16.04 上测试过了

于 2018-08-17T07:02:05.807 回答
-2

总是在措辞上不可能手动编辑任何默认元数据对,即时级别的默认元数据“/调度”怎么样?我们可以按照本文所述手动设置它们

于 2014-12-30T11:30:22.487 回答