我有两个环境变量。一个是TF_VAR_UN
,另一个是TF_VAR_PW
。然后我有一个看起来像这样的terraform文件。
resource "google_container_cluster" "primary" {
name = "marcellus-wallace"
zone = "us-central1-a"
initial_node_count = 3
master_auth {
username = ${env.TF_VAR_UN}
password = ${env.TF_VAR_PW}
}
node_config {
oauth_scopes = [
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring"
]
}
}
我想用环境变量TF_VAR_UN
和TF_VAR_PW
替换的两个值是用户名和密码值。我尝试了上面显示的内容,没有成功,而且我还玩过其他一些东西,但总会遇到语法问题。
答案 0 :(得分:13)
我会尝试更像这样的东西,它似乎更接近documentation。
stations=["STATIC","97.2", "99.6", "101.7", "105.3", "108.5"]
a =input("enter 3 to seek next")
while a !="0":
if a =="3":
print(stations[-1])
CLI命令如下所示。
variable "UN" {}
variable "PW" {}
resource "google_container_cluster" "primary" {
name = "marcellus-wallace"
zone = "us-central1-a"
initial_node_count = 3
master_auth {
username = "${var.UN}"
password = "${var.PW}"
}
node_config {
oauth_scopes = [
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring"
]
}
答案 1 :(得分:1)
使用插值语法会以地形IsDup
发出警告。现在,您无需使用插值语法。您可以将其引用为v0.12.18
。
警告: 从语言的角度要理解的重要一件事是,您不能使用环境变量声明变量。您只能使用环境变量为脚本中的已声明变量分配值。例如,假设您具有以下.tf脚本
var.hello
现在,如果环境具有变量TF_VAR_hello =“ foobar”,则在运行时变量hello将具有值“ foobar”。如果在不声明变量的情况下分配变量,则不会产生任何影响。
答案 2 :(得分:0)
为了使用变量,需要用"" 例如:
username =" $ {var.UN}"
答案 3 :(得分:0)
大多数提供商使用:
DefaultFunc:schema.EnvDefaultFunc(“
答案 4 :(得分:0)
您可以执行以下操作以使其正常工作。
1.在 terraform 配置中声明要用作环境变量的变量。 --> 变量 "db_password" { type= string }
3.导出环境变量。 -->导出TF_VAR_db_password="##password##"
4.terraform 计划或申请