2016-06-16 41 views
1

我需要在我的terraform腳本的provisioner "remote-exec"塊中使用常規報價"的簡單方法。只有"將工作爲我想要做的,只是嘗試\"不起作用。什麼是terraform最簡單的方法從字面上解釋我的命令。僅供參考這裏是我試圖運行:Terraform,尋找在命令中使用雙引號的簡單方法?

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

也許你可以只使用文件供應者,並用shell腳本,而不是這樣做。更多的開銷,但至少在未來建立更容易/更清潔。 – Joakim

回答

5

用反斜槓轉義爲我工作得很好:

$ 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"