I'm facing an issue on consul with consul-template. I'm trying to get a data from my kv store and send it to a .pem file with my template.hcl
The problem is that, i have fill my template.hcl and when i'm trying to start my consul-template with this command :
consul-template -template /etc/consul.d/templates.hcl -once
It is awsnering me with this message :
2022-07-20T09:42:35.426Z [ERR] (cli) error rendering "/etc/consul.d/templates.hcl" => "": failed writing file: missing destination
Here is my template.hcl file :
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"
}
}
The destination is already set so i don't know where there is a problem, can you help me ?
I don't know where to look at anymore :(
It seems you are mixing the template configuration file with the template itself. All your template language syntax should go inside a different file, like 'star.cert.emplacment.fr.pem.ctmpl' which will be rendered by consul-template into your destination.
Create a source file star.cert.emplacment.fr.pem.ctmpl, which has all the double curlies {{ }} like
{{ key "certs/pos.in.kv.store/cert.pem" }}
then, inside your configuration file (hcl) indicate that file as the source:
template {
source = "/etc/ssl/haproxy/star.cert.emplacment.fr.pem.ctml"
destination = "/etc/ssl/haproxy/star.cert.emplacment.fr.pem"