2016-02-16 5 views
0

Я хочу поставить цитату вокруг выходного значения (просто, я хочу записать вывод в файл с помощью «local-exec», но, к сожалению, он не сделал Цитата:цитата вокруг выходного значения с помощью terraform «local-exec» Provender

Код фрагмента для справки:

Код для вставки в блог:.
provisioner "local-exec" { 
command = " echo **ELB_DNS_NAME: \"${aws_elb.elb.dns_name}\"** >> ${var.name}.yml" 
} 

ответ

0

Я не уверен, что это самое простое или идеальное решение, но я полагаю, что многолинейный строковый синтаксис должен работать, как видно here и документировано here.

resource "aws_iam_user_policy" "lb_ro" { 
    name = "test" 
    user = "${aws_iam_user.lb.name}" 
    policy = <<EOF 
{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": [ 
     "ec2:Describe*" 
     ], 
     "Effect": "Allow", 
     "Resource": "*" 
    } 
    ] 
} 
EOF 
} 

resource "aws_iam_user" "lb" { 
    name = "loadbalancer" 
    path = "/system/" 
} 

resource "aws_iam_access_key" "lb" { 
    user = "${aws_iam_user.lb.name}" 
} 
0

Используйте template_file data source и file provisioner так что вам не придется возиться с экранированием/спасаясь символов.

data "template_file" "name" { 
    template = "${file("${path.root}/templates/name.tpl")}" 
    vars { 
     elb_dns_name = "${aws_elb.elb.dns_name}" 
    } 
} 

[...] 

resource "null_resource" "render_templates" 
    provisioner "file" { 
    content = "${data.template_file.name.rendered}" 
    destination = "name.yml" 
    } 
} 

В <your root TF directory>/templates/name.tpl вы бы просто:

**ELB_DNS_NAME: "${elb_dns_name}"**