【问题标题】:GCP Deployment manager: How to use a static IP address already reservedGCP 部署管理器:如何使用已保留的静态 IP 地址
【发布时间】:2020-02-28 11:37:09
【问题描述】:

我有一个有效的 GCP-Deployment-Manager 设置,由一个 .jinja 实例模板和一个 config.yaml 文件组成。

使用 Google Cloud Console,我还创建了一个 GCP 保留 IP 地址。现在我想将该 IP 地址分配给新部署的实例在部署创建时

我必须在哪里添加这个静态 IP 地址的值?

  • 在 config.yaml 文件中?
  • 在 instance-template.jinja 文件中?
  • gcloud deployment-manager deployments create ... 命令中?

什么格式?

我想开始我的部署,使其从一开始就使用该静态 IP 地址。我已经知道如何将临时 IP 地址更改为保留 IP 地址,但这是一个额外的工作步骤,并且会弄乱 SSH 密钥配置。

我之前看到的所有部署管理器脚本示例 (examples) 仅从头开始创建一个新的保留 IP 地址,它并没有真正“重用”已创建的现有 IP 地址以前。

如果需要,我可以在此处发布我的配置文件,但也许有专家可以回答这个问题。

6 小时后更新:

我已将此添加到我的 instance-template.jinja 文件的开头。为我工作:

{% set STATIC_IP = "my-ip-name" %}

resources:
- name: {{ STATIC_IP }}
  type: compute.v1.address
  properties:
    region: {{ properties["region"] }}

也许有一种更优雅的方式来做到这一点,也许是通过从config.yaml 文件中传入名称(类似于上面的“区域”)

【问题讨论】:

    标签: google-cloud-platform google-deployment-manager


    【解决方案1】:

    好的,这里有一个警告;这没有经过测试,只是理论。

    由于您要定义将属于资源的属性,因此定义属性的位置在资源配置中 - 即 config.yaml

    我不确定您正在部署什么,但让我们假设您正在部署一个计算实例。您可能想查看this GCP doc 以获取有关 config.yaml 文件布局的参考(它有 Compute + BigQuery 作为其示例)。

    您需要查看 Compute API Reference 以获取属性列表,以找到 IP 地址属性的确切名称。它可能实际上是一个子属性,我最好的猜测是networkInterfaces[].networkIP

    (还请查看 GCP 的 Supported Resource Types doc 以获取指向所有可用资源的链接的主列表,以防我猜错了并且您没有部署 Compute 实例。)

    我真的希望这对您有所帮助!回来看看,告诉我们进展如何!

    【讨论】:

    • 谢谢,但与此同时,我已经为自己解决了这个问题。还不能发布答案,必须等待一段时间。敬请期待
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 2019-08-17
    • 1970-01-01
    • 2020-10-16
    • 2012-06-15
    • 1970-01-01
    相关资源
    最近更新 更多