尝试将值从环境变量组传递到 terraform

问题描述 投票:0回答:1

所以我现在至少已经花了几个小时了。我尝试使用 TF_VAR 前缀传递两个变量。我已经验证管道正在日志中正确导入 var 组。我完全被难住了,真的需要一些帮助,哈哈。

参考资料- 如何在 Terraform 中传递带有秘密(用户、密码)的变量

https://developer.hashicorp.com/terraform/cli/config/environment-variables

https://learn.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=yaml

main tf infra file

tfvars file

Environmental variable group

AzDO yaml pipeline snip

步骤-

  1. 我使用下面的链接作为参考。
  2. 我尝试在 tfvars 文件中以明文形式设置 var 值以进行踢球,这是一个很大的禁忌,但只是为了看看它是否需要。
  3. 我还尝试使用 export TF_VAR_variable_name 导出环境变量作为另一种方法。 在每次尝试中,管道都会停止,并且不会执行任何操作,使我认为这些值由于某种原因永远不会到达变量。包括我当前的参数和运行 cmd opts。
azure azure-devops terraform yaml environment-variables
1个回答
0
投票

对于 DevOps 秘密变量,您必须将它们作为变量传递。

  1. 在 tfvar 文件中声明变量,如下所示。使用
    var.admin_password
    中的
    var.admin_user
    main.tf
    来引用它们。
variable "admin_password" {
  type = string
}
variable "admin_user" {
  type = string
}
  1. 使用
    admin_password
    参数将
    admin_user
    -var
    的值传递给 terraform 任务。
- task:TerraformTaskV3@3
  displayName: 'Terraform Plan'
  inputs:
    command: 'plan'
    workingDirectory: '$(Build.SourcesDirectory)'
    environmentServiceName: '<service_connection_name>'
    commandOptions:' -input=false -var "admin_password=$(TF_VAR_admin_password)" -var "admin_user=$(TF_VAR_admin_user)" '

© www.soinside.com 2019 - 2024. All rights reserved.