gpt4 book ai didi

input - 将 GitHub Actions 工作流中的输入值绕过到 terraform 变量文件

转载 作者:行者123 更新时间:2023-12-04 14:47:44 24 4
gpt4 key购买 nike

作为使用 terraform 使用 GitHub 操作配置谷歌云资源的一部分,我需要使用 terraform 变量文件绕过一些输入值,问题是 THL 不支持 Golang。

我已尝试执行以下操作:

  1. 创建一个 GitHub 操作工作流
  workflow_dispatch:
inputs:
new_planet:
description: 'Bucket Name'
required: true
default: 'some bucket'

在工作流程的最后:

- name: terraform plan
id: plan
run: |
terraform plan -var-file=variables.tf

在 variables.tf 中:

variable "backend_bucket" {
type = string
default = ${{ github.event.inputs.new_planet }}
description = "The backend bucket name"

如果您知道如何将工作流中的输入值绕过到 Terraform 中,我将不胜感激。

最佳答案

您可以使用 backend-config命令行 [1] 中的选项。您首先需要配置后端(例如,通过创建 backend.tf 文件)并添加以下内容:

terraform {
backend "s3" {
}
}

这样,每次运行 terraform init 时都会提示您输入.但是,还有一个额外的 CLI 选项 -input=false这会阻止 Terraform 请求输入。下面的这个片段将移动到 Terraform 代码所在的目录(根据 repo 的名称,目录名称会有所不同)并运行 terraform init-backend-config选项以及 -input设置为 false :

      - name: Terraform Init
id: init
run: |
cd terraform-code
terraform init -backend-config="bucket=${{ secrets.STATE_BUCKET_NAME }}" \
-backend-config="key=${{ secrets.STATE_KEY }}" \
-backend-config="region=${{ secrets.AWS_REGION }}" \
-backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID }}" \
-backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY }}" \
-input=false -no-color

我想您不希望对存储桶的名称和其他敏感值进行硬编码,我建议使用 GitHub Actions secrets [2]。

设置完成后,您可以运行 terraform plan无需为后端配置指定变量。另一方面,您可以创建一个 terraform.tfvars在前面的步骤之一中归档,以便计划步骤可以使用它。这是我的示例之一:

      - name: Terraform Tfvars
id: tfvars
run: |
cd terraform-code
cat << EOF > terraform.tfvars
profile = "profilename"
aws_region = "us-east-1"
EOF

您将以以下代码段结束(再次注意 -input=false:

      - name: Terraform Plan
id: plan
run: |
cd terraform-code
terraform plan -no-color -input=false
continue-on-error: true

所有 Terraform 部分都可以通过 Hashicorp [3] 提供的 GitHub Action 获得。


[1] https://www.terraform.io/docs/language/settings/backends/configuration.html#partial-configuration

[2] https://docs.github.com/en/actions/security-guides/encrypted-secrets

[3] https://github.com/hashicorp/setup-terraform

关于input - 将 GitHub Actions 工作流中的输入值绕过到 terraform 变量文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69708717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com