问题标签 [terraform-provider-gcp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - terraform 自动删除旧的实例模板
我有一个问题,每次我创建一个新的实例模板时,terraform 都会自动删除我之前创建的实例。即使 auto_delete = false 并且名称不同,也会发生这种情况。我的代码位于下方。
ssh - 有时在一定时间内无法通过 SSH 连接到 GCP 虚拟机
我正在使用 Terraform 和 Google Compute 建立一个项目。在这个项目中,我启动了多个虚拟机,然后通过 SSH 直接配置它们。有时,我无法使用常用帐户通过 SSH 连接到单个或多个 VM。大约 5 分钟后问题神奇地消失了,即使我什么都不做。在这段时间之后,一切都会再次正常工作。但是,我可以在停机期间使用 Web 界面通过 SSH 连接到实例。
我无法可靠地重现此问题。它有时会神奇地发生在随机数量的虚拟机上大约 5 分钟。
我对此非常迷茫,并且非常感谢任何关于我可以在哪里找到解决方案的指针。
以下是问题的简短摘要:
- 无法使用预定义用户通过 SSH 连接到 GCP VM
- 仅有时会发生(问题无法可靠地重现)
- 仅持续几分钟(约 5 分钟)
- 在此期间,我可以通过 GCP 网络界面 SSH 进入虚拟机
这是我用来启动实例的 Terraform 代码:
模块.google:
编辑我用来通过 SSH 连接到实例的代码。
编辑 2地形输出
google-cloud-platform - 使用 Terraform 创建 GCP 自定义 IAM 角色
我正在尝试使用 Terraform 在 GCP 中为我的实例创建自定义 IAM 角色。AFIACT,以下应该可以工作,但是我出错了,抱怨我想要包含的标准角色无效。
这是错误消息:
Terraform 文档不是很清楚,但是根据我的阅读,这应该可以。知道我在这里做错了什么吗?
google-cloud-platform - Terraform GCP 虚拟机实例创建 - 错误 403
这是我第一次尝试通过 terraform 在 GCP 上创建 VM。这是我创建的 2 个文件。
提供者.tf
计算.tf
最初我认为 vm 图像存在一些语法问题,但即使在更改为多个其他相同问题之后也是如此。服务帐户对项目具有所有者权限,因此我可以排除。有人可以在这里帮助我吗..
感谢帮助!
google-cloud-platform - 如何在使用 google 平台提供商的 terraform 中从使用 google_compute_region_instance_group 创建的实例中获取实例信息?
我正在创建一个 terraform 文件,这样我就可以在 GCP 中设置一些虚拟机来构建我自己的 Kubernetes 平台(是的,谷歌有自己的引擎,但我想使用一些自定义项)。我已经能够创建 .tf 文件来创建整个堆栈,就像 Kubespray 项目中的其他设置一样。就像您在 AWS 上对虚拟机进行地形改造一样。
我需要自动化的最后一部分是为 Ansible 创建主机文件。
我使用名为的资源创建 Masters 和 Worker,该资源google_compute_region_instance_group
将每个实例放置在 GCP 中的不同 AZ 中。现在我需要获取这些实例的主机名和 IP。我遇到的问题是它们是动态创建的资源。因此,为了提取这些信息,我使用数据源来获取信息。
这就是我现在所拥有的。
如您所见,输出是列表和地图的混合。我可以通过这条线获得实例自我 url。
然后我可以拆分并获取实例名称。这是我无法用 Terraform 弄清楚的难点。在上面的行中我必须使用[0]
来调用实例信息。然后我需要遍历所有可能超过 3 或 3 个的实例。
我找不到使用这种数据源类型的方法。我试过 count.index 但它只支持资源类型而不是数据源。我也尝试过 splat 语法,但没有奏效。
google-cloud-platform - 新项目中不存在谷歌存储转移服务帐户
我正在尝试在新的 GCP 项目中使用 Terraform 创建资源。作为其中的一部分,我想设置为运行特定存储桶roles/storage.legacyBucketWriter
的存储传输服务作业(模式为 )的 Google 托管服务帐户。project-[project-number]@storage-transfer-service.iam.gserviceaccount.com
我正在使用以下配置:
澄清一下,我想这样做,以便当我使用 JSON API 创建一次性传输作业时,它不会通过先决条件检查。
当我运行 Terraform apply 时,我得到以下信息:
我认为这是因为相关服务帐户尚不存在,因为我也无法通过控制台执行此操作。
是否需要启用任何其他服务才能创建服务帐户?
google-cloud-sql - Cloud SQL 的 AutoResizeLimit
创建 Cloud SQL MySQL 实例时如何设置 AutoResizeLimit?GCP API 在这里定义它:https ://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances terraform 提供程序有 disk_autoresize,它是一个布尔值: https ://www.terraform.io /docs/providers/google/r/sql_database_instance.html#disk_autoresize
但是,没有设置 auto_resize_limit 的属性。
google-cloud-platform - Terraform 覆盖远程后端上的状态文件
很可能我做错了什么或在这里遗漏了一些东西。
这就是我的 terraform 模板的样子:
当我使用不同的参数多次运行它时,它会覆盖以前的状态文件。
这是我在桶中看到的:
有没有办法可以为每个运行模板的项目创建不同的状态文件?
google-cloud-platform - 如何使用 terraform 删除计算引擎 vm
我有一个使用 terraform google_compute_instance 模块在 GCP 中创建的临时虚拟机。这个虚拟机有一个启动脚本,它将执行一堆活动。在脚本的最后有一个gcloud compute instances delete
命令。这实际上是在摧毁自己。
- 我想知道VM的删除是否应该在启动脚本之外完成..
- 我需要一种方法来测试 VM 是否已被删除?也许在 terratest 或其他一些测试框架中..
有人可以帮忙吗..?