如何在 terraform 中转义 true/false?
How do I escape true/false in terraform?
我需要将 true 或 false 一词传递给 terraform 中的数据模板文件。但是,如果我尝试提供该值,由于插值语法,它会出现 0 或 1。我尝试按照 https://www.terraform.io/docs/configuration/interpolation.html 中的建议执行 \true\
,但结果是 \true\
,这显然是不正确的。与 \false\
= \false\
相同
使事情复杂化的是,我还有一个场景,我需要向它传递一个变量的值,它可以等于 true 或 false。
有什么想法吗?
# control whether to enable REST API and set other port defaults
data "template_file" "master_spark_defaults" {
template = "${file("${path.module}/templates/spark/spark- defaults.conf")}"
vars = {
spark_server_port = "${var.application_port}"
spark_driver_port = "${var.spark_driver_port}"
rest_port = "${var.spark_master_rest_port}"
history_server_port = "${var.history_server_port}"
enable_rest = "${var.spark_master_enable_rest}"
}
}
var.spark_master_enable_rest
可以是 true
或 false
。我尝试将变量设置为 "\${var.spark_master_enable_rest}\"
但这又导致 \true\
或 \false\
编辑 1:
这里是有问题的 conf 文件的相关部分:
spark.ui.port ${spark_server_port}
# set to default worker random number.
spark.driver.port ${spark_driver_port}
spark.history.fs.logDirectory /var/log/spark
spark.history.ui.port ${history_server_port}
spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400
spark.master.rest.enabled ${enable_rest}
spark.master.rest.port ${rest_port}
我觉得你一定是想多了,
如果我将 var 值设置为
spark_master_enable_rest="true"
然后我得到:
spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400
spark.master.rest.enabled true
在我申请时的结果中。
我最终为 find/replace 文件中的 0/1 创建了一个云配置脚本:
part {
content_type = "text/x-shellscript"
content = <<SCRIPT
#!/bin/sh
sed -i.bak -e '/spark.master.rest.enabled/s/0/false/' -e '/spark.master.rest.enabled/s/1/true/' /opt/spark/conf/spark-defaults.conf
SCRIPT
}
我需要将 true 或 false 一词传递给 terraform 中的数据模板文件。但是,如果我尝试提供该值,由于插值语法,它会出现 0 或 1。我尝试按照 https://www.terraform.io/docs/configuration/interpolation.html 中的建议执行 \true\
,但结果是 \true\
,这显然是不正确的。与 \false\
= \false\
使事情复杂化的是,我还有一个场景,我需要向它传递一个变量的值,它可以等于 true 或 false。 有什么想法吗?
# control whether to enable REST API and set other port defaults
data "template_file" "master_spark_defaults" {
template = "${file("${path.module}/templates/spark/spark- defaults.conf")}"
vars = {
spark_server_port = "${var.application_port}"
spark_driver_port = "${var.spark_driver_port}"
rest_port = "${var.spark_master_rest_port}"
history_server_port = "${var.history_server_port}"
enable_rest = "${var.spark_master_enable_rest}"
}
}
var.spark_master_enable_rest
可以是 true
或 false
。我尝试将变量设置为 "\${var.spark_master_enable_rest}\"
但这又导致 \true\
或 \false\
编辑 1:
这里是有问题的 conf 文件的相关部分:
spark.ui.port ${spark_server_port}
# set to default worker random number.
spark.driver.port ${spark_driver_port}
spark.history.fs.logDirectory /var/log/spark
spark.history.ui.port ${history_server_port}
spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400
spark.master.rest.enabled ${enable_rest}
spark.master.rest.port ${rest_port}
我觉得你一定是想多了, 如果我将 var 值设置为
spark_master_enable_rest="true"
然后我得到:
spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400
spark.master.rest.enabled true
在我申请时的结果中。
我最终为 find/replace 文件中的 0/1 创建了一个云配置脚本:
part {
content_type = "text/x-shellscript"
content = <<SCRIPT
#!/bin/sh
sed -i.bak -e '/spark.master.rest.enabled/s/0/false/' -e '/spark.master.rest.enabled/s/1/true/' /opt/spark/conf/spark-defaults.conf
SCRIPT
}