【问题标题】:Terraform, Looking for a simple way to use double quotation marks in commands?Terraform,正在寻找一种在命令中使用双引号的简单方法?
【发布时间】:2016-10-18 13:25:39
【问题描述】:

我需要一种在 terraform 脚本的 provisioner "remote-exec" 块中使用常规引用 " 的简单方法。只有" 可以用于我想做的事情,而仅仅尝试\" 是行不通的。让 terraform 从字面上解释我的命令的最简单方法是什么。以下是我要运行的参考:

provisioner "remote-exec" {
    inline = [
      "echo 'DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"' > /etc/default/docker",
    ]
}

【问题讨论】:

  • 也许您可以只使用文件配置器并使用 shell 脚本来执行此操作。更多的开销,但至少在未来更容易/更清洁。

标签: provisioning terraform


【解决方案1】:

用反斜杠转义对我来说很好:

$ cat main.tf

resource "null_resource" "test" {
    provisioner "local-exec" {
        command = "echo 'DOCKER_OPTS=\"-H tcp://0.0.0.0:2375\"' > ~/terraform/37869163/output"
    }
}

$ terraform apply .

null_resource.test: Creating...
null_resource.test: Provisioning with 'local-exec'...
null_resource.test (local-exec): Executing: /bin/sh -c "echo 'DOCKER_OPTS="-H tcp://0.0.0.0:2375"' > ~/terraform/37869163/output"
null_resource.test: Creation complete

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

...

$ cat output

DOCKER_OPTS="-H tcp://0.0.0.0:2375"

【讨论】:

    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多