我遇到了一个关于领事模板的问题。我正试图从我的kv存储中获取数据,并将其与我的template.hcl 一起发送到.pem文件中
问题是,我已经填充了我的template.hcl,当我试图用以下命令启动我的consul模板时:
consul-template -template /etc/consul.d/templates.hcl -once
这条消息让我大吃一惊:
2022-07-20T09:42:35.426Z [ERR] (cli) error rendering "/etc/consul.d/templates.hcl" => "": failed writing file: missing destination
这是我的template.hcl文件:
consul {
address = "consul.service.consul:8500"
retry {
enabled = true
attempts = 12
backoff = "250ms"
}
}
template {
contents = "{{ key "certs/pos.in.kv.store/cert.pem" }}"
destination = "/etc/ssl/haproxy/star.cert.emplacment.fr.pem"
perms = 0640
exec {
command = "sudo haproxy -v -c -f /etc/haproxy/haproxy.cfg && sudo haproxy -D -p /var/run/haproxy.pid
-f"
}
}
目的地已经设置好了,所以我不知道哪里有问题,你能帮我吗?
我不知道该往哪里看了:(
您似乎将模板配置文件与模板本身混合在一起。所有模板语言语法都应该放在一个不同的文件中,比如"star.cert.emplacment.fr.pem.ctmpl",它将由consul模板呈现到您的目的地。
创建一个源文件star.cert.emplacment.fr.pem.ctmpl,该文件具有类似的所有双curlies{{}}
{{ key "certs/pos.in.kv.store/cert.pem" }}
然后,在您的配置文件(hcl(中,将该文件指示为源:
template {
source = "/etc/ssl/haproxy/star.cert.emplacment.fr.pem.ctml"
destination = "/etc/ssl/haproxy/star.cert.emplacment.fr.pem"
您指定的输出文件如下:
consul-template -template "/etc/consul.d/templates.hcl:out.txt" -once