小编yda*_*coR的帖子

Terraform 提供程序应如何处理应用于服务器端的默认值?

上下文:我正在实现(我的第一个)Terraform 插件/提供程序作为现有公共 API 的包装器。

API 中的创建操作之一指定了一个整数字段,该字段采用正值或-1作为默认值。如果您-1在 create API 调用中指定,该值将被服务器端的某个默认值替换(例如field = 1000),并1000从现在开始存储。

如果我将其呈现给我的 Terraform 插件 ( terraform apply):

resource "something" "mysomething" {
  name  = "someName"
  field = -1
}
Run Code Online (Sandbox Code Playgroud)

调用不是幂等的。Terraform 继续看到漂移,随后提供:

  # something.mysomething will be updated in-place
  ~ resource "something" "mysomething" {
        id               = "165-1567498530352"
        name             = "someName"
      ~ field            = 1000 -> -1
    }

Plan: 0 to add, 1 to change, 0 to destroy.
Run Code Online (Sandbox Code Playgroud)

如何处理这样的API?

go terraform

1
推荐指数
2
解决办法
666
查看次数

Terraform 状态文件锁定 GCP 数据存储和 GCS 后端示例

我想知道是否有人可以通过 GCP 中存在的数据存储来处理 GCS 上的 Terraform 锁定状态文件,就像在 AWS 中使用 S3 后端和 DynamoDB 表一样。

如果是这样,请举例说明如何操作。

google-cloud-platform terraform

1
推荐指数
1
解决办法
939
查看次数

压力包在 aws EC2 实例上不可用

如果我尝试安装压力包,我会发现该包不可用。

sudo yum install stress 
Run Code Online (Sandbox Code Playgroud)

实例已连接到互联网,因为我可以成功运行更新。当我尝试自动缩放时,还有其他方法可以做到这一点吗?我有使用 Terraform 设置实例。

amazon-web-services amazon-linux

1
推荐指数
1
解决办法
2078
查看次数

ubuntu 18.04 的打包器构建器 source_ami_filter?

我正在尝试使用包装机。

我能够通过以下方式为 ubuntu 16.04 创建图像

"source_ami_filter": {
          "filters": {
            "virtualization-type": "hvm",
            "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
            "root-device-type": "ebs"
          },
Run Code Online (Sandbox Code Playgroud)

但是当它通过将 16.04 修改为 18.04 来尝试相同的文件管理器时

"source_ami_filter": {
          "filters": {
            "virtualization-type": "hvm",
            "name": "ubuntu/images/*ubuntu-xenial-18.04-amd64-server-*",
            "root-device-type": "ebs"
          },
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

==> amazon-ebs: Prevalidating any provided VPC information
==> amazon-ebs: Prevalidating AMI Name: packer-example 1592389575
==> amazon-ebs: No AMI was found matching filters: {
==> amazon-ebs:   Filters: [{
==> amazon-ebs:       Name: "virtualization-type",
==> amazon-ebs:       Values: ["hvm"]
==> amazon-ebs:     },{
==> amazon-ebs:       Name: "name",
==> amazon-ebs:       Values: ["ubuntu/images/*ubuntu-xenial-18.04-amd64-server-*"]
==> …
Run Code Online (Sandbox Code Playgroud)

packer amazon-web-services

1
推荐指数
1
解决办法
1924
查看次数

设置 S3 策略时出错:MalformedPolicy:策略语法无效

我正在尝试在 Terraform 中设置 S3 存储桶策略。我在模块中编写了以下代码core/main.tf

\n
resource "aws_s3_bucket_policy" "access_to_bucket" {\n\n  bucket = aws_s3_bucket.some_bucket.id\n\n  policy = jsonencode({\n    Version = "2012-10-17"\n    Statement = [\n      {\n        Action    = ["s3:GetObject", "s3:GetObjectAcl", "s3:ListBucket"]\n        Effect    = "Allow"\n        Principal = "${var.some_variable_name}"\n        Resource = [\n          "${aws_s3_bucket.some_bucket.arn}",\n          "${aws_s3_bucket.some_bucket.arn}/*"\n        ]\n      },\n    ]\n  })\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

然后在本地模块中实例化,该模块使用 localstack 在本地运行。

\n

这是生成的计划:

\n
Terraform will perform the following actions:\n\n  # module.local.aws_s3_bucket_policy.access_to_bucket will be created\n  + resource "aws_s3_bucket_policy" "access_to_bucket" {\n      + bucket = "some_bucket"\n      + id     = (known after apply)\n      + policy …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services terraform terraform-provider-aws

1
推荐指数
1
解决办法
4626
查看次数

为 Pod 和服务配置 Terraform GKE 插件 IP 范围

我正在尝试使用GKE 的 Terraform 模块,但我不确定如何配置属性ip_range_podsip_range_services.

具体来说,我不确定他们是如何得出这些值的:

  ip_range_pods              = "us-central1-01-gke-01-pods"
  ip_range_services          = "us-central1-01-gke-01-services"
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-kubernetes-engine terraform

0
推荐指数
1
解决办法
2626
查看次数

我在哪里可以获得实际的Compute Engine图像名称列表?

我正在尝试使用Terraform首次配置Compute Engine实例.

所需的参数之一是使用的图像名称.通过控制台手动配置实例时,我可以看到一个图像列表,但这些是图像的人类可读标签(例如"CentOS 6","Ubuntu 16.04 LTS"等)我试图了解我的位置获取我将在"resource"指令的"boot_disk"部分中使用的实际计算引擎映像名称的列表.

resource "google_compute_instance" "default" {
  name         = "Test_CE"
  machine_type = "n1-standard-1"
  zone         = "us-east1-b"

  boot_disk {
    initialize_params {
      image = "<actual image name goes here>"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

google-compute-engine google-cloud-platform terraform

0
推荐指数
1
解决办法
100
查看次数

无法打开 terraform plan -out 文件

是否可以打开运行时创建的文件terraform plan -out

我已经运行terraform plan -out samplefile.txt并想仔细阅读文件的内容,但我找不到能够打开它的文本编辑器。

不知道是不是字符编码问题。

terraform terraform0.12+

0
推荐指数
1
解决办法
1489
查看次数